mirror of
https://github.com/pevans/erc-c.git
synced 2024-11-23 23:32:45 +00:00
Carry is set by left- or right-most bits
Don't rely on modify_status() to get it right.
This commit is contained in:
parent
3206332a7d
commit
d119854631
@ -142,11 +142,13 @@ DEFINE_INST(rol)
|
||||
carry = 1;
|
||||
}
|
||||
|
||||
cpu->P &= ~MOS_CARRY;
|
||||
if (carry) {
|
||||
result |= 0x01;
|
||||
cpu->P |= MOS_CARRY;
|
||||
}
|
||||
|
||||
mos6502_modify_status(cpu, MOS_NZC, oper, result);
|
||||
mos6502_modify_status(cpu, MOS_NZ, oper, result);
|
||||
|
||||
if (cpu->eff_addr) {
|
||||
mos6502_set(cpu, cpu->eff_addr, result & 0xff);
|
||||
@ -168,11 +170,13 @@ DEFINE_INST(ror)
|
||||
carry = 1;
|
||||
}
|
||||
|
||||
cpu->P &= ~MOS_CARRY;
|
||||
if (carry) {
|
||||
result |= 0x80;
|
||||
cpu->P |= MOS_CARRY;
|
||||
}
|
||||
|
||||
mos6502_modify_status(cpu, MOS_NZC, oper, result);
|
||||
mos6502_modify_status(cpu, MOS_NZ, oper, result);
|
||||
|
||||
if (cpu->eff_addr) {
|
||||
mos6502_set(cpu, cpu->eff_addr, result & 0xff);
|
||||
|
Loading…
Reference in New Issue
Block a user