summaryrefslogtreecommitdiff
path: root/m68k_core.h
diff options
context:
space:
mode:
Diffstat (limited to 'm68k_core.h')
-rw-r--r--m68k_core.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/m68k_core.h b/m68k_core.h
index 48a2a90..7773d64 100644
--- a/m68k_core.h
+++ b/m68k_core.h
@@ -56,13 +56,23 @@ typedef struct {
code_ptr get_sr;
code_ptr set_sr;
code_ptr set_ccr;
+ code_ptr bp_stub;
code_info extra_code;
movem_fun *big_movem;
uint32_t num_movem;
uint32_t movem_storage;
+ code_word prologue_start;
} m68k_options;
-typedef struct m68k_context {
+typedef struct m68k_context m68k_context;
+typedef void (*m68k_debug_handler)(m68k_context *context, uint32_t pc);
+
+typedef struct {
+ m68k_debug_handler handler;
+ uint32_t address;
+} m68k_breakpoint;
+
+struct m68k_context {
uint8_t flags[5];
uint8_t status;
uint16_t int_ack;
@@ -79,14 +89,17 @@ typedef struct m68k_context {
code_ptr reset_handler;
m68k_options *options;
void *system;
+ m68k_breakpoint *breakpoints;
+ uint32_t num_breakpoints;
+ uint32_t bp_storage;
uint8_t int_pending;
uint8_t trace_pending;
uint8_t should_return;
uint8_t ram_code_flags[];
-} m68k_context;
+};
typedef m68k_context *(*m68k_reset_handler)(m68k_context *context);
-typedef m68k_context *(*m68k_debug_handler)(m68k_context *context, uint32_t pc);
+
void translate_m68k_stream(uint32_t address, m68k_context * context);
void start_68k_context(m68k_context * context, uint32_t address);