36 lines
842 B
Rust
36 lines
842 B
Rust
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);
|
|
}
|
|
}
|