diff --git a/Processors/6502/CPU6502.hpp b/Processors/6502/CPU6502.hpp index 4fa8acf63..2ee49b22e 100644 --- a/Processors/6502/CPU6502.hpp +++ b/Processors/6502/CPU6502.hpp @@ -95,6 +95,7 @@ template class Processor { CycleSetIReadBRKLow, CycleReadBRKHigh, CycleReadFromS, CycleReadFromPC, CyclePullOperand, CyclePullPCL, CyclePullPCH, CyclePullA, + CycleNoWritePush, CycleReadAndIncrementPC, CycleIncrementPCAndReadStack, CycleIncrementPCReadPCHLoadPCL, CycleReadPCHLoadPCL, CycleReadAddressHLoadAddressL, CycleReadPCLFromAddress, CycleReadPCHFromAddress, CycleLoadAddressAbsolute, OperationLoadAddressZeroPage, CycleLoadAddessZeroX, CycleLoadAddessZeroY, CycleAddXToAddressLow, @@ -478,9 +479,9 @@ template class Processor { static const MicroOp reset[] = { CycleFetchOperand, CycleFetchOperand, - CyclePullOperand, - CyclePullOperand, - CyclePullOperand, + CycleNoWritePush, + CycleNoWritePush, + CycleNoWritePush, CycleReadRSTLow, CycleReadRSTHigh, OperationMoveToNextProgram @@ -680,6 +681,12 @@ template class Processor { case CyclePushPCL: push(_pc.bytes.low); break; case CyclePushOperand: push(_operand); break; case CyclePushA: push(_a); break; + case CycleNoWritePush: + { + uint16_t targetAddress = _s | 0x100; _s--; + read_mem(_operand, targetAddress); + } + break; #undef push