From 153f8e4bd7217977c224fb6a021470099006ee1c Mon Sep 17 00:00:00 2001 From: Sam M W Date: Tue, 26 Jan 2021 20:58:09 +0000 Subject: [PATCH] Some unit testing for decimal mode --- src/cpu.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/cpu.rs b/src/cpu.rs index db21458..551c0ff 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -772,6 +772,34 @@ mod tests { use super::*; use num::range_inclusive; + #[test] + fn decimal_mode_test() { + let mut cpu = CPU::new(); + cpu.registers.status.or(Status::PS_DECIMAL_MODE); + + cpu.add_with_carry(0x09); + assert_eq!(cpu.registers.accumulator, 0x09); + assert_eq!(cpu.registers.status.contains(Status::PS_CARRY), false); + assert_eq!(cpu.registers.status.contains(Status::PS_ZERO), false); + assert_eq!(cpu.registers.status.contains(Status::PS_NEGATIVE), false); + assert_eq!(cpu.registers.status.contains(Status::PS_OVERFLOW), false); + + cpu.add_with_carry(0x43); + assert_eq!(cpu.registers.accumulator, 0x52); + assert_eq!(cpu.registers.status.contains(Status::PS_CARRY), false); + assert_eq!(cpu.registers.status.contains(Status::PS_ZERO), false); + assert_eq!(cpu.registers.status.contains(Status::PS_NEGATIVE), false); + assert_eq!(cpu.registers.status.contains(Status::PS_OVERFLOW), false); + + cpu.add_with_carry(0x48); + assert_eq!(cpu.registers.accumulator, 0x00); + assert_eq!(cpu.registers.status.contains(Status::PS_CARRY), true); + assert_eq!(cpu.registers.status.contains(Status::PS_ZERO), true); + assert_eq!(cpu.registers.status.contains(Status::PS_NEGATIVE), false); + assert_eq!(cpu.registers.status.contains(Status::PS_OVERFLOW), true); + + } + #[test] fn add_with_carry_test() { let mut cpu = CPU::new();