Added SET_LAST_POKE for STA/STX/STY using absolute addressing (frequently used wasting 1 cycle) and PHA.
This commit is contained in:
thrust26 2018-12-28 12:36:00 +01:00
parent 6987c06337
commit 84300914cc
2 changed files with 8 additions and 2 deletions

View File

@ -3017,7 +3017,7 @@ case 0x48:
{ {
peek(PC, DISASM_NONE); peek(PC, DISASM_NONE);
} }
// TODO - add tracking for this opcode SET_LAST_POKE(myLastSrcAddressA)
{ {
poke(0x0100 + SP--, A, DISASM_WRITE); poke(0x0100 + SP--, A, DISASM_WRITE);
} }
@ -4602,6 +4602,7 @@ case 0x8d:
operandAddress = peek(PC++, DISASM_CODE); operandAddress = peek(PC++, DISASM_CODE);
operandAddress |= (uInt16(peek(PC++, DISASM_CODE)) << 8); operandAddress |= (uInt16(peek(PC++, DISASM_CODE)) << 8);
} }
SET_LAST_POKE(myLastSrcAddressA)
{ {
poke(operandAddress, A, DISASM_WRITE); poke(operandAddress, A, DISASM_WRITE);
} }
@ -4687,6 +4688,7 @@ case 0x8e:
operandAddress = peek(PC++, DISASM_CODE); operandAddress = peek(PC++, DISASM_CODE);
operandAddress |= (uInt16(peek(PC++, DISASM_CODE)) << 8); operandAddress |= (uInt16(peek(PC++, DISASM_CODE)) << 8);
} }
SET_LAST_POKE(myLastSrcAddressX)
{ {
poke(operandAddress, X, DISASM_WRITE); poke(operandAddress, X, DISASM_WRITE);
} }
@ -4722,6 +4724,7 @@ case 0x8c:
operandAddress = peek(PC++, DISASM_CODE); operandAddress = peek(PC++, DISASM_CODE);
operandAddress |= (uInt16(peek(PC++, DISASM_CODE)) << 8); operandAddress |= (uInt16(peek(PC++, DISASM_CODE)) << 8);
} }
SET_LAST_POKE(myLastSrcAddressY)
{ {
poke(operandAddress, Y, DISASM_WRITE); poke(operandAddress, Y, DISASM_WRITE);
} }

View File

@ -1842,7 +1842,7 @@ break;
// PHA // PHA
case 0x48: case 0x48:
M6502_IMPLIED M6502_IMPLIED
// TODO - add tracking for this opcode SET_LAST_POKE(myLastSrcAddressA)
M6502_PHA M6502_PHA
break; break;
@ -2228,6 +2228,7 @@ break;
case 0x8d: case 0x8d:
M6502_ABSOLUTE_WRITE M6502_ABSOLUTE_WRITE
SET_LAST_POKE(myLastSrcAddressA)
M6502_STA M6502_STA
break; break;
@ -2268,6 +2269,7 @@ break;
case 0x8e: case 0x8e:
M6502_ABSOLUTE_WRITE M6502_ABSOLUTE_WRITE
SET_LAST_POKE(myLastSrcAddressX)
M6502_STX M6502_STX
break; break;
////////////////////////////////////////////////// //////////////////////////////////////////////////
@ -2288,6 +2290,7 @@ break;
case 0x8c: case 0x8c:
M6502_ABSOLUTE_WRITE M6502_ABSOLUTE_WRITE
SET_LAST_POKE(myLastSrcAddressY)
M6502_STY M6502_STY
break; break;
////////////////////////////////////////////////// //////////////////////////////////////////////////