(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * IO.DEF - Modula-2 screen input/output * * * * COPYRIGHT (C) 1987..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# call(o_a_copy => off) *) (*%F _fdata *) (*# call(seg_name => null) *) (*# data(seg_name => null) *) (*%E *) (*# module(implementation=>off) *) DEFINITION MODULE IO; CONST MaxRdLength = 256; TYPE WrStrType = PROCEDURE ( ARRAY OF CHAR ); RdStrType = PROCEDURE ( VAR ARRAY OF CHAR ); CHARSET = SET OF CHAR; PROCEDURE WrChar ( V: CHAR ); PROCEDURE WrBool ( V: BOOLEAN ; Length: INTEGER ); PROCEDURE WrShtInt ( V: SHORTINT ; Length: INTEGER ); PROCEDURE WrInt ( V: INTEGER ; Length: INTEGER ); PROCEDURE WrLngInt ( V: LONGINT ; Length: INTEGER ); PROCEDURE WrShtCard( V: SHORTCARD; Length: INTEGER ); PROCEDURE WrCard ( V: CARDINAL ; Length: INTEGER ); PROCEDURE WrLngCard( V: LONGCARD ; Length: INTEGER ); PROCEDURE WrShtHex ( V: SHORTCARD; Length: INTEGER ); PROCEDURE WrHex ( V: CARDINAL ; Length: INTEGER ); PROCEDURE WrLngHex ( V: LONGCARD ; Length: INTEGER ); PROCEDURE WrReal ( V: REAL ; Precision: CARDINAL; Length: INTEGER); PROCEDURE WrLngReal ( V: LONGREAL ; Precision: CARDINAL; Length: INTEGER); PROCEDURE WrFixReal ( V: REAL ; Precision: CARDINAL; Length: INTEGER); PROCEDURE WrFixLngReal( V: LONGREAL ; Precision: CARDINAL; Length: INTEGER); PROCEDURE WrCharRep( V: CHAR ; Count: CARDINAL ); PROCEDURE WrStr ( S: ARRAY OF CHAR ); (*# save, call(o_a_copy => on) *) PROCEDURE WrStrAdj ( S: ARRAY OF CHAR; Length: INTEGER ); (*# restore *) PROCEDURE WrLn; PROCEDURE RdChar() : CHAR; PROCEDURE RdBool() : BOOLEAN; PROCEDURE RdShtInt() : SHORTINT; PROCEDURE RdInt() : INTEGER; PROCEDURE RdLngInt() : LONGINT; PROCEDURE RdShtCard() : SHORTCARD; PROCEDURE RdCard() : CARDINAL; PROCEDURE RdLngCard() : LONGCARD; PROCEDURE RdShtHex() : SHORTCARD; PROCEDURE RdHex() : CARDINAL; PROCEDURE RdLngHex() : LONGCARD; PROCEDURE RdReal() : REAL; PROCEDURE RdLngReal() : LONGREAL; PROCEDURE RdStr(VAR S: ARRAY OF CHAR); PROCEDURE RdItem(VAR V: ARRAY OF CHAR); PROCEDURE RdLn; PROCEDURE EndOfRd(Skip: BOOLEAN) : BOOLEAN; PROCEDURE KeyPressed() : BOOLEAN; PROCEDURE RdKey() : CHAR; CONST RdCharDirect ::= RdKey; PROCEDURE RedirectInput (FileName: ARRAY OF CHAR); PROCEDURE RedirectOutput(FileName: ARRAY OF CHAR); PROCEDURE ThreadOK(): BOOLEAN; VAR RdLnOnWr : BOOLEAN; (* Clear buffered input after write *) VAR Prompt : BOOLEAN; (* Prompt ('?') on read from empty line *) VAR InputRedirected : BOOLEAN; VAR OutputRedirected: BOOLEAN; VAR WrStrRedirect : WrStrType; VAR RdStrRedirect : RdStrType; VAR Separators : CHARSET; VAR OK : BOOLEAN; VAR ChopOff : BOOLEAN; VAR Eng : BOOLEAN; (* Engineering notation *) VAR PrefixChar : CHAR; VAR SuffixChar : CHAR; END IO.