mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-27 16:31:31 +00:00
Fixed: the accepted interrupt level now appears on the bus.
This commit is contained in:
parent
1d9608efc7
commit
857f74b320
@ -1803,8 +1803,16 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case int(MicroOp::Action::PrepareINT):
|
case int(MicroOp::Action::PrepareINT):
|
||||||
|
// The INT sequence uses the same storage as the TRAP steps, so this'll get
|
||||||
|
// the necessary stack work set up.
|
||||||
populate_trap_steps(0, get_status());
|
populate_trap_steps(0, get_status());
|
||||||
|
|
||||||
|
// Mutate neessary internal state — effective_address_[0] is exposed
|
||||||
|
// on the data bus as the accepted interrupt number during the interrupt
|
||||||
|
// acknowledge cycle, with the low bit set since a real 68000 uses the lower
|
||||||
|
// data strobe to collect the corresponding vector byte.
|
||||||
accepted_interrupt_level_ = interrupt_level_ = bus_interrupt_level_;
|
accepted_interrupt_level_ = interrupt_level_ = bus_interrupt_level_;
|
||||||
|
effective_address_[0].full = 1 | (accepted_interrupt_level_ << 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case int(MicroOp::Action::PrepareINTVector):
|
case int(MicroOp::Action::PrepareINTVector):
|
||||||
|
Loading…
Reference in New Issue
Block a user