From 701448be2c3c58e30960d46f090bf08adfc02832 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Thu, 3 Jul 2025 14:53:16 +1200 Subject: Initial commit --- src/core.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/core.rs (limited to 'src/core.rs') diff --git a/src/core.rs b/src/core.rs new file mode 100644 index 0000000..b4b7520 --- /dev/null +++ b/src/core.rs @@ -0,0 +1,31 @@ +use crate::*; + + +pub struct BedrockCore { + pub mem: ProgramMemory, + pub wst: Stack, + pub rst: Stack, + pub cycle: usize, +} + +impl BedrockCore { + pub fn new() -> Self { + Self { + mem: ProgramMemory::new(), + wst: Stack::new(), + rst: Stack::new(), + cycle: 0, + } + } + + pub fn with_device_bus(self, dev: DB) -> BedrockEmulator { + BedrockEmulator { core: self, dev } + } + + pub fn reset(&mut self) { + self.cycle = 0; + self.mem.pc = 0; + self.wst.sp = 0; + self.rst.sp = 0; + } +} -- cgit v1.2.3-70-g09d2