From 1cbcbb5e2912c59b9c176dfd46e863e2bee045e1 Mon Sep 17 00:00:00 2001 From: Oxore Date: Tue, 19 Nov 2019 01:38:14 +0300 Subject: Implement getter for PC in Core, print offset for each instruction --- src/core.rs | 5 +++++ src/main.rs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core.rs b/src/core.rs index 1ec7bae..a3b4541 100644 --- a/src/core.rs +++ b/src/core.rs @@ -328,6 +328,11 @@ impl Core { self.pc } + /// Get current Program Counter value + pub fn pc(&self) -> u16 { + self.pc + } + /// Get current instruction pub fn op(&self) -> Op { let op = IncompleteOp::from_u8(self.rom.array[self.pc as usize]); diff --git a/src/main.rs b/src/main.rs index 8eb1648..87dd041 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,7 @@ use self::core::Core; fn core_worker(mut core: Core, should_stop: &Mutex, cvar: &Condvar) { loop { while !(*should_stop.lock().unwrap()) { - println!("{}", core.op()); + println!("0x{:08x}: {}", core.pc(), core.op()); core.step(); sleep(time::Duration::from_millis(1000)); } -- cgit v1.2.3