diff options
| author | vin <git@vineetk.net> | 2024-07-20 21:18:11 -0400 |
|---|---|---|
| committer | vin <git@vineetk.net> | 2024-07-20 21:18:11 -0400 |
| commit | 81575946ae0d3e61d45b9c4a34785bf203955cee (patch) | |
| tree | 3eb9a9b94cfe16e5354314d0277ce0b94eaea1c8 /cpu.c | |
| parent | 70937cd61f63e159d5de226fa640d102c8fb0d14 (diff) | |
fix status flag bug in ASL and ROL
Diffstat (limited to 'cpu.c')
| -rw-r--r-- | cpu.c | 5 |
1 files changed, 3 insertions, 2 deletions
| @@ -204,7 +204,8 @@ ASL(uint16_t mem) | |||
| 204 | memwrite(mem, tmp & 0xFF); | 204 | memwrite(mem, tmp & 0xFF); |
| 205 | 205 | ||
| 206 | regs.status.carry = tmp > 0xFF; | 206 | regs.status.carry = tmp > 0xFF; |
| 207 | STATUS_UPDATE_NZ(tmp); | 207 | regs.status.negative = (tmp & (1 << 7)) != 0; |
| 208 | regs.status.zero = (tmp << 1 & 0xFF) == 0; | ||
| 208 | } | 209 | } |
| 209 | 210 | ||
| 210 | void | 211 | void |
| @@ -536,7 +537,7 @@ ROL(uint16_t mem) | |||
| 536 | memwrite(mem, tmp); | 537 | memwrite(mem, tmp); |
| 537 | 538 | ||
| 538 | regs.status.carry = carry; | 539 | regs.status.carry = carry; |
| 539 | STATUS_UPDATE_NZ(regs.a); | 540 | STATUS_UPDATE_NZ(tmp); |
| 540 | } | 541 | } |
| 541 | 542 | ||
| 542 | void | 543 | void |
