Mercurial > repos > blastem
comparison x86_backend.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 | 464513050c85 |
children | 63b9a500a00b |
comparison
equal
deleted
inserted
replaced
234:f456ee23d372 | 235:d9bf8e61c33c |
---|---|
1 #ifndef X86_BACKEND_H_ | 1 #ifndef X86_BACKEND_H_ |
2 #define X86_BACKEND_H_ | 2 #define X86_BACKEND_H_ |
3 | |
4 #include <stdint.h> | |
5 | |
6 #define INVALID_OFFSET 0xFFFFFFFF | |
3 | 7 |
4 typedef struct { | 8 typedef struct { |
5 int32_t disp; | 9 int32_t disp; |
6 uint8_t mode; | 10 uint8_t mode; |
7 uint8_t base; | 11 uint8_t base; |
12 typedef struct { | 16 typedef struct { |
13 uint8_t *base; | 17 uint8_t *base; |
14 int32_t *offsets; | 18 int32_t *offsets; |
15 } native_map_slot; | 19 } native_map_slot; |
16 | 20 |
21 typedef struct deferred_addr { | |
22 struct deferred_addr *next; | |
23 uint8_t *dest; | |
24 uint32_t address; | |
25 } deferred_addr; | |
26 | |
27 typedef uint8_t * (*native_addr_func)(void * context, uint32_t address); | |
28 | |
29 deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest); | |
30 void process_deferred(deferred_addr ** head_ptr, void * context, native_addr_func get_native); | |
31 | |
17 #endif //X86_BACKEND_H_ | 32 #endif //X86_BACKEND_H_ |
18 | 33 |