private void WriteTerminal() { BlockingProcess wakingProcess; while ((wakingProcess = DeviceWriteQueue.Dequeue(DeviceId.Terminal)) != null) { var process = wakingProcess.Process; (OutputMethod ?? Console.WriteLine)(wakingProcess.Argument); ReadyQueue.Enqueue(process); } }
public void Output(DeviceId deviceId, uint value) { if (Enum.IsDefined(typeof(DeviceId), deviceId)) { DeviceWriteQueue.Enqueue(deviceId, CurrentProcess, OpCodeFlag.None, value); CurrentProcess.Zf = false; CurrentProcess = null; } else { CurrentProcess.Zf = true; } }