mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-25 17:29:40 +00:00
Fix interrupt request address.
This commit is contained in:
parent
c97245e626
commit
67b340fa5e
@ -531,7 +531,7 @@ void Processor<BusHandler, dtack_is_implicit, permit_overrun, signal_will_perfor
|
|||||||
Access(captured_status_); // ns
|
Access(captured_status_); // ns
|
||||||
|
|
||||||
// Do the interrupt cycle, to obtain a vector.
|
// Do the interrupt cycle, to obtain a vector.
|
||||||
temporary_address_.l = 0xffff'fff8 | uint32_t(captured_interrupt_level_);
|
temporary_address_.l = 0xffff'fff1 | uint32_t(captured_interrupt_level_ << 1);
|
||||||
SetupDataAccess(0, Microcycle::InterruptAcknowledge);
|
SetupDataAccess(0, Microcycle::InterruptAcknowledge);
|
||||||
SetDataAddress(temporary_address_.l);
|
SetDataAddress(temporary_address_.l);
|
||||||
Access(temporary_value_.low); // ni
|
Access(temporary_value_.low); // ni
|
||||||
@ -541,6 +541,8 @@ void Processor<BusHandler, dtack_is_implicit, permit_overrun, signal_will_perfor
|
|||||||
temporary_value_.w = uint16_t(InstructionSet::M68k::Exception::InterruptAutovectorBase - 1 + captured_interrupt_level_);
|
temporary_value_.w = uint16_t(InstructionSet::M68k::Exception::InterruptAutovectorBase - 1 + captured_interrupt_level_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: if bus error is set, treat interrupt as spurious.
|
||||||
|
|
||||||
IdleBus(3); // n- n
|
IdleBus(3); // n- n
|
||||||
|
|
||||||
// Do the rest of the stack work.
|
// Do the rest of the stack work.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user