DEFINITION MODULE Terminal; TYPE ReadProcedure = PROCEDURE (VAR CHAR); WriteProcedure = PROCEDURE (CHAR); ErrorProcedure = PROCEDURE (ARRAY OF CHAR); VAR ctrlc: BOOLEAN; echo: BOOLEAN; termCH: CHAR; RawRead: ReadProcedure; BusyRead: ReadProcedure; (* PROCEDURE BusyRead (VAR ch: CHAR); *) Write: WriteProcedure; (* PROCEDURE Write (ch: CHAR); *) WriteError: ErrorProcedure; (* PROCEDURE WriteError (s: ARRAY OF CHAR); *) PROCEDURE Read (VAR ch: CHAR); (* Aufruf von "RawRead" mit Bercksichtigung von "ctrlc", "echo" und "ReadAgain *) PROCEDURE ReadString (VAR str: ARRAY OF CHAR); PROCEDURE ReadAgain; PROCEDURE WriteString (string: ARRAY OF CHAR); PROCEDURE WriteLn; PROCEDURE AssignRead (rp: ReadProcedure; VAR done: BOOLEAN); PROCEDURE AssignBusyRead (rp: ReadProcedure; VAR done: BOOLEAN); PROCEDURE AssignWrite (wp: WriteProcedure; VAR done: BOOLEAN); PROCEDURE StdRead (VAR ch: CHAR); PROCEDURE StdBusyRead (VAR ch: CHAR); PROCEDURE StdWrite (ch: CHAR); END Terminal.