commit 5535e5de70684dd8406e53d6ce928faf9011336c
parent 4b7fae00103c9fbaeeba45a78a7d0c910d243dc0
Author: vin <git@vineetk.net>
Date: Sun, 30 Jun 2024 06:28:41 -0400
change SBC to be ADC with one's complement instead of two's
It seems that is what was expected when run with nestest.
Diffstat:
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/cpu.c b/cpu.c
@@ -664,7 +664,7 @@ static void
sbc(uint8_t arg)
{
/* SBC is described online as ADC with argument as two's complement */
- adc(~arg + 1);
+ adc(~arg);
}
static void
@@ -733,7 +733,8 @@ tay(void)
static void
tsx(void)
{
- regs.x = PULL();
+// regs.x = PULL();
+ regs.x = regs.sp;
STATUS_UPDATE_ZERO(regs.x);
STATUS_UPDATE_NEGATIVE(regs.x);
@@ -751,7 +752,8 @@ txa(void)
static void
txs(void)
{
- PUSH(regs.x);
+// PUSH(regs.x);
+ regs.sp = regs.x;
}
static void