public void Nop() { var cpuZ80 = new CpuZ80(); var model = cpuZ80.Initialize(new byte[] { 0x00 }); cpuZ80.FillRegisters(pc: 0); model.ClockGen.SquareWave(4); Console.WriteLine(model.LogicAnalyzer.ToWaveJson()); cpuZ80.AssertRegisters(pc: 1); }
public void ExDE_HL() { var ob = OpcodeByte.New(x: 3, z: 3, y: 5); var cpuZ80 = new CpuZ80(); var model = cpuZ80.Initialize(new byte[] { ob.Value }); cpuZ80.FillRegisters(de: 0x1234, hl: 0x9876); model.ClockGen.SquareWave(4); cpuZ80.AssertRegisters(hl: 0x1234, de: 0x9876); }
public void ExAFAF() { var ob = OpcodeByte.New(x: 0, z: 0, y: 1); var cpuZ80 = new CpuZ80(); var model = cpuZ80.Initialize(new byte[] { ob.Value }); cpuZ80.FillRegisters(a: 0x55, a_a: 0xAA); model.ClockGen.SquareWave(4); cpuZ80.AssertRegisters(a: 0xAA, a_a: 0x55); }
private SimulationModel ExecuteTest(OpcodeByte ob) { var cpu = new CpuZ80(); var model = cpu.Initialize(new byte[] { ob.Value }); cpu.FillRegisters(); model.ClockGen.SquareWave(4); Console.WriteLine(model.LogicAnalyzer.ToWaveJson()); cpu.AssertRegisters(); return(model); }
private void AssertRegisters(CpuZ80 cpu, Register8Table reg, ushort value) { switch (reg) { case Register8Table.B: case Register8Table.C: cpu.AssertRegisters(pc: 2, bc: value); break; case Register8Table.D: case Register8Table.E: cpu.AssertRegisters(pc: 2, de: value); break; case Register8Table.H: case Register8Table.L: cpu.AssertRegisters(pc: 2, hl: value); break; case Register8Table.A: cpu.AssertRegisters(pc: 2, a: (byte)value); break; } }
public void Exx() { var ob = OpcodeByte.New(x: 3, z: 1, q: 1, p: 1); var cpuZ80 = new CpuZ80(); var model = cpuZ80.Initialize(new byte[] { ob.Value }); cpuZ80.FillRegisters(bc: 0x1234, de: 0x5678, hl: 0x9ABC, a_bc: 0x4321, a_de: 8765, a_hl: 0xCBA9); model.ClockGen.SquareWave(4); Console.WriteLine(model.LogicAnalyzer.ToWaveJson()); cpuZ80.AssertRegisters(a_bc: 0x1234, a_de: 0x5678, a_hl: 0x9ABC, bc: 0x4321, de: 8765, hl: 0xCBA9); }