diff --git a/source/Debugger/Debugger_Assembler.cpp b/source/Debugger/Debugger_Assembler.cpp index 8177fa48..dd84244f 100644 --- a/source/Debugger/Debugger_Assembler.cpp +++ b/source/Debugger/Debugger_Assembler.cpp @@ -705,13 +705,13 @@ bool _6502_GetTargets ( WORD nAddress, int *pTargetPartial_, int *pTargetPartial *pTargetPartial_ = nTarget16; *pTargetPartial2_ = nTarget16+1; if (bIncludeNextOpcodeAddress) - *pTargetPointer_ = *(LPWORD)(mem + nTarget16); + *pTargetPointer_ = mem[nTarget16] | (mem[(nTarget16+1)&0xFFFF]<<8); if (pTargetBytes_) *pTargetBytes_ = 2; break; case AM_IZX: // Indexed (Zeropage Indirect, X) - nTarget8 += regs.x; + nTarget8 = (nTarget8 + regs.x) & 0xFF; *pTargetPartial_ = nTarget8; *pTargetPointer_ = *(LPWORD)(mem + nTarget8); if (pTargetBytes_) diff --git a/source/Debugger/Debugger_Display.cpp b/source/Debugger/Debugger_Display.cpp index faca9d72..79a0b7fe 100644 --- a/source/Debugger/Debugger_Display.cpp +++ b/source/Debugger/Debugger_Display.cpp @@ -1502,7 +1502,7 @@ int GetDisassemblyLine ( WORD nBaseAddress, DisasmLine_t & line_ ) { nTarget = pData->nTargetAddress; } else { - nTarget = *(LPWORD)(mem+nBaseAddress+1); + nTarget = mem[(nBaseAddress+1)&0xFFFF] | (mem[(nBaseAddress+2)&0xFFFF]<<8); if (nOpbyte == 2) nTarget &= 0xFF; } @@ -1742,7 +1742,7 @@ void FormatOpcodeBytes ( WORD nBaseAddress, DisasmLine_t & line_ ) for( int iByte = 0; iByte < nMaxOpBytes; iByte++ ) { - BYTE nMem = (unsigned)*(mem+nBaseAddress + iByte); + BYTE nMem = mem[(nBaseAddress+iByte)&0xFFFF]; sprintf( pDst, "%02X", nMem ); // sBytes+strlen(sBytes) pDst += 2;