summaryrefslogtreecommitdiff
path: root/cpu.c
diff options
context:
space:
mode:
authorvin <git@vineetk.net>2024-06-09 15:35:31 +0530
committervin <git@vineetk.net>2024-06-09 15:35:31 +0530
commit858cbfba48145ff9303a4127cb73911fc8904462 (patch)
treedd0a425cfecf793d1764bbe166f207a24121f2f8 /cpu.c
parent76b9059b2e299dca5a96cf94f21038002f4dad3a (diff)
fix potential adc overflow flag bug
Diffstat (limited to 'cpu.c')
-rw-r--r--cpu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpu.c b/cpu.c
index 4aeaaf6..3bbfc42 100644
--- a/cpu.c
+++ b/cpu.c
@@ -120,7 +120,7 @@ adc(uint8_t arg)
120 120
121 regs.status.carry = sum > 0xFF; 121 regs.status.carry = sum > 0xFF;
122 /* overflow flag formula: https://stackoverflow.com/a/29224684 */ 122 /* overflow flag formula: https://stackoverflow.com/a/29224684 */
123 regs.status.overflow = ~(regs.a ^ arg) & (regs.a ^ sum) & 0x80; 123 regs.status.overflow = (~(regs.a ^ arg) & (regs.a ^ sum) & 0x80) > 0;
124 STATUS_UPDATE_ZERO(regs.a); 124 STATUS_UPDATE_ZERO(regs.a);
125 STATUS_UPDATE_NEGATIVE(regs.a); 125 STATUS_UPDATE_NEGATIVE(regs.a);
126} 126}