commit - 06470645cac3260a904d9ef8316c94143054bbab
commit + 0d6ca1e880abde21d60fbe69b4fb6cca1f7b8fae
blob - 67501a09189ce4ffa3e0898056ecdd97ff27c118
blob + 957cdf9ebd7179c303641dd36299671837fb8f52
--- src/chip8.rs
+++ src/chip8.rs
let nnn = instruction & 0x0FFF;
let kk = (instruction & 0x00FF) as u8;
let x = (instruction & 0x0F00) >> 8;
+ let y = (instruction & 0x00F0) >> 4;
match instruction & 0xF000 {
0x0 => match nnn {
self.stack.push(self.pc + 2);
self.pc = nnn;
},
- // SE
+ // SE Vx, byte
0x3 => {
- // skip next instruction if Vx == kk
+ // skip next instruction if Vx == byte
if self.regs[x as usize] == kk {
self.pc += 4;
} else {
self.pc += 2;
}
},
- // SNE
+ // SNE Vx, byte
0x4 => {
- // skip next instruction if Vk != kk
+ // skip next instruction if Vx != byte
if self.regs[x as usize] != kk {
self.pc += 4;
} else {
self.pc += 2;
}
},
+ // SE Vx, Vy
+ 0x5 => {
+ // skip next instruction if Vx == Vy
+ if self.regs[x as usize] == self.regs[y as usize] {
+ self.pc += 4;
+ } else {
+ self.pc += 2;
+ }
+ },
_ => {
return Err(format!("{:#06x}: not an instruction", instruction));
}