Skip to content

Commit

Permalink
Merge pull request #730 from TheRealQuantam/indy-fix
Browse files Browse the repository at this point in the history
"(z),Y" addressing incorrectly shown as "(z,Y)" in debugger
  • Loading branch information
thor2016 authored Apr 19, 2024
2 parents 84b823f + 1028732 commit 151c951
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
8 changes: 3 additions & 5 deletions src/asm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -337,10 +337,8 @@ char *Disassemble(int addr, uint8 *opcode) {
case 0xE1: chr = "SBC"; goto _indirectx;
_indirectx:
indirectX(tmp);
indReg = 'X';

_indirect:
sb << chr << " (" << sb_addr(opcode[1], 2) << ',' << indReg << ") @ " << sb_addr(tmp) << " = " << sb_lit(GetMem(tmp));
sb << chr << " (" << sb_addr(opcode[1], 2) << ",X) @ " << sb_addr(tmp) << " = " << sb_lit(GetMem(tmp));
break;

//Zero Page
Expand Down Expand Up @@ -445,9 +443,9 @@ char *Disassemble(int addr, uint8 *opcode) {
case 0xF1: chr = "SBC"; goto _indirecty;
_indirecty:
indirectY(tmp);
indReg = 'Y';

goto _indirect;
sb << chr << " (" << sb_addr(opcode[1], 2) << "),Y @ " << sb_addr(tmp) << " = " << sb_lit(GetMem(tmp));
break;

//Zero Page,X
case 0x15: chr = "ORA"; goto _zeropagex;
Expand Down
22 changes: 17 additions & 5 deletions src/drivers/Qt/SymbolicDebug.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,13 +164,11 @@ int DisassembleWithDebug(int addr, uint8_t *opcode, int flags, char *str, debugS
case 0xE1: chr = "SBC"; goto _indirectx;
_indirectx:
indirectX(tmp);
indReg = 'X';

_indirect:
if ( symDebugEnable )
sym = replaceSymbols( flags, tmp, stmp );

sb << chr << " (" << sb_addr(opcode[1], 2) << ',' << indReg << ')';
sb << chr << " (" << sb_addr(opcode[1], 2) << ",X)";

if (showTrace)
{
Expand Down Expand Up @@ -315,9 +313,23 @@ int DisassembleWithDebug(int addr, uint8_t *opcode, int flags, char *str, debugS
case 0xF1: chr = "SBC"; goto _indirecty;
_indirecty:
indirectY(tmp);
indReg = 'Y';

goto _indirect;
if (symDebugEnable)
sym = replaceSymbols(flags, tmp, stmp);

sb << chr << " (" << sb_addr(opcode[1], 2) << "),Y";

if (showTrace)
{
sb << " @ ";
if (symDebugEnable)
sb << stmp;
else
sb << sb_addr(tmp);

sb << " = " << sb_lit(GetMem(tmp));
}
break;

//Zero Page,X
case 0x15: chr = "ORA"; goto _zeropagex;
Expand Down

0 comments on commit 151c951

Please sign in to comment.