mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-21 20:29:06 +00:00
Lock down interrupt cycle types.
This commit is contained in:
parent
7c28a77b2b
commit
5b43ea82f3
@ -606,10 +606,10 @@ void Processor<BusHandler, dtack_is_implicit, permit_overrun, signal_will_perfor
|
||||
|
||||
// Do the interrupt cycle, to obtain a vector.
|
||||
temporary_address_.l = 0xffff'fff1 | uint32_t(captured_interrupt_level_ << 1);
|
||||
interrupt_cycles[0].address = interrupt_cycles[1].address = &temporary_address_.l;
|
||||
interrupt_cycles[0].value = interrupt_cycles[1].value = &temporary_value_.low;
|
||||
PerformBusOperation(interrupt_cycles[0]);
|
||||
CompleteAccess(interrupt_cycles[1]); // ni
|
||||
interrupt_cycle0.address = interrupt_cycle1.address = &temporary_address_.l;
|
||||
interrupt_cycle0.value = interrupt_cycle1.value = &temporary_value_.low;
|
||||
PerformBusOperation(interrupt_cycle0);
|
||||
CompleteAccess(interrupt_cycle1); // ni
|
||||
|
||||
// If VPA is set, autovector.
|
||||
if(vpa_) {
|
||||
|
@ -226,10 +226,8 @@ struct ProcessorBase: public InstructionSet::M68k::NullFlowController {
|
||||
Operation::InterruptAcknowledge | Operation::Read | Operation::NewAddress,
|
||||
Operation::InterruptAcknowledge | Operation::Read | Operation::SameAddress | Operation::SelectByte
|
||||
};
|
||||
Microcycle<Operation::DecodeDynamically> interrupt_cycles[2] = {
|
||||
{ InterruptCycleOperations[0] },
|
||||
{ InterruptCycleOperations[1] },
|
||||
};
|
||||
Microcycle<InterruptCycleOperations[0]> interrupt_cycle0;
|
||||
Microcycle<InterruptCycleOperations[1]> interrupt_cycle1;
|
||||
|
||||
// Holding spot when awaiting DTACK/etc.
|
||||
Microcycle<Operation::DecodeDynamically> awaiting_dtack;
|
||||
|
Loading…
x
Reference in New Issue
Block a user