Esempio n. 1
0
 def testSetVXToSubtractionOfVXFromVYWithCarry(self):
     cpu = chip8()
     cpu.registers[0xA] = 0xF
     cpu.registers[0xE] = 0xA
     cpu.executeInstruction(0x8AE7)
     self.assertEqual(cpu.registers[0xA], 0xFA)
     self.assertEqual(cpu.registers[0xF], 0x1)
Esempio n. 2
0
 def testSetVXToVY(self):
     cpu = chip8()
     cpu.registers[0xA] = 0x0
     cpu.registers[0xF] = 0xFA
     self.assertEqual(cpu.registers[0xA], 0x0)
     cpu.executeInstruction(0x8AF0)
     self.assertEqual(cpu.registers[0xA], 0xFA)
Esempio n. 3
0
 def testAddVYToVXWithCarry(self):
     cpu = chip8()
     cpu.registers[0xA] = 0xFF
     cpu.registers[0xE] = 0xFA
     cpu.executeInstruction(0x8AE4)
     self.assertEqual(cpu.registers[0xA], 0xFA)
     self.assertEqual(cpu.registers[0xF], 0x1)
Esempio n. 4
0
 def testInstructionSkipsTheNextInstructionIfVXDoesNotEqualsNN(self):
     cpu = chip8()
     cpu.PC = 0
     cpu.registers[0xA] = 0xFF
     self.assertEqual(cpu.registers[0xA], 0xFF)
     self.assertEqual(cpu.PC, 0)
     cpu.executeInstruction(0x4AFF)
     self.assertEqual(cpu.PC, 2)
     cpu.executeInstruction(0x4AFA)
     self.assertEqual(cpu.PC, 6)
Esempio n. 5
0
    def testShiftVXLeft(self):
        cpu = chip8()
        cpu.registers[0xA] = 0x8A
        cpu.executeInstruction(0x8AEE)
        self.assertEqual(cpu.registers[0xA], 0x14)
        self.assertEqual(cpu.registers[0xF], 0x1)

        cpu.registers[0xA] = 0x2
        cpu.executeInstruction(0x8AEE)
        self.assertEqual(cpu.registers[0xA], 0x4)
        self.assertEqual(cpu.registers[0xF], 0x0)
Esempio n. 6
0
    def testShiftVXRight(self):
        cpu = chip8()
        cpu.registers[0xA] = 0x3
        cpu.executeInstruction(0x8AE6)
        self.assertEqual(cpu.registers[0xA], 0x1)
        self.assertEqual(cpu.registers[0xF], 0x1)

        cpu.registers[0xA] = 0x2
        cpu.executeInstruction(0x8AE6)
        self.assertEqual(cpu.registers[0xA], 0x1)
        self.assertEqual(cpu.registers[0xF], 0x0)
Esempio n. 7
0
 def testSkipNextInstructionIfVXEqualsVY(self):
     cpu = chip8()
     cpu.PC = 0
     cpu.registers[0xA] = 0xFF
     self.assertEqual(cpu.registers[0xA], 0xFF)
     self.assertEqual(cpu.PC, 0)
     cpu.executeInstruction(0x5AF0)
     self.assertEqual(cpu.PC, 2)
     cpu.registers[0xF] = 0xFF
     self.assertEqual(cpu.registers[0xF], 0xFF)
     cpu.executeInstruction(0x5AF0)
     self.assertEqual(cpu.PC, 6)
Esempio n. 8
0
 def testSetVXToVXxorVY(self):
     cpu = chip8()
     cpu.registers[0xA] = 0x2
     cpu.registers[0xF] = 0xA
     cpu.executeInstruction(0x8AF3)
     self.assertEqual(cpu.registers[0xA], 0x8)
Esempio n. 9
0
 def testSetVXToVXandVY(self):
     cpu = chip8()
     cpu.registers[0xA] = 0x7
     cpu.registers[0xF] = 0x3
     cpu.executeInstruction(0x8AF2)
     self.assertEqual(cpu.registers[0xA], 0x3)
Esempio n. 10
0
 def testAddValueToVX(self):
     cpu = chip8()
     cpu.registers[0xA] = 0x5
     self.assertEqual(cpu.registers[0xA], 0x5)
     cpu.executeInstruction(0x7A05)
     self.assertEqual(cpu.registers[0xA], 0xA)
Esempio n. 11
0
 def testSetValueToVX(self):
     cpu = chip8()
     cpu.registers[0xA] = 0x0
     self.assertEqual(cpu.registers[0xA], 0x0)
     cpu.executeInstruction(0x6AFA)
     self.assertEqual(cpu.registers[0xA], 0xFA)
Esempio n. 12
0
 def testInstructionJumpTo(self):
     cpu = chip8()
     cpu.PC = 0
     cpu.executeInstruction(0x1FFF)
     self.assertEqual(cpu.PC, 0x0FFF)
Esempio n. 13
0
def main():

    emulator=chip8()
    emulator.load_rom('/home/misha/Desktop/chip8/PONG2')
    emulator.run_cycle()