diff z80_to_x86.h @ 235:d9bf8e61c33c

Get Z80 core working for simple programs
author Mike Pavone <pavone@retrodev.com>
date Thu, 25 Apr 2013 21:01:11 -0700
parents 4d4559b04c59
children 2586d49ddd46
line wrap: on
line diff
--- a/z80_to_x86.h	Mon Apr 22 23:56:13 2013 -0700
+++ b/z80_to_x86.h	Thu Apr 25 21:01:11 2013 -0700
@@ -16,8 +16,11 @@
 };
 
 typedef struct {
-	uint32_t flags;
-	int8_t   regs[Z80_UNUSED];
+	uint8_t *       cur_code;
+	uint8_t *       code_end;
+	deferred_addr * deferred;
+	uint32_t        flags;
+	int8_t          regs[Z80_UNUSED];
 } x86_z80_options;
 
 typedef struct {
@@ -27,13 +30,21 @@
 	uint16_t          bank_reg;
 	uint8_t           regs[Z80_A+1];
 	uint8_t           alt_regs[Z80_A+1];
+	uint32_t          target_cycle;
+	uint32_t          current_cycle;
 	uint8_t *         mem_pointers[ZNUM_MEM_AREAS];
-	native_map_slot * native_code_map;
-	void *            options
+	native_map_slot * static_code_map;
+	native_map_slot * banked_code_map;
+	void *            options;
 	void *            next_context;
 } z80_context;
 
-void translate_z80_stream(z80_context * context, uint16_t address);
+void translate_z80_stream(z80_context * context, uint32_t address);
+void init_x86_z80_opts(x86_z80_options * options);
+void init_z80_context(z80_context * context, x86_z80_options * options);
+uint8_t * z80_get_native_address(z80_context * context, uint32_t address);
+void z80_run(z80_context * context);
+void z80_reset(z80_context * context);
 
 #endif //Z80_TO_X86_H_