コード例 #1
0
        public sealed override void UpdateSettings()
        {
            var tickCount = DeviceSettings.GetTickCount(DeviceSettings.TeletypeInitialization);

            mInputBuffer  = Queue.Synchronized(new Queue());
            mOutputBuffer = Queue.Synchronized(new Queue());

            DeviceStep nextStep = new NoOpStep(tickCount, initializationDescription);

            FirstInputDeviceStep = nextStep;
            nextStep.NextStep    = new ReadLineStep(mInputBuffer);
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new WriteToMemoryStep(false, recordWordCount)
            {
                NextStep = null
            };

            nextStep = new NoOpStep(tickCount, initializationDescription);
            FirstOutputDeviceStep = nextStep;
            nextStep.NextStep     = new ReadFromMemoryStep(false, recordWordCount);
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new WriteLineStep(mOutputBuffer)
            {
                NextStep = null
            };

            FirstIocDeviceStep = null;
        }
コード例 #2
0
ファイル: PaperTapeDevice.cs プロジェクト: arlm/MixEmul
        public sealed override void UpdateSettings()
        {
            var tickCount = DeviceSettings.GetTickCount(DeviceSettings.PaperTapeInitialization);

            DeviceStep nextStep = new NoOpStep(tickCount, initializationDescription);

            FirstInputDeviceStep = nextStep;
            nextStep.NextStep    = new OpenStreamStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new TextReadStep(recordWordCount);
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new CloseStreamStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new WriteToMemoryStep(false, recordWordCount)
            {
                NextStep = null
            };

            FirstOutputDeviceStep = null;

            nextStep           = new NoOpStep(tickCount, initializationDescription);
            FirstIocDeviceStep = nextStep;
            nextStep.NextStep  = new RewindStep
            {
                NextStep = null
            };
        }
コード例 #3
0
ファイル: PrinterDevice.cs プロジェクト: arlm/MixEmul
        public sealed override void UpdateSettings()
        {
            var tickCount = DeviceSettings.GetTickCount(DeviceSettings.PrinterInitialization);

            FirstInputDeviceStep = null;

            DeviceStep nextStep = new NoOpStep(tickCount, initializationDescription);

            FirstOutputDeviceStep = nextStep;
            nextStep.NextStep     = new ReadFromMemoryStep(false, recordWordCount);
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new OpenStreamStep();
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new TextWriteStep(recordWordCount);
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new CloseStreamStep
            {
                NextStep = null
            };

            nextStep           = new NoOpStep(tickCount, initializationDescription);
            FirstIocDeviceStep = nextStep;
            nextStep.NextStep  = new OpenStreamStep();
            nextStep           = nextStep.NextStep;
            nextStep.NextStep  = new PageForwardStep();
            nextStep           = nextStep.NextStep;
            nextStep.NextStep  = new CloseStreamStep
            {
                NextStep = null
            };
        }
コード例 #4
0
ファイル: CardReaderDevice.cs プロジェクト: arlm/MixEmul
        public sealed override void UpdateSettings()
        {
            DeviceStep nextStep = new NoOpStep(DeviceSettings.GetTickCount(DeviceSettings.CardReaderInitialization), initializationDescription);

            FirstInputDeviceStep = nextStep;
            nextStep.NextStep    = new OpenStreamStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new TextReadStep(recordWordCount);
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new CloseStreamStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new WriteToMemoryStep(false, recordWordCount)
            {
                NextStep = null
            };

            FirstOutputDeviceStep = null;
            FirstIocDeviceStep    = null;
        }
コード例 #5
0
        public sealed override void UpdateSettings()
        {
            var tickCount = DeviceSettings.GetTickCount(DeviceSettings.DiskInitialization);

            DeviceStep nextStep = new NoOpStep(tickCount, initializationDescription);

            FirstInputDeviceStep = nextStep;
            nextStep.NextStep    = new OpenStreamStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new SeekStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new BinaryReadStep(WordsPerSector);
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new CloseStreamStep();
            nextStep             = nextStep.NextStep;
            nextStep.NextStep    = new WriteToMemoryStep(true, WordsPerSector)
            {
                NextStep = null
            };

            nextStep = new NoOpStep(tickCount, initializationDescription);
            FirstOutputDeviceStep = nextStep;
            nextStep.NextStep     = new ReadFromMemoryStep(true, WordsPerSector);
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new OpenStreamStep();
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new SeekStep();
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new BinaryWriteStep(WordsPerSector);
            nextStep          = nextStep.NextStep;
            nextStep.NextStep = new CloseStreamStep
            {
                NextStep = null
            };

            nextStep           = new NoOpStep(tickCount, initializationDescription);
            FirstIocDeviceStep = nextStep;
            nextStep.NextStep  = new SeekStep
            {
                NextStep = null
            };
        }