示例#1
0
        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);
        }
示例#2
0
        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);
        }