From: Toni Wilen Date: Mon, 24 Jan 2022 18:34:12 +0000 (+0200) Subject: 68020/030 CE delayed interrupt fix X-Git-Tag: 4910~12 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=016aeb91962d8145ba6a0eecfaa3568964112815;p=francis%2Fwinuae.git 68020/030 CE delayed interrupt fix --- diff --git a/newcpu.cpp b/newcpu.cpp index 64244802..8afe100c 100644 --- a/newcpu.cpp +++ b/newcpu.cpp @@ -4848,6 +4848,7 @@ static void m68k_run_1_ce (void) } r->instruction_pc = m68k_getpc (); + (*cpufunctbl[r->opcode])(r->opcode); if (!regs.loop_mode) regs.ird = regs.opcode; @@ -5666,13 +5667,12 @@ insretry: } else { regs.instruction_cnt++; + regs.ipl = regs.ipl_pin; if (regs.spcflags || time_for_interrupt ()) { if (do_specialties (0)) return; } - regs.ipl = regs.ipl_pin; - } } @@ -5923,21 +5923,21 @@ static void m68k_run_2ce (void) regs.instruction_cnt++; cont: + regs.ipl = regs.ipl_pin; if (r->spcflags || time_for_interrupt ()) { if (do_specialties (0)) exit = true; } - regs.ipl = regs.ipl_pin; } } CATCH(prb) { bus_error(); + regs.ipl = regs.ipl_pin; if (r->spcflags || time_for_interrupt()) { if (do_specialties(0)) exit = true; } - regs.ipl = regs.ipl_pin; } ENDTRY } }