This commit is contained in:
omarandlorraine 2024-04-25 07:14:26 +01:00 committed by GitHub
commit 6adb0f4ae7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 22 additions and 0 deletions

View File

@ -1131,6 +1131,28 @@ mod tests {
assert_eq!(cpu.registers.accumulator, 0);
}
#[cfg_attr(feature = "decimal_mode", test)]
fn invalid_decimal_values_test() {
let mut cpu = CPU::new();
cpu.registers.status.remove(Status::PS_CARRY);
cpu.add_with_carry(0x0e);
assert_eq!(cpu.registers.accumulator, 0x0e);
cpu.registers.status.or(Status::PS_DECIMAL_MODE);
assert_eq!(cpu.registers.accumulator, 0x0e);
assert!(!cpu.registers.status.contains(Status::PS_CARRY));
assert!(!cpu.registers.status.contains(Status::PS_ZERO));
assert!(!cpu.registers.status.contains(Status::PS_NEGATIVE));
assert!(!cpu.registers.status.contains(Status::PS_OVERFLOW));
cpu.add_with_carry(-92); // hex $a4
assert_eq!(cpu.registers.accumulator, 0x18);
assert!(cpu.registers.status.contains(Status::PS_CARRY));
assert!(!cpu.registers.status.contains(Status::PS_ZERO));
assert!(cpu.registers.status.contains(Status::PS_NEGATIVE));
assert!(!cpu.registers.status.contains(Status::PS_OVERFLOW));
}
#[cfg_attr(feature = "decimal_mode", test)]
fn decimal_add_test() {
let mut cpu = CPU::new(Ram::new(), Nmos6502);