summaryrefslogtreecommitdiff
path: root/src/chip8.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/chip8.rs')
-rw-r--r--src/chip8.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/chip8.rs b/src/chip8.rs
index 83139f4..988dc6e 100644
--- a/src/chip8.rs
+++ b/src/chip8.rs
@@ -64,6 +64,8 @@ impl Chip8 {
}
0x000E => {
eprintln!("RET");
+ self.sp -= 1;
+ self.pc = self.stack[self.sp as usize];
}
_ => unknown_opcode(opcode),
},
@@ -71,6 +73,12 @@ impl Chip8 {
eprintln!("JP {}", nnn);
self.pc = nnn;
}
+ 0x2000 => {
+ eprintln!("CALL {}", nnn);
+ self.stack[self.sp as usize] = self.pc;
+ self.sp += 1;
+ self.pc = nnn;
+ }
0x3000 => {
eprintln!("SE V{}, {}", x, nn);
if self.v[x] == nn {