diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2024-04-16 10:51:13 +1200 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2024-04-16 10:51:26 +1200 |
commit | 6b3796c9a0d3a2f1422bcbde4790c43417659722 (patch) | |
tree | 6429a5fa2f8c4d3b26790775e07e46e6338b61d3 /src/devices/scratch.rs | |
parent | 28101de56231252ca0cfa6a9f107b75112c9acad (diff) | |
download | bedrock-pc-6b3796c9a0d3a2f1422bcbde4790c43417659722.zip |
Update devices to match new specifications
Diffstat (limited to 'src/devices/scratch.rs')
-rw-r--r-- | src/devices/scratch.rs | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/src/devices/scratch.rs b/src/devices/scratch.rs deleted file mode 100644 index 950f87a..0000000 --- a/src/devices/scratch.rs +++ /dev/null @@ -1,61 +0,0 @@ -macro_rules! then_inc { - ($v:expr) => {{ - $v = $v.wrapping_add(1); - $v as usize - }}; -} - -pub struct ScratchDevice { - memory: Vec<u8>, - pub max_capacity: u32, - pub pointer_1: u32, - pub pointer_2: u32, -} - -impl ScratchDevice { - pub fn new() -> Self { - Self { - memory: Vec::new(), - max_capacity: 16 * 65536, - - pointer_1: 0, - pointer_2: 0, - } - } - - pub fn read_head_1(&mut self) -> u8 { - let i = then_inc!(self.pointer_1); - self.read_byte(i) - } - - pub fn read_head_2(&mut self) -> u8 { - let i = then_inc!(self.pointer_2); - self.read_byte(i) - } - - pub fn write_head_1(&mut self, value: u8) { - let i = then_inc!(self.pointer_1); - self.write_byte(i, value); - } - - pub fn write_head_2(&mut self, value: u8) { - let i = then_inc!(self.pointer_2); - self.write_byte(i, value); - } - - fn read_byte(&self, pointer: usize) -> u8 { - match self.memory.get(pointer as usize) { - Some(value) => *value, - None => 0, - } - } - - fn write_byte(&mut self, pointer: usize, value: u8) { - if pointer < self.max_capacity as usize { - if pointer >= self.memory.len() { - self.memory.resize(pointer + 1, 0); - } - self.memory[pointer] = value; - } - } -} |