dos_compilers/Logitech Modula-2 v1/TERMINAL.DEF
2024-06-30 15:16:10 -07:00

70 lines
1.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

DEFINITION MODULE Terminal;
(*
Terminal Input/Output
Derived from the Lilith Modula-2 system developed by the
group of Prof. N. Wirth at ETH Zurich, Switzerland.
*)
EXPORT QUALIFIED Read, KeyPressed, ReadAgain, ReadString,
Write, WriteString, WriteLn;
PROCEDURE Read (VAR ch: CHAR);
(*- Read a character from the terminal.
out: ch character that was read.
The character is not echoed.
Code ASCII.cr from keyboard is transformed into System.EOL.
*)
PROCEDURE KeyPressed (): BOOLEAN;
(*- Test if a character is available to Read from terminal.
*)
PROCEDURE ReadAgain;
(*- Undo the last read: Make the last character be re-read.
*)
PROCEDURE ReadString(VAR string: ARRAY OF CHAR);
(*- Read a line from the terminal.
out: string receives the text of the line
Characters are accepted (and echoed) from the keyboard until <cr>
is entered. The <cr> is not returned or echoed.
<del> and <bs> can be used for editing.
Tabs may be entered, but are expanded into blanks immediately.
No other control characters may be entered.
*)
PROCEDURE Write (ch: CHAR);
(*- Write a character to the terminal.
in: ch character to be written.
If terminal output has not been redirected, the following
interpretations are made:
System.EOL (36C) = go to beginning of next line
ASCII.ff (14C) = clear screen and set cursor home
ASCII.del (177C) = erase the last character on the left
ASCII.bs (10C) = move 1 character to the left
ASCII.cr (15C) = go to beginning of current line
ASCII.lf (12C) = move 1 line down, same column
*)
PROCEDURE WriteString (string: ARRAY OF CHAR);
(*- Write a string to the terminal.
in: string string to be written.
The string can be terminated by a NUL (0C).
*)
PROCEDURE WriteLn;
(*- Write a new-line to the terminal.
[Equivalent to Write(EOL)]
*)
END Terminal.