summaryrefslogtreecommitdiff
path: root/src/stack.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/stack.rs')
-rw-r--r--src/stack.rs43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/stack.rs b/src/stack.rs
deleted file mode 100644
index ab18cca..0000000
--- a/src/stack.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-pub struct Stack {
- pub mem: [u8; 256],
- pub sp: u8,
-}
-
-impl Stack {
- pub fn new() -> Self {
- Self {
- mem: [0; 256],
- sp: 0,
- }
- }
-
- pub fn reset(&mut self) {
- self.sp = 0;
- }
-
- pub fn push_u8(&mut self, val: u8) {
- self.mem[self.sp as usize] = val;
- self.sp = self.sp.wrapping_add(1);
- }
-
- pub fn pop_u8(&mut self) -> u8 {
- self.sp = self.sp.wrapping_sub(1);
- self.mem[self.sp as usize]
- }
-
- pub fn push_u16(&mut self, val: u16) {
- let [high, low] = u16::to_be_bytes(val);
- self.mem[self.sp as usize] = high;
- self.sp = self.sp.wrapping_add(1);
- self.mem[self.sp as usize] = low;
- self.sp = self.sp.wrapping_add(1);
- }
-
- pub fn pop_u16(&mut self) -> u16 {
- self.sp = self.sp.wrapping_sub(1);
- let low = self.mem[self.sp as usize];
- self.sp = self.sp.wrapping_sub(1);
- let high = self.mem[self.sp as usize];
- u16::from_be_bytes([high, low])
- }
-}