use crate::periph::hm62256::Hm62256; impl Hm62256 { fn tick(&mut self, address_bus: u16, data_bus: u8, read_mode: bool) -> (u16, u8) { let new_data_bus = if read_mode { // reading from ram self.data[address_bus as usize] } else { // writing to ram self.data[address_bus as usize] = data_bus.into(); data_bus }; (address_bus, new_data_bus) } } #[cfg(test)] mod test { use super::*; #[test] fn smoke() { assert!(true); } #[test] fn write_to_memory_read_back_works_at_0() { let mut ram = Hm62256::default(); // load the data to ram ram.tick(0x0000, 0xab, false); // read the data back let (_, new_data) = ram.tick(0x0000, 0x00, true); assert_eq!(new_data, 0xab); } }