1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-26 03:29:40 +00:00

Introduces a test of stack contents after an address error.

Fixes: stacked PC, address of fault.
This commit is contained in:
Thomas Harte
2020-01-04 23:22:07 -05:00
parent 3d7ef43293
commit f0d5bbecf2
3 changed files with 34 additions and 4 deletions
@@ -116,6 +116,7 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
active_micro_op_ = long_exception_micro_ops_;
active_step_ = &all_bus_steps_[active_micro_op_->bus_program];
populate_bus_error_steps(3, get_status(), get_bus_code(), offending_address);
program_counter_.full -= 4;
}
// Perform the microcycle if it is of non-zero length. If this is an operation that
@@ -3262,9 +3262,9 @@ CPU::MC68000::ProcessorStorage::ProcessorStorage() {
&destination_bus_data_[0].halves.low,
&program_counter_.halves.high,
&decoded_instruction_,
&effective_address_[0].halves.low,
&effective_address_[1].halves.low,
&destination_bus_data_[0].halves.high,
&effective_address_[0].halves.high
&effective_address_[1].halves.high
});
// Also relink the RTE and RTR bus steps to collect the program counter.