diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2012-02-10 14:25:38 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2012-02-10 14:25:38 +0100 |
| commit | a5d7e68af96d9b62821d8fd47f5039c5bae5d421 (patch) | |
| tree | ab7d1a70312afb74dc7184d8b269b08f332f4b74 /c64/cpu.h | |
added original sam_player code
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
|
