diff --git a/cpu.c b/cpu.c index c7d25ef..bcaa00b 100644 --- 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