1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 23:52:26 +00:00

Merge branch 'master' into InAmiga

This commit is contained in:
Thomas Harte 2022-06-15 11:07:31 -04:00
commit c9d3f4492d

View File

@ -391,6 +391,7 @@ void Processor<BusHandler, dtack_is_implicit, permit_overrun, signal_will_perfor
MoveToStateSpecific(DoInterrupt); MoveToStateSpecific(DoInterrupt);
} }
IdleBus(1); IdleBus(1);
CheckOverrun();
MoveToStateSpecific(WaitForInterrupt); MoveToStateSpecific(WaitForInterrupt);
// Perform the RESET exception, which seeds the stack pointer and program // Perform the RESET exception, which seeds the stack pointer and program
@ -594,8 +595,12 @@ void Processor<BusHandler, dtack_is_implicit, permit_overrun, signal_will_perfor
if(vpa_) { if(vpa_) {
temporary_value_.b = uint8_t(InstructionSet::M68k::Exception::InterruptAutovectorBase - 1 + captured_interrupt_level_); temporary_value_.b = uint8_t(InstructionSet::M68k::Exception::InterruptAutovectorBase - 1 + captured_interrupt_level_);
} }
if(berr_) {
temporary_value_.b = uint8_t(InstructionSet::M68k::Exception::SpuriousInterrupt);
}
// TODO: if bus error is set, treat interrupt as spurious. // TODO: check documentation for other potential interrupt outcomes;
// and presumably spin here if DTACK isn't implicit.
IdleBus(3); // n- n IdleBus(3); // n- n