mirror of
https://github.com/FranLMSP/snes.git
synced 2026-08-03 08:30:01 -04:00
set_low_a function
This commit is contained in:
@@ -38,7 +38,7 @@ impl CPU {
|
||||
true => alu::adc8bcd(target as u8, value, carry_flag),
|
||||
false => alu::adc8bin(target as u8, value, carry_flag),
|
||||
};
|
||||
self.registers.a = (self.registers.a & 0xFF00) | (result as u16);
|
||||
self.registers.set_low_a(result as u8);
|
||||
self.registers.set_carry_flag(is_carry);
|
||||
self.registers.set_negative_flag(is_negative);
|
||||
self.registers.set_zero_flag(is_zero);
|
||||
@@ -71,7 +71,7 @@ impl CPU {
|
||||
true => alu::sbc8bcd(target as u8, value, carry_flag),
|
||||
false => alu::sbc8bin(target as u8, value, carry_flag),
|
||||
};
|
||||
self.registers.a = (self.registers.a & 0xFF00) | (result as u16);
|
||||
self.registers.set_low_a(result as u8);
|
||||
self.registers.set_carry_flag(is_carry);
|
||||
self.registers.set_negative_flag(is_negative);
|
||||
self.registers.set_zero_flag(is_zero);
|
||||
|
||||
@@ -27,6 +27,10 @@ impl Registers {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_low_a(&mut self, val: u8) {
|
||||
self.a = (self.a & 0xFF00) | (val as u16);
|
||||
}
|
||||
|
||||
pub fn get_carry_flag(&self) -> bool {
|
||||
(self.p & 0b0000_0001) == 1
|
||||
}
|
||||
@@ -117,6 +121,14 @@ impl Registers {
|
||||
mod registers_tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_set_low_a() {
|
||||
let mut registers = Registers::new();
|
||||
registers.a = 0xA1A1;
|
||||
registers.set_low_a(0xFF);
|
||||
assert_eq!(registers.a, 0xA1FF);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_get_pc_address() {
|
||||
let mut registers = Registers::new();
|
||||
|
||||
Reference in New Issue
Block a user