public PinStates Step() { // reset the pin states so nothing is from previous state PinStates = new PinStates(); PinStates.ClockOutput = _clock.Cycle(); PinStates.StepperOutput = _stepper.Step(PinStates.ClockOutput.Clk); Update3X8(); UpdateStep1Pins(); UpdateStep2Pins(); UpdateStep3Pins(); UpdateStep4Pins(); UpdateStep5Pins(); UpdateStep6Pins(); UpdateGeneralPurposeRegisters(PinStates.RegA.Enable, PinStates.RegB.Enable, PinStates.RegB.Set); UpdateIoAllSteps(); return(PinStates); }