/* Main loop. Keep going until we run out of clock cycles */
do
{
-#ifdef M68K_BUSERR_THING
- int i;
-#endif
/* Set tracing accodring to T1. (T0 is done inside instruction) */
m68ki_trace_t1(); /* auto-disable (see m68kcpu.h) */
REG_PPC = REG_PC;
/* Record previous D/A register state (in case of bus error) */
+//#define M68K_BUSERR_THING
#ifdef M68K_BUSERR_THING
- for (i = 15; i >= 0; i--){
+ for (int i = 15; i >= 0; i--){
REG_DA_SAVE[i] = REG_DA[i];
}
#endif
/* Read the initial stack pointer and program counter */
m68ki_jump(0);
- REG_SP = m68ki_read_imm_32();
- REG_PC = m68ki_read_imm_32();
- m68ki_jump(REG_PC);
CPU_RUN_MODE = RUN_MODE_NORMAL;
}
}
+void m68k_clear_ranges()
+{
+ printf("[MUSASHI] Clearing all reads/write memory ranges.\n");
+ for (int i = 0; i < 8; i++) {
+ read_upper[i] = 0;
+ read_addr[i] = 0;
+ read_data[i] = NULL;
+ write_upper[i] = 0;
+ write_addr[i] = 0;
+ write_data[i] = NULL;
+ }
+ write_ranges = 0;
+ read_ranges = 0;
+}
+
/* ======================================================================== */
/* ============================== MAME STUFF ============================== */
/* ======================================================================== */