def test_TAY(): cpu = CPU() memory = Memory() cpu.y = 1 cpu.a = 2 TAY = OpCodes.all[168] TAY.exec(cpu, memory) assert cpu.y == 2 assert cpu.zero == False assert cpu.negative == False cpu.a = 0 cpu.y = 1 cpu.inc_cycle_by(-cpu.cycle) TAY.exec(cpu, memory) assert cpu.cycle == (TAY.cycles - 1) assert cpu.y == 0 assert cpu.zero == True assert cpu.negative == False cpu.a = 0b10000001 cpu.y = 1 TAY.exec(cpu, memory) assert cpu.y == 0b10000001 assert cpu.zero == False print(cpu.negative) assert cpu.negative == True
def test_TYA(): cpu = CPU() memory = Memory() cpu.a = 1 cpu.y = 2 TYA = OpCodes.all[152] TYA.exec(cpu, memory) assert cpu.a == 2 assert cpu.zero == False assert cpu.negative == False cpu.y = 0 cpu.a = 1 cpu.inc_cycle_by(-cpu.cycle) TYA.exec(cpu, memory) assert cpu.cycle == (TYA.cycles - 1) assert cpu.a == 0 assert cpu.zero == True assert cpu.negative == False cpu.y = 0b10000001 cpu.a = 1 TYA.exec(cpu, memory) assert cpu.a == 0b10000001 assert cpu.zero == False print(cpu.negative) assert cpu.negative == True
def test_read_Accumulator(): address_mode = Accumulator cpu = CPU() memory = Memory() cpu.a = 0x00 cpu.inc_cycle_by(-cpu.cycle) address = address_mode.fetch_address(cpu, memory) value = address_mode.read_from(cpu, memory, address) assert address is None assert value == 0x00 cpu.inc_cycle_by(-cpu.cycle) cpu.inc_pc_by(-cpu.pc) cpu.inc_pc_by(MemoryPositions.PRG_ROM_START.start) cpu.a = 0x10 address = address_mode.fetch_address(cpu, memory) value = address_mode.read_from(cpu, memory, address) assert address is None assert value == 0x10 cpu.inc_cycle_by(-cpu.cycle) cpu.inc_pc_by(-cpu.pc) cpu.inc_pc_by(MemoryPositions.PRG_ROM_START.start) cpu.a = 0xFF address = address_mode.fetch_address(cpu, memory) value = address_mode.read_from(cpu, memory, address) assert address is None assert value == 0xFF
def test_read_Accumulator(): address_mode = Accumulator cpu = CPU() memory = Memory() cpu.inc_cycle_by(-cpu.cycle) address = address_mode.fetch_address(cpu, memory) address_mode.write_to(cpu, memory, address, 5) assert address is None assert cpu.a == 5 cpu.inc_cycle_by(-cpu.cycle) cpu.inc_pc_by(-cpu.pc) cpu.inc_pc_by(MemoryPositions.PRG_ROM_START.start) cpu.a = 0x10 address = address_mode.fetch_address(cpu, memory) address_mode.write_to(cpu, memory, address, 105) assert address is None assert cpu.a == 105 cpu.inc_cycle_by(-cpu.cycle) cpu.inc_pc_by(-cpu.pc) cpu.inc_pc_by(MemoryPositions.PRG_ROM_START.start) cpu.a = 0xFF address = address_mode.fetch_address(cpu, memory) address_mode.write_to(cpu, memory, address, 255) assert address is None assert cpu.a == 255
def test_ROR_accumulator(): instruction = OpCodes.all[0x6A] cpu = CPU() memory = Memory() cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b00000000 cpu.carry = False instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b00000000 assert cpu.zero == True assert cpu.carry == False assert cpu.negative == False cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b00000001 cpu.carry = False instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b00000000 assert cpu.zero == True assert cpu.carry == True assert cpu.negative == False cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b01000000 cpu.carry = False instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b00100000 assert cpu.zero == False assert cpu.carry == False assert cpu.negative == False cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b10000000 cpu.carry = False instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b01000000 assert cpu.zero == False assert cpu.carry == False assert cpu.negative == False cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b00000000 cpu.carry = True instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b10000000 assert cpu.zero == False assert cpu.carry == False assert cpu.negative == True cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b00000010 cpu.carry = True instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b10000001 assert cpu.zero == False assert cpu.carry == False assert cpu.negative == True cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b01000000 cpu.carry = True instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b10100000 assert cpu.zero == False assert cpu.carry == False assert cpu.negative == True cpu.inc_cycle_by(-cpu.cycle) cpu.a = 0b00000001 cpu.carry = True instruction.exec(cpu, memory) assert cpu.cycle == (instruction.cycles - 1) assert cpu.a == 0b10000000 assert cpu.zero == False assert cpu.carry == True assert cpu.negative == True