From 19e0e4cb5f26df537bf07b428700bea30460fd5b Mon Sep 17 00:00:00 2001 From: Oxore Date: Thu, 5 Mar 2020 00:33:55 +0300 Subject: Use bus for all memory types, etc. Rename Memory to Bus --- src/bus.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/bus.rs (limited to 'src/bus.rs') diff --git a/src/bus.rs b/src/bus.rs new file mode 100644 index 0000000..e3b6579 --- /dev/null +++ b/src/bus.rs @@ -0,0 +1,19 @@ +extern crate num_traits; + +pub trait Bus +where + Addr: Copy + core::ops::Add + num_traits::identities::One, +{ + fn get(&self, a: Addr) -> u8; + + fn set(&mut self, a: Addr, v: u8); + + fn get_word(&self, a: Addr) -> u16 { + u16::from(self.get(a)) | (u16::from(self.get(a + Addr::one())) << 8) + } + + fn set_word(&mut self, a: Addr, v: u16) { + self.set(a, (v & 0xFF) as u8); + self.set(a + Addr::one(), (v >> 8) as u8) + } +} -- cgit v1.2.3