sc68fordevelopers
2.2.1
|
00001 00045 /* Copyright (C) 1998-2001 Ben(jamin) Gerard */ 00046 00047 #ifndef _MEM68_H_ 00048 #define _MEM68_H_ 00049 00050 #include "emu68/struct68.h" 00051 00052 #ifdef __cplusplus 00053 extern "C" { 00054 #endif 00055 00060 #ifdef EMU68DEBUG 00061 # define READ_68 1 00062 # define WRITTEN_68 2 00063 # define EXECUTED_68 4 00064 # define BREAKED_68 8 00065 #endif 00066 00075 #define ISIO68(ADDR) ((ADDR)&0x800000) 00076 00077 extern memrfunc68_t read_mem_jmp_l[256]; 00078 extern memrfunc68_t read_mem_jmp_w[256]; 00079 extern memrfunc68_t read_mem_jmp_b[256]; 00080 extern memwfunc68_t write_mem_jmp_l[256]; 00081 extern memwfunc68_t write_mem_jmp_w[256]; 00082 extern memwfunc68_t write_mem_jmp_b[256]; 00085 00086 00091 extern u32 read_68000mem_b(u32 addr); 00092 extern u32 read_68000mem_w(u32 addr); 00093 extern u32 read_68000mem_l(u32 addr); 00095 extern void write_68000mem_b(u32 addr,u32 v); 00096 extern void write_68000mem_w(u32 addr,u32 v); 00097 extern void write_68000mem_l(u32 addr,u32 v); 00099 #define read_B(ADDR) read_68000mem_b(ADDR) 00100 #define read_W(ADDR) read_68000mem_w(ADDR) 00101 #define read_L(ADDR) read_68000mem_l(ADDR) 00104 #define write_B(ADDR,VAL) write_68000mem_b(ADDR,VAL) 00105 00106 #define write_W(ADDR,VAL) write_68000mem_w(ADDR,VAL) 00107 00108 #define write_L(ADDR,VAL) write_68000mem_l(ADDR,VAL) 00109 00117 s32 get_nextw(void); 00118 s32 get_nextl(void); 00121 00122 00126 void pushl(s32 v); 00127 void pushw(s32 v); 00128 s32 popl(void); 00129 s32 popw(void); 00131 00139 void EMU68memory_init(void); 00140 00147 void EMU68memory_reset(void); 00148 00157 void EMU68memory_new_area(u8 area, 00158 memrfunc68_t *read_bwl, 00159 memwfunc68_t *write_bwl); 00160 00165 void EMU68memory_reset_area(u8 area); 00166 00167 00168 #ifdef __cplusplus 00169 } 00170 #endif 00171 00172 #endif /* #ifndef _MEM68_H_ */ 00173