use crate::periph::at28c256::At28C256; use crate::periph::backplane::Backplane; use crate::periph::hm62256::Hm62256; pub struct RamRomComputer { rom: At28C256, ram: Hm62256, data_bus: u8, address_bus: u16, read_mode: bool, } impl Backplane for RamRomComputer { fn data_bus(&self) -> u8 { self.data_bus } fn address_bus(&self) -> u16 { self.address_bus } fn read_mode(&self) -> bool { self.read_mode } fn tick(&mut self) { todo!() } fn set_read_mode(&mut self, new_mode: bool) { self.read_mode = new_mode; } fn set_address_bus(&mut self, new_value: u16) { self.address_bus = new_value; } fn set_data_bus(&mut self, new_value: u8) { self.data_bus = new_value; } } impl RamRomComputer { pub fn new() -> RamRomComputer { RamRomComputer { rom: At28C256::default(), ram: Hm62256::default(), data_bus: 0x00, address_bus: 0x0000, /// is the CPU reading from the 'other' device? read_mode: true } } }