Mercurial > repos > blastem
annotate x86_backend.h @ 242:d3b84b2a4397
Implemente CP (untested)
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 28 Apr 2013 14:05:02 -0700 |
parents | d9bf8e61c33c |
children | 63b9a500a00b |
rev | line source |
---|---|
211 | 1 #ifndef X86_BACKEND_H_ |
2 #define X86_BACKEND_H_ | |
3 | |
235
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
4 #include <stdint.h> |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
5 |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
6 #define INVALID_OFFSET 0xFFFFFFFF |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
7 |
211 | 8 typedef struct { |
9 int32_t disp; | |
10 uint8_t mode; | |
11 uint8_t base; | |
12 uint8_t index; | |
13 uint8_t cycles; | |
14 } x86_ea; | |
15 | |
16 typedef struct { | |
17 uint8_t *base; | |
18 int32_t *offsets; | |
19 } native_map_slot; | |
20 | |
235
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
21 typedef struct deferred_addr { |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
22 struct deferred_addr *next; |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
23 uint8_t *dest; |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
24 uint32_t address; |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
25 } deferred_addr; |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
26 |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
27 typedef uint8_t * (*native_addr_func)(void * context, uint32_t address); |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
28 |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
29 deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest); |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
30 void process_deferred(deferred_addr ** head_ptr, void * context, native_addr_func get_native); |
d9bf8e61c33c
Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents:
211
diff
changeset
|
31 |
211 | 32 #endif //X86_BACKEND_H_ |
33 |