package chip8 func (emulator *Emulator) ClearScreen() { // TODO: clear the screen buffer emulator.PC += InstructionSize } func (emulator *Emulator) Return() { emulator.StackPop() } // Jump to location nnn. // // The interpreter sets the program counter to nnn. func (emulator *Emulator) Jump(nnn uint16) { emulator.PC = nnn } // Call subroutine at nnn. // // The interpreter increments the stack pointer, then puts the current PC // on the top of the stack. The PC is then set to nnn. func (emulator *Emulator) Call(nnn uint16) { emulator.StackPush() emulator.PC = nnn } // Skip next instruction if Vx = kk. // // The interpreter compares register Vx to kk, and if they are equal, // increments the program counter by 2. func (emulator *Emulator) SkipEqual(x uint8, kk uint8) { if emulator.V[x] == kk { emulator.PC += InstructionSize * 2 } else { emulator.PC += InstructionSize } } // Skip next instruction if Vx != kk. // // The interpreter compares register Vx to kk, and if they are not equal, // increments the program counter by 2. func (emulator *Emulator) SkipNotEqual(x uint8, kk uint8) { if emulator.V[x] != kk { emulator.PC += InstructionSize * 2 } else { emulator.PC += InstructionSize } } // Skip next instruction if Vx = Vy. // // The interpreter compares register Vx to register Vy, and if they are equal, // increments the program counter by 2. func (emulator *Emulator) SkipRegistersEqual(x uint8, y uint8) { if emulator.V[x] == emulator.V[y] { emulator.PC += InstructionSize * 2 } else { emulator.PC += InstructionSize } }