public void Step() { try { RefreshProps(); double cpuHertz = 4.77 * 1000000; _sw.Restart(); double clocks = _cpu.ProcessSingleInstruction(Debug); _sw.Stop(); double us = (clocks / cpuHertz) * 1000000; UpdateSpeed(us); _timer.Step(us); DrawBuffer = _video.Step(us); _masterPic.Step(); _slavePic.Step(); _masterFloppy.Step(us); _slaveFloppy.Step(us); RefreshProps(); var breakpoint = Breakpoints.FirstOrDefault(b => b.Address == GetCurrentAddress()); if (breakpoint != null) { Status = SystemStatus.Paused; if (breakpoint.IsInternal) { RemoveBreakpoint(breakpoint.Address); } BreakpointHit?.Invoke(); RefreshProps(true); } } catch (InvalidOperationException e) { Console.WriteLine(e.Message); Console.WriteLine("SYSTEM PAUSED"); Status = SystemStatus.Paused; BreakpointHit?.Invoke(); RefreshProps(true); } }