def test_pack_unpack_special(self): packed = pack_special_instruction(op_code=OPCODE.JSR, a=Value.reg(REG.A)) op_code, a = unpack_special_instruction(packed) self.assertEqual(op_code, OPCODE.JSR) self.assertEqual(a, Value.reg(REG.A))
def test_jsr(self): self.cpu.registers[REG.I].value = 0x2323 # PC should be set to this # JSR I self.cpu.ram[0].value = pack_special_instruction(op_code=OPCODE.JSR, a=REG.I) self.emulator.dispatch() self.assertEqual(self.cpu.PC.value, 0x2323, "PC not right") self.assertEqual(self.cpu.ram[self.cpu.SP.value].value, 0x1, "Stack not right")