(* Copyright (C) 1987 Jensen & Partners International *) 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 WrCharRep( V: CHAR ; Count: CARDINAL ); PROCEDURE WrStr ( S: ARRAY OF CHAR ); PROCEDURE WrStrAdj ( S: ARRAY OF CHAR; Length: INTEGER ); 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); VAR RdLnOnWr : BOOLEAN; (* Clear buffered input after write *) VAR Prompt : BOOLEAN; (* Prompt ('?') on read from empty line *) VAR WrStrRedirect : WrStrType; VAR RdStrRedirect : RdStrType; VAR Separators : CHARSET; VAR OK : BOOLEAN; VAR ChopOff : BOOLEAN; VAR Eng : BOOLEAN; (* Engineering notation *) END IO.