|
|
1.1 root 1: typedef struct _t_ipc {
2: void (*function)(struct _t_ipc *ipc);
3: uint8 used; /* bitmap of XNZVC flags inspected */
4: uint8 set; /* bitmap of XNZVC flags altered */
5: uint16 opcode;
6: uint16 wordlen;
7: unsigned int :0;
8: uint32 src;
9: uint32 dst;
10: } t_ipc;
11:
12: typedef struct _t_ipclist {
13: struct _t_ipclist *next;
14: uint8 norepeat;
15: uint32 pc;
16: uint32 clocks;
17: void (*compiled)(struct _t_ipc *ipc);
18: } t_ipclist;
19:
20: extern uint8 *cpu68k_rom;
21: extern unsigned int cpu68k_romlen;
22: extern uint8 *cpu68k_ram;
23: extern t_iib *cpu68k_iibtable[65536];
24: extern void (*cpu68k_functable[65536*2])(t_ipc *ipc);
25: extern int cpu68k_totalinstr;
26: extern int cpu68k_totalfuncs;
27: extern unsigned int cpu68k_clocks;
28: extern unsigned int cpu68k_clocks_curevent;
29: extern unsigned int cpu68k_frames;
30: extern unsigned int cpu68k_line;
31: extern t_regs regs;
32: extern t_ipclist *ipclist[LEN_IPCLISTTABLE];
33: extern uint8 movem_bit[256];
34: extern unsigned int cpu68k_adaptive;
1.1.1.2 ! root 35: extern unsigned int cpu68k_frozen;
1.1 root 36:
37: extern t_iib iibs[];
38: extern int iibs_num;
39:
40: int cpu68k_init(void);
1.1.1.2 ! root 41: void cpu68k_printipc(t_ipc *ipc);
1.1 root 42: void cpu68k_ipc(uint32 addr68k, uint8 *addr, t_iib *iib, t_ipc *ipc);
43: void cpu68k_reset(void);
44: void cpu68k_step(void);
45: void cpu68k_framestep(void);
46: t_ipclist *cpu68k_makeipclist(uint32 pc);
47: void cpu68k_endfield(void);
48:
49: #define V_RESETSSP 0
50: #define V_RESETPC 1
51: #define V_BUSERR 2
52: #define V_ADDRESS 3
53: #define V_ILLEGAL 4
54: #define V_ZERO 5
55: #define V_CHK 6
56: #define V_TRAPV 7
57: #define V_PRIVILEGE 8
58: #define V_TRACE 9
59: #define V_LINE10 10
60: #define V_LINE15 11
61: #define V_UNINIT 15
62: #define V_SPURIOUS 24
63: #define V_AUTO 25
64: #define V_TRAP 32
65: #define V_USER 64
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.