summaryrefslogtreecommitdiff
path: root/src/devices/scratch.rs
diff options
context:
space:
mode:
authorBen Bridle <bridle.benjamin@gmail.com>2024-04-16 10:51:13 +1200
committerBen Bridle <bridle.benjamin@gmail.com>2024-04-16 10:51:26 +1200
commit6b3796c9a0d3a2f1422bcbde4790c43417659722 (patch)
tree6429a5fa2f8c4d3b26790775e07e46e6338b61d3 /src/devices/scratch.rs
parent28101de56231252ca0cfa6a9f107b75112c9acad (diff)
downloadbedrock-pc-6b3796c9a0d3a2f1422bcbde4790c43417659722.zip
Update devices to match new specifications
Diffstat (limited to 'src/devices/scratch.rs')
-rw-r--r--src/devices/scratch.rs61
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;
- }
- }
-}