|
|
1.1 ! root 1: typedef enum { ! 2: mem_byte, mem_word, mem_long ! 3: } t_memtype; ! 4: ! 5: typedef struct { ! 6: uint16 start; ! 7: uint16 end; ! 8: uint8 *(*memptr)(uint32 addr); ! 9: uint8 (*fetch_byte)(uint32 addr); ! 10: uint16 (*fetch_word)(uint32 addr); ! 11: uint32 (*fetch_long)(uint32 addr); ! 12: void (*store_byte)(uint32 addr, uint8 data); ! 13: void (*store_word)(uint32 addr, uint16 data); ! 14: void (*store_long)(uint32 addr, uint32 data); ! 15: } t_mem68k_def; ! 16: ! 17: extern t_mem68k_def mem68k_def[]; ! 18: extern unsigned int mem68k_cont1_a; ! 19: extern unsigned int mem68k_cont1_b; ! 20: extern unsigned int mem68k_cont1_c; ! 21: extern unsigned int mem68k_cont1_up; ! 22: extern unsigned int mem68k_cont1_down; ! 23: extern unsigned int mem68k_cont1_left; ! 24: extern unsigned int mem68k_cont1_right; ! 25: extern unsigned int mem68k_cont1_start; ! 26: extern unsigned int mem68k_cont2_a; ! 27: extern unsigned int mem68k_cont2_b; ! 28: extern unsigned int mem68k_cont2_c; ! 29: extern unsigned int mem68k_cont2_up; ! 30: extern unsigned int mem68k_cont2_down; ! 31: extern unsigned int mem68k_cont2_left; ! 32: extern unsigned int mem68k_cont2_right; ! 33: extern unsigned int mem68k_cont2_start; ! 34: ! 35: int mem68k_init(void); ! 36: ! 37: extern uint8 *(*mem68k_memptr[0x1000])(uint32 addr); ! 38: extern uint8 (*mem68k_fetch_byte[0x1000])(uint32 addr); ! 39: extern uint16 (*mem68k_fetch_word[0x1000])(uint32 addr); ! 40: extern uint32 (*mem68k_fetch_long[0x1000])(uint32 addr); ! 41: extern void (*mem68k_store_byte[0x1000])(uint32 addr, uint8 data); ! 42: extern void (*mem68k_store_word[0x1000])(uint32 addr, uint16 data); ! 43: extern void (*mem68k_store_long[0x1000])(uint32 addr, uint32 data); ! 44: ! 45: #define fetchbyte(addr) mem68k_fetch_byte[((addr) & 0xFFFFFF)>>12]((addr) & 0xFFFFFF) ! 46: #define fetchword(addr) mem68k_fetch_word[((addr) & 0xFFFFFF)>>12]((addr) & 0xFFFFFF) ! 47: #define fetchlong(addr) mem68k_fetch_long[((addr) & 0xFFFFFF)>>12]((addr) & 0xFFFFFF) ! 48: ! 49: #define storebyte(addr,data) mem68k_store_byte[((addr) & 0xFFFFFF)>>12]((addr) & 0xFFFFFF,data) ! 50: #define storeword(addr,data) mem68k_store_word[((addr) & 0xFFFFFF)>>12]((addr) & 0xFFFFFF,data) ! 51: #define storelong(addr,data) mem68k_store_long[((addr) & 0xFFFFFF)>>12]((addr) & 0xFFFFFF,data)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.