|
|
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.