annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
211
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #ifndef X86_BACKEND_H_
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #define X86_BACKEND_H_
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
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
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 typedef struct {
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 int32_t disp;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 uint8_t mode;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 uint8_t base;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 uint8_t index;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 uint8_t cycles;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 } x86_ea;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 typedef struct {
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 uint8_t *base;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 int32_t *offsets;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 } native_map_slot;
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
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
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 #endif //X86_BACKEND_H_
464513050c85 Small bit of cleanup
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33