diff options
Diffstat (limited to 'c64/cpu.h')
| -rw-r--r-- | c64/cpu.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/c64/cpu.h b/c64/cpu.h new file mode 100644 index 0000000..4db4591 --- /dev/null +++ b/c64/cpu.h @@ -0,0 +1,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
|
