1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-06 01:28:57 +00:00

Ensures A7 is correct at end of an UNLINK.

This commit is contained in:
Thomas Harte 2019-05-28 16:02:42 -04:00
parent 5e2496d59c
commit 3bb8d6717f

View File

@ -48,7 +48,7 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
const HalfCycles remaining_duration = duration + half_cycles_left_to_run_; const HalfCycles remaining_duration = duration + half_cycles_left_to_run_;
#ifdef LOG_TRACE #ifdef LOG_TRACE
static bool should_log = true; static bool should_log = false;
#endif #endif
// This loop counts upwards rather than downwards because it simplifies calculation of // This loop counts upwards rather than downwards because it simplifies calculation of
@ -272,13 +272,9 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
} }
#ifdef LOG_TRACE #ifdef LOG_TRACE
// should_log |= ((program_counter_.full - 4) == 0x405054); // should_log |= ((program_counter_.full - 4) == 0x4058d8);
#endif #endif
if(decoded_instruction_.full == 0x206f) {
printf("");
}
if(instructions[decoded_instruction_.full].micro_operations) { if(instructions[decoded_instruction_.full].micro_operations) {
if(instructions[decoded_instruction_.full].requires_supervisor && !is_supervisor_) { if(instructions[decoded_instruction_.full].requires_supervisor && !is_supervisor_) {
// A privilege violation has been detected. // A privilege violation has been detected.
@ -1368,7 +1364,7 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
break; break;
case Operation::UNLINK: case Operation::UNLINK:
address_[7].full = effective_address_[1].full; address_[7].full = effective_address_[1].full + 2;
active_program_->destination->full = destination_bus_data_[0].full; active_program_->destination->full = destination_bus_data_[0].full;
break; break;