summaryrefslogtreecommitdiff
path: root/x86_backend.h
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2013-04-25 21:01:11 -0700
committerMike Pavone <pavone@retrodev.com>2013-04-25 21:01:11 -0700
commit46db74a053d7fca9dee69e8737a435e65b538577 (patch)
treefa645a9997fac9f040b6664ffbaf9b0733fdc71e /x86_backend.h
parent68be5ac1a6452de7333d77b91d5a9634aac05b5b (diff)
Get Z80 core working for simple programs
Diffstat (limited to 'x86_backend.h')
-rw-r--r--x86_backend.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/x86_backend.h b/x86_backend.h
index 2bfac7e..78fd0c8 100644
--- a/x86_backend.h
+++ b/x86_backend.h
@@ -1,6 +1,10 @@
#ifndef X86_BACKEND_H_
#define X86_BACKEND_H_
+#include <stdint.h>
+
+#define INVALID_OFFSET 0xFFFFFFFF
+
typedef struct {
int32_t disp;
uint8_t mode;
@@ -14,5 +18,16 @@ typedef struct {
int32_t *offsets;
} native_map_slot;
+typedef struct deferred_addr {
+ struct deferred_addr *next;
+ uint8_t *dest;
+ uint32_t address;
+} deferred_addr;
+
+typedef uint8_t * (*native_addr_func)(void * context, uint32_t address);
+
+deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
+void process_deferred(deferred_addr ** head_ptr, void * context, native_addr_func get_native);
+
#endif //X86_BACKEND_H_