private static CpuZ80 ExecuteTest(OpcodeByte ob, Func <RegisterSet, bool> preTest) { var cpuZ80 = new CpuZ80(); var buffer = new[] { ob.Value, AddressLsb, AddressMsb }; var model = cpuZ80.Initialize(buffer); model.Cpu.FillRegisters(); var conditionMet = preTest(cpuZ80.Registers); var def = OpcodeDefinition.Find(ob); model.ClockGen.SquareWave(def.Cycles.Sum()); Console.WriteLine(model.LogicAnalyzer.ToWaveJson()); return(cpuZ80); }
private static SimulationModel ExecuteTest(OpcodeByte ret, Action <SimulationModel> preTest, bool conditionMet, byte extension = 0) { var cpuZ80 = new CpuZ80(); var buffer = (extension == 0) ? new byte[] { ret.Value, 0, 0, 0, 0x55, 0xAA } : new byte[] { extension, ret.Value, 0, 0, 0x55, 0xAA }; var model = cpuZ80.Initialize(buffer); model.Cpu.FillRegisters(sp: Stack); preTest(model); var def = OpcodeDefinition.Find(ret, extension == 0 ? null : new OpcodeByte(extension)); model.ClockGen.SquareWave(conditionMet ? def.Cycles.Sum() : def.AltCycles.Sum()); Console.WriteLine(model.LogicAnalyzer.ToWaveJson()); return(model); }