From 239992ea6cba3a774eaf600f994e4243a2141da3 Mon Sep 17 00:00:00 2001 From: Sam M W Date: Sat, 15 Apr 2023 20:58:31 +0100 Subject: [PATCH] first stab at implementing the JSR instruction --- src/cpu.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/cpu.rs b/src/cpu.rs index a63e6c2..07ee848 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -352,6 +352,13 @@ impl CPU { (Instruction::JMP, OpInput::UseAddress(addr)) => self.jump(addr), + (Instruction::JSR, OpInput::UseAddress(addr)) => { + for b in self.registers.program_counter.wrapping_sub(1).to_le_bytes() { + self.push_on_stack(b); + } + self.jump(addr); + } + (Instruction::LDA, OpInput::UseImmediate(val)) => { debug!("load A immediate: {}", val); self.load_accumulator(val as i8);