public void SquareWave(long numberOfMachineCycles, CycleNames toCycle, DigitalLevel toLevel, CycleNames maxCycle = CycleNames.T4) { if (maxCycle < toCycle) { maxCycle = toCycle; } for (int machineCycle = 1; machineCycle <= numberOfMachineCycles; machineCycle++) { for (var cycle = CycleNames.T1; cycle <= toCycle; cycle++) { for (var level = DigitalLevel.Low; level <= DigitalLevel.NegEdge; level++) { Output.Write(level); if (machineCycle == numberOfMachineCycles && cycle == toCycle && level == toLevel) { return; } } } } }
public static void Clock(this CpuZ80 cpu, CycleNames toCycle, DigitalLevel toLevel) { var gen = new SignalGenerator(); var clock = cpu.Clock.ConnectTo(gen.Output); gen.SquareWave(1, toCycle, toLevel); }
private void ExecuteCountTest(int machineCycles, CycleNames toCycle, DigitalLevel toLevel) { var gen = new SignalGenerator(); var ds = new DigitalSignal("GenOut"); ds.OnChanged += Output_OnChanged; gen.Output.ConnectTo(ds); gen.SquareWave(machineCycles, toCycle, toLevel); }
public static DigitalSignalProvider Clock(this CpuZ80 cpu, CycleNames toCycle, DigitalLevel toLevel) { var gen = new SignalGenerator(); var clock = cpu.Clock.CreateConnection(gen.Output); gen.SquareWave(1, toCycle, toLevel); return(clock); }
public AutoCompleteInstructionPart(CpuZ80 cpu, MachineCycleNames activeMachineCycle, CycleNames lastCycle) : base(cpu, activeMachineCycle) { _lastCycle = lastCycle; }
public AutoCompleteInstructionPart(Die die, MachineCycleNames activeMachineCycle, CycleNames lastCycle) : base(die, activeMachineCycle) { _lastCycle = lastCycle; }