-- PDTTYImpl.mesa -- Copyright (C) 1984, Xerox Corporation. All rights reserved. -- Michael Plass, September 20, 1984 10:02:29 am PDT -- Tim Diebert, 5-Sep-86 16:31:53 DIRECTORY PDQueue, PDUser, Process, Stream, TTY; PDTTYImpl: PROGRAM IMPORTS PDQueue, PDUser, Process, Stream, TTY = BEGIN ttyStream: Stream.Handle ¬ NIL; WriteLine: PROC [line: LONG STRING] = { ttyStream.PutString[line]; ttyStream.PutChar['\n]; }; KeyWatcher: PROC = { DO [] ¬ ttyStream.GetChar[]; [] ¬ PDQueue.SetLogState[FALSE]; PDUser.TalkWithUser[ttyStream, TRUE]; [] ¬ PDQueue.SetLogState[TRUE]; ENDLOOP; }; Init: PROCEDURE = BEGIN name: STRING = "Peach.log"L; ttyImpl, backing: Stream.Handle; [ttyImpl, backing] ¬ TTY.CreateTTYInstance[name, NIL, TTY.nullHandle]; ttyStream ¬ ttyImpl; PDQueue.RegisterTTY[WriteLine]; [] ¬ PDQueue.SetLogState[TRUE]; Process.Detach[FORK KeyWatcher[]]; END; Init[]; END.