-- PDTTYImpl.mesa -- Copyright (C) 1984, Xerox Corporation. All rights reserved. -- Michael Plass, September 20, 1984 10:02:29 am PDT 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]; [] _ 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.