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