private void Input_OnChanged(object sender, DigitalLevelChangedEventArgs e) { if (IsEnabled) { WriteOutputFor((DigitalSignalConsumer)sender); } }
private void Clock_OnChanged(object sender, DigitalLevelChangedEventArgs e) { if (IsRunning) { SampleInputs(); } }
private void OutputEnable_OnChanged(object sender, DigitalLevelChangedEventArgs e) { if (IsEnabled) { WriteAllOutputs(); } else { DisableAllOutputs(); } }
private void Clock_OnChanged(object sender, DigitalLevelChangedEventArgs e) { _cycles.OnClock(e.Level); _interruptManager.OnClock(e.Level); _state.OnClock(e.Level); if (_state.IsComplete) { SwitchToNextState(); } }
private void PortEnable_OnChanged(object sender, DigitalLevelChangedEventArgs e) { if (e.Level != DigitalLevel.PosEdge) { return; } if (!Input.IsConnected) { return; } if (_dataStream == null) { _dataStream = new BusDataInputStream(Input.Bus); } _dataStream.Sample(); }
private void Output_OnChanged(object sender, DigitalLevelChangedEventArgs e) { switch (e.Level) { case DigitalLevel.Low: _lowCount++; break; case DigitalLevel.PosEdge: _posEdgeCount++; break; case DigitalLevel.High: _highCount++; break; case DigitalLevel.NegEdge: _negEdgeCount++; break; } }
private void PortEnable_OnChanged(object sender, DigitalLevelChangedEventArgs e) { if (e.Level != DigitalLevel.Low) { Output.IsEnabled = false; return; } if (!Output.IsConnected) { return; } var data = DataBuffer.Read(); if (data != null) { Output.IsEnabled = true; Output.Write(data); } // TODO: else write floating? }
private void NonMaskableInterupt_OnChanged(object sender, DigitalLevelChangedEventArgs e) { DetermineNMI(e.Level); }
private void Input_OnChanged(object sender, DigitalLevelChangedEventArgs e) { Output.Write(Invert(e.Level)); }
private void Input_OnChanged(object sender, DigitalLevelChangedEventArgs e) { OnInputChanged((DigitalSignalConsumer)sender, e.Provider); }
private void WriteEnable_OnChanged(object sender, DigitalLevelChangedEventArgs e) { OnStateChanged(); }