1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-29 12:50:28 +00:00

Fix SH=1 reset; appropriate TCS.

This commit is contained in:
Thomas Harte 2023-08-05 15:06:18 -04:00
parent c0eb401d04
commit 54103f1f34

View File

@ -69,7 +69,7 @@ template <typename BusHandler, bool uses_ready_line> void Processor<BusHandler,
memory_lock_ = false; memory_lock_ = false;
// Reenforce the top byte of S if applicable. // Reenforce the top byte of S if applicable.
registers_.s.halves.high = stack_address(); registers_.s.full = stack_address();
} continue; } continue;
case OperationDecode: { case OperationDecode: {
@ -622,7 +622,7 @@ template <typename BusHandler, bool uses_ready_line> void Processor<BusHandler,
// (and make reasonable guesses as to the N flag). // (and make reasonable guesses as to the N flag).
case TXS: case TXS:
registers_.s = registers_.x.full; registers_.s = registers_.x;
break; break;
case TSX: case TSX:
@ -671,10 +671,8 @@ template <typename BusHandler, bool uses_ready_line> void Processor<BusHandler,
break; break;
case TCS: case TCS:
registers_.s.full = registers_.a.full; registers_.s = registers_.a;
// No need to worry about byte masking here; registers_.s.full = stack_address();
// for the stack it's handled as the emulation runs.
// Cf. the stack_address() macro.
break; break;
case TSC: case TSC: