53 lines
1.1 KiB
Rust
53 lines
1.1 KiB
Rust
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
|
|
}
|
|
}
|
|
} |