<> <> <> DIRECTORY Ascii USING [CR], Basics USING [UnsafeBlock], BasicTime USING [GMT], IO USING [STREAM], Rope USING [ROPE]; TTY: CEDAR DEFINITIONS = BEGIN <> Handle: TYPE = REF Object; Object: TYPE; nullHandle: Handle = NIL; EchoClass: TYPE = {none, plain, stars}; DateFormat: TYPE = {dateOnly, noSeconds, dateTime, full, mailDate}; NetFormat: TYPE = {octal, hex, productSoftware}; NumberFormat: TYPE = RECORD [ base: [2..36] _ 10, zerofill: BOOLEAN _ FALSE, unsigned: BOOLEAN _ TRUE, columns: [0..255] _ 0]; CharStatus: TYPE = {ok, stop, ignore}; <> LineOverflow: SIGNAL [s: REF TEXT] RETURNS [ns: REF TEXT]; Rubout: SIGNAL; NoBackingFile: ERROR; -- raised by BackingStream OutOfInstances: ERROR; -- raised by Create NoDefaultInstance: ERROR; -- raised by Create <> Create: PROCEDURE [name: Rope.ROPE _ NIL, backingStream, ttyImpl: IO.STREAM _ NIL] RETURNS [h: Handle]; Destroy: PROCEDURE [h: Handle, deleteBackingFile: BOOLEAN _ FALSE]; <> UserAbort: PROCEDURE [h: Handle] RETURNS [yes: BOOLEAN]; ResetUserAbort: PROCEDURE [h: Handle]; SetUserAbort: PROCEDURE [h: Handle]; <> CreateTTYInstance: PROCEDURE [name: Rope.ROPE, backingStream: IO.STREAM, tty: Handle] RETURNS [ttyImpl, backing: IO.STREAM]; <> BackingStream: PROCEDURE [h: Handle] RETURNS [stream: IO.STREAM]; BlinkDisplay: PROCEDURE [h: Handle]; CharsAvailable: PROCEDURE [h: Handle] RETURNS [number: CARDINAL]; GetEcho: PROCEDURE [h: Handle] RETURNS [old: EchoClass]; NewLine: PROCEDURE [h: Handle] RETURNS [yes: BOOLEAN]; PopAlternateInputStreams: PROCEDURE [h: Handle, howMany: CARDINAL _ 1]; PushAlternateInputStream: PROCEDURE [h: Handle, stream: IO.STREAM]; PutBackChar: PROCEDURE [h: Handle, c: CHARACTER]; SetBackingSize: PROCEDURE [h: Handle, size: LONG CARDINAL]; SetEcho: PROCEDURE [h: Handle, new: EchoClass] RETURNS [old: EchoClass]; <> GetChar: PROCEDURE [h: Handle] RETURNS [c: CHARACTER]; PutChar: PROCEDURE [h: Handle, c: CHARACTER]; PutCR: PROCEDURE [h: Handle] = INLINE {PutChar[h, Ascii.CR]}; PutBlank, PutBlanks: PROCEDURE [h: Handle, n: CARDINAL _ 1]; RemoveCharacter, RemoveCharacters: PROCEDURE [h: Handle, n: CARDINAL _ 1]; GetString: PROCEDURE [h: Handle, s: REF TEXT, t: PROCEDURE [c: CHARACTER] RETURNS [status: CharStatus]]; GetEditedString: PROCEDURE [h: Handle, s: REF TEXT, t: PROCEDURE [c: CHARACTER] RETURNS [status: CharStatus]] RETURNS [c: CHARACTER]; PutString, PutLongString, PutText: PROCEDURE [h: Handle, s: REF TEXT]; PutDate: PROCEDURE [h: Handle, gmt: BasicTime.GMT, format: DateFormat _ noSeconds]; GetID, GetLine, GetPassword: PROCEDURE [h: Handle, s: REF TEXT]; PutLine: PROCEDURE [h: Handle, s: REF TEXT]; GetNumber: PROCEDURE [h: Handle, default: UNSPECIFIED, radix: CARDINAL, showDefault: BOOLEAN _ TRUE] RETURNS [n: UNSPECIFIED]; GetLongNumber: PROCEDURE [h: Handle, default: LONG UNSPECIFIED, radix: CARDINAL, showDefault: BOOLEAN _ TRUE] RETURNS [n: LONG UNSPECIFIED]; PutNumber: PROCEDURE [h: Handle, n: UNSPECIFIED, format: NumberFormat]; PutLongNumber: PROCEDURE [h: Handle, n: LONG UNSPECIFIED, format: NumberFormat]; GetOctal: PROCEDURE [h: Handle] RETURNS [n: UNSPECIFIED]; GetLongOctal: PROCEDURE [h: Handle] RETURNS [n: LONG UNSPECIFIED]; PutOctal: PROCEDURE [h: Handle, n: UNSPECIFIED]; PutLongOctal: PROCEDURE [h: Handle, n: LONG UNSPECIFIED]; GetDecimal: PROCEDURE [h: Handle] RETURNS [n: INTEGER]; GetLongDecimal: PROCEDURE [h: Handle] RETURNS [n: LONG INTEGER]; PutDecimal: PROCEDURE [h: Handle, n: INTEGER]; PutLongDecimal: PROCEDURE [h: Handle, n: LONG INTEGER]; PutBlock: PROCEDURE [h: Handle, block: Basics.UnsafeBlock]; Narrow: PROC [ra: REF ANY] RETURNS [Handle]; <> END....