1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
// cpu.h
//
// 20050125 Markku Alén
#ifndef __CPU_H__
#define __CPU_H__ 1
extern unsigned int cycles;
void init_cpu(int (*cpu_read)(int), void (*cpu_write)(int, int), int (*cpu_read_page)(int), void (*cpu_write_page)(int, int), void (*cpu_jam)(int, int));
extern void (*reset_cpu)(void);
extern void (*raise_nmi)(void);
extern void (*raise_irq)(void);
extern void (*exec_cpu)(void);
void set_c_flag(int enable);
void set_z_flag(int enable);
void set_pc(int addr);
int get_pc(void);
int get_a(void);
int get_x(void);
int get_y(void);
typedef struct __trap
{
struct __trap *next_trap;
int addr;
int org[3];
int (*handler)(void);
}trap_t;
#define TRAP_INIT(ADDR, D1, D2, D3, HANDLER) { 0, ADDR, D1, D2, D3, HANDLER }
void install_traps(int cnt, trap_t *tbl, void (*poke)(int, int), int (*peek)(int));
#endif
|