mirror of
https://github.com/pevans/erc-c.git
synced 2025-02-17 07:32:05 +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;
|
carry = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cpu->P &= ~MOS_CARRY;
|
||||||
if (carry) {
|
if (carry) {
|
||||||
result |= 0x01;
|
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) {
|
if (cpu->eff_addr) {
|
||||||
mos6502_set(cpu, cpu->eff_addr, result & 0xff);
|
mos6502_set(cpu, cpu->eff_addr, result & 0xff);
|
||||||
@ -168,11 +170,13 @@ DEFINE_INST(ror)
|
|||||||
carry = 1;
|
carry = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cpu->P &= ~MOS_CARRY;
|
||||||
if (carry) {
|
if (carry) {
|
||||||
result |= 0x80;
|
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) {
|
if (cpu->eff_addr) {
|
||||||
mos6502_set(cpu, cpu->eff_addr, result & 0xff);
|
mos6502_set(cpu, cpu->eff_addr, result & 0xff);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user