(* * =========== macro processed output from MPP ========== * * input file : terminal.dpp * time stamp : 1996 Nov 07 15:03:41 * * output file : terminal.def * created at : 2003 Jan 16 12:04:38 * * options ... : -Dlinux * * ======================================================= *) (****************************************************************) (* *) (* Gardens Point Modula-2 Library Definition *) (* *) (* *) (* (c) Copyright 1996 Faculty of Information Technology *) (* Queensland University of Technology *) (* *) (* Permission is granted to use, copy and change this *) (* program as long as the copyright message is left intact *) (* *) (****************************************************************) FOREIGN DEFINITION MODULE Terminal; IMPORT IMPLEMENTATION FROM "terminal.o"; (* output always goes to the UNIX std output *) (* input always comes from the UNIX std input *) PROCEDURE WriteString(str : ARRAY OF CHAR); PROCEDURE WriteLn; PROCEDURE WriteCard(card : CARDINAL; width : CARDINAL); PROCEDURE Write(ch : CHAR); PROCEDURE Read(VAR ch : CHAR); PROCEDURE EofIn() : BOOLEAN; (* returns "input ended" *) PROCEDURE EofOut(); (* closes stdout stream *) PROCEDURE GetKeyStroke(VAR ch : CHAR); (* gets keystroke without waiting for <EOL> *) (* does not echo the character, there is no *) (* erase and kill processing. Restores tty *) (* mode after reading each character in *) PROCEDURE WasKeyPressed(VAR ok:BOOLEAN;VAR c:CHAR); (* returns ok=TRUE if a key was pressed and *) (* c is the character pressed. If no key *) (* has been pressed then ok=FALSE is returned*) (* and c has no valid or meaningful value. *) PROCEDURE Echo (); (* Enable echo for all terminal channels. * Echoing is on by default, and can be controlled by use of * TextIO.Read (echo) cf IOChan.Look/Skip (no echo). * However NoEcho truns off echoing globally, and this procedure * allows it to be turned back on. *) PROCEDURE NoEcho (); (* Disable echoing for all terminal channels. * LookKey disables echo when it checks for (and reads) a character; * however a typical LookKey loop will often be outside LookKey when a key is * pressed, and default operatijg system echo will occur. * This procedure allows echoing to be globally suppressed, so that LookKey * echo is entirely under user control. *) END Terminal.