From ba8c909f3f1e3d6599513b861ef9fe3697d7baea Mon Sep 17 00:00:00 2001 From: nick-less Date: Mon, 17 Dec 2018 17:29:02 +0100 Subject: [PATCH] fixed missing break in inc/dec --- src/Cpu65816Debugger.cpp | 4 ++-- src/opcodes/OpCode_INC_DEC.cpp | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Cpu65816Debugger.cpp b/src/Cpu65816Debugger.cpp index cadb5f3..8f318f2 100644 --- a/src/Cpu65816Debugger.cpp +++ b/src/Cpu65816Debugger.cpp @@ -157,11 +157,11 @@ void Cpu65816Debugger::logOpCode(OpCode &opCode) const { log.str(" [Direct Page Indirect Long]"); break; case AddressingMode::DirectPageIndexedIndirectWithX: - log.str("(").hex(mCpu.mSystemBus.readByte(mCpu.mProgramAddress.newWithOffset(1)), 2).str(", X)").sp(); + log.str("(").hex(mCpu.mSystemBus.readByte(Address(mCpu.mProgramAddress.getBank(),mCpu.mProgramAddress.getOffset()+1)), 2).str(", X)").sp(); log.str(" [Direct Page Indexed Indirect, X]"); break; case AddressingMode::DirectPageIndirectIndexedWithY: - log.str("(").hex(mCpu.mSystemBus.readByte(mCpu.mProgramAddress.newWithOffset(1)), 2).str("), Y").sp(); + log.str("(").hex(mCpu.mSystemBus.readByte(Address(mCpu.mProgramAddress.getBank(),mCpu.mProgramAddress.getOffset()+1)), 2).str("), Y").sp(); log.str(" [Direct Page Indirect Indexed, Y]"); break; case AddressingMode::DirectPageIndirectLongIndexedWithY: diff --git a/src/opcodes/OpCode_INC_DEC.cpp b/src/opcodes/OpCode_INC_DEC.cpp index 2cb3fc3..55413c8 100644 --- a/src/opcodes/OpCode_INC_DEC.cpp +++ b/src/opcodes/OpCode_INC_DEC.cpp @@ -71,6 +71,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { mCpuStatus.updateSignAndZeroFlagFrom16BitValue(mA); } addToProgramAddressAndCycles(1, 2); + break; } case(0xEE): // INC Absolute { @@ -81,6 +82,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { addToCycles(2); } addToProgramAddressAndCycles(3, 6); + break; } case(0xE6): // INC Direct Page { @@ -94,6 +96,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { addToCycles(1); } addToProgramAddressAndCycles(2, 5); + break; } case(0xFE): // INC Absolute Indexed, X { @@ -110,6 +113,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { #endif addToProgramAddressAndCycles(3, 7); } + break; case(0xF6): // INC Direct Page Indexed, X { if (accumulatorIs8BitWide()) { @@ -122,6 +126,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { addToCycles(1); } addToProgramAddressAndCycles(2, 6); + break; } case(0x3A): // DEC Accumulator { @@ -135,6 +140,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { mCpuStatus.updateSignAndZeroFlagFrom16BitValue(mA); } addToProgramAddressAndCycles(1, 2); + break; } case(0xCE): // DEC Absolute { @@ -145,6 +151,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { addToCycles(2); } addToProgramAddressAndCycles(3, 6); + break; } case(0xC6): // DEC Direct Page { @@ -158,6 +165,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { addToCycles(1); } addToProgramAddressAndCycles(2, 5); + break; } case(0xDE): // DEC Absolute Indexed, X { @@ -173,6 +181,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { } #endif addToProgramAddressAndCycles(3, 7); + break; } case(0xD6): // DEC Direct Page Indexed, X { @@ -186,6 +195,7 @@ void Cpu65816::executeINCDEC(OpCode &opCode) { addToCycles(1); } addToProgramAddressAndCycles(2, 6); + break; } case(0xC8): // INY {