📄 tm.h
字号:
/* tm.h Copyright (C) 1992, 1993 Free Software Foundation, Inc.This file is part of Z8KSIMZ8KSIM is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.Z8KSIM is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with Z8KZIM; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#ifndef _TM_H#define _TM_H#ifdef __FOOBEYGNUC__typedef SFtype __attribute__ ((mode (SF)));typedef DFtype __attribute__ ((mode (DF)));typedef int HItype __attribute__ ((mode (HI)));typedef int SItype __attribute__ ((mode (SI)));typedef unsigned int UHItype __attribute__ ((mode (HI)));typedef unsigned int USItype __attribute__ ((mode (SI)));#elsetypedef float SFtype;typedef double DFtype;typedef short int HItype;typedef long int SItype;typedef unsigned short UHItype ;typedef unsigned int USItype ;#endiftypedef struct UDIstruct{ USItype high; USItype low;} UDItype;#define BIG_ENDIAN_HOSTtypedef unsigned int sim_phys_addr_type;typedef unsigned int sim_logical_addr_type;#define PAGE_POWER 23 /* only one pages */#define MAP_PHYSICAL_TO_LOGICAL(x) (((x >> 8) & 0x7f0000) | (x & 0xffff))#define MAP_LOGICAL_TO_PHYSICAL(x) (((x <<8) & 0x7f000000) | (x & 0xffff))#define REG_PC 17#define REG_CYCLES 18#define REG_INSTS 19#define REG_TIME 20#define REG_FP 21#define REG_SP 22#define REG_CCR 16#define SET_REG(x,y) set_reg(x,y)#define SINGLE_STEP 1#define PSW_CARRY context->carry#define PSW_OP context->op#define PSW_OVERFLOW context->overflow#define PSW_SIGN context->sign#define PSW_ZERO context->zero#define GET_PC() context->pc#define SET_PC(x) context->pc = xstruct op_info{ short int exec;};extern struct op_info op_info_table[];typedef union{ unsigned short int word;}borw_type;typedef struct state_struct{ unsigned short *memory; int carry; int sign; int zero; int overflow; int op; int cycles; borw_type regs[16]; sim_phys_addr_type sometimes_pc;#ifdef __GNUC__ volatile#endif int exception;#define iwords_0 iwords0#define iwords_1 iwords1#define iwords_2 iwords2#define iwords_3 iwords3#define ibytes_0 (iwords_0>>8)#define ibytes_1 (iwords_0&0xff)#define ibytes_2 (iwords_1>>8)#define ibytes_3 (iwords_1& 0xff)#define ibytes_4 (iwords_2>>8) int insts; int ticks; int next_inst; int broken_flags; int srca; int srcb; int dst; int size;}sim_state_type;#define CMP_FLAGS 100#define TST_FLAGS 101#endifextern int get_word_mem_da PARAMS((sim_state_type *context, int addr)); extern int get_word_reg PARAMS((sim_state_type *context, int reg)); extern void support_call PARAMS((sim_state_type *context, int sc)); extern void tm_exception PARAMS((int x)); extern int tm_read_byte PARAMS((int x)); extern int tm_signal PARAMS((void)); extern void tm_state PARAMS((sim_state_type *x)); extern void tm_write_byte PARAMS((int x, int y)); extern void bfop_bad1 PARAMS(()); extern int fail PARAMS((sim_state_type *context, int v)); extern void fop_bad PARAMS((sim_state_type *context)); extern void sfop_bad1 PARAMS(()); extern void swap_long PARAMS((char *buf, int val)); extern void swap_word PARAMS((char *buf, int val)); extern void tm_fetch_register PARAMS((int regno, char *buf)); extern void tm_info_print PARAMS((sim_state_type *x)); extern void tm_resume PARAMS((int step)); extern void tm_store_register PARAMS((int regno, int value)); #ifndef __GNUC__/* If were using gnuc then these will be inlined, so the prototypes won't be right */long int sitoptr PARAMS((long int si)); long int ptrtosi PARAMS((long int ptr)); void put_long_reg PARAMS((sim_state_type *context, int reg, int val)); void put_quad_reg PARAMS((sim_state_type *context, int reg, int val1, int val2)); void put_word_reg PARAMS((sim_state_type *context, int reg, int val)); SItype get_long_reg PARAMS((sim_state_type *context, int reg)); void put_byte_reg PARAMS((sim_state_type *context, int reg, int val)); int get_byte_reg PARAMS((sim_state_type *context, int reg)); void put_word_mem_da PARAMS((sim_state_type *context, int addr, int value)); unsigned char get_byte_mem_da PARAMS((sim_state_type *context, int addr)); void put_byte_mem_da PARAMS((sim_state_type *context, int addr, int value)); SItype get_long_mem_da PARAMS((sim_state_type *context, int addr)); void put_long_mem_da PARAMS((sim_state_type *context, int addr, int value)); int get_word_mem_ir PARAMS((sim_state_type *context, int reg)); void put_word_mem_ir PARAMS((sim_state_type *context, int reg, int value)); int get_byte_mem_ir PARAMS((sim_state_type *context, int reg)); void put_byte_mem_ir PARAMS((sim_state_type *context, int reg, int value)); int get_long_mem_ir PARAMS((sim_state_type *context, int reg)); void put_long_mem_ir PARAMS((sim_state_type *context, int reg, int value)); void put_long_mem_x PARAMS((sim_state_type *context, int base, int reg, int value)); void put_word_mem_x PARAMS((sim_state_type *context, int base, int reg, int value)); void put_byte_mem_x PARAMS((sim_state_type *context, int base, int reg, int value)); int get_word_mem_x PARAMS((sim_state_type *context, int base, int reg)); int get_byte_mem_x PARAMS((sim_state_type *context, int base, int reg)); int get_long_mem_x PARAMS((sim_state_type *context, int base, int reg)); int COND PARAMS((sim_state_type *context, int c)); void NORMAL_FLAGS PARAMS((sim_state_type *context, int size, int dst, int srca, int srcb)); void TEST_NORMAL_FLAGS PARAMS((sim_state_type *context, int size, int dst)); void put_ptr_long_reg PARAMS((sim_state_type *context, int reg, int val)); long int get_ptr_long_reg PARAMS((sim_state_type *context, int reg)); long int get_ptr_long_mem_ir PARAMS((sim_state_type *context, int reg)); long int get_ptr_long_mem_da PARAMS((sim_state_type *context, long int addr)); void put_ptr_long_mem_da PARAMS((sim_state_type *context, long int addr, long int ptr)); #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -