IO.DEF 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * IO.DEF - Modula-2 screen input/output *
  5. * *
  6. * COPYRIGHT (C) 1987..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(o_a_copy => off) *)
  11. (*%F _fdata *)
  12. (*# call(seg_name => null) *)
  13. (*# data(seg_name => null) *)
  14. (*%E *)
  15. (*# module(implementation=>off) *)
  16. DEFINITION MODULE IO;
  17. CONST
  18. MaxRdLength = 256;
  19. TYPE
  20. WrStrType = PROCEDURE ( ARRAY OF CHAR );
  21. RdStrType = PROCEDURE ( VAR ARRAY OF CHAR );
  22. CHARSET = SET OF CHAR;
  23. PROCEDURE WrChar ( V: CHAR );
  24. PROCEDURE WrBool ( V: BOOLEAN ; Length: INTEGER );
  25. PROCEDURE WrShtInt ( V: SHORTINT ; Length: INTEGER );
  26. PROCEDURE WrInt ( V: INTEGER ; Length: INTEGER );
  27. PROCEDURE WrLngInt ( V: LONGINT ; Length: INTEGER );
  28. PROCEDURE WrShtCard( V: SHORTCARD; Length: INTEGER );
  29. PROCEDURE WrCard ( V: CARDINAL ; Length: INTEGER );
  30. PROCEDURE WrLngCard( V: LONGCARD ; Length: INTEGER );
  31. PROCEDURE WrShtHex ( V: SHORTCARD; Length: INTEGER );
  32. PROCEDURE WrHex ( V: CARDINAL ; Length: INTEGER );
  33. PROCEDURE WrLngHex ( V: LONGCARD ; Length: INTEGER );
  34. PROCEDURE WrReal ( V: REAL ; Precision: CARDINAL; Length: INTEGER);
  35. PROCEDURE WrLngReal ( V: LONGREAL ; Precision: CARDINAL; Length: INTEGER);
  36. PROCEDURE WrFixReal ( V: REAL ; Precision: CARDINAL; Length: INTEGER);
  37. PROCEDURE WrFixLngReal( V: LONGREAL ; Precision: CARDINAL; Length: INTEGER);
  38. PROCEDURE WrCharRep( V: CHAR ; Count: CARDINAL );
  39. PROCEDURE WrStr ( S: ARRAY OF CHAR );
  40. (*# save,
  41. call(o_a_copy => on) *)
  42. PROCEDURE WrStrAdj ( S: ARRAY OF CHAR; Length: INTEGER );
  43. (*# restore *)
  44. PROCEDURE WrLn;
  45. PROCEDURE RdChar() : CHAR;
  46. PROCEDURE RdBool() : BOOLEAN;
  47. PROCEDURE RdShtInt() : SHORTINT;
  48. PROCEDURE RdInt() : INTEGER;
  49. PROCEDURE RdLngInt() : LONGINT;
  50. PROCEDURE RdShtCard() : SHORTCARD;
  51. PROCEDURE RdCard() : CARDINAL;
  52. PROCEDURE RdLngCard() : LONGCARD;
  53. PROCEDURE RdShtHex() : SHORTCARD;
  54. PROCEDURE RdHex() : CARDINAL;
  55. PROCEDURE RdLngHex() : LONGCARD;
  56. PROCEDURE RdReal() : REAL;
  57. PROCEDURE RdLngReal() : LONGREAL;
  58. PROCEDURE RdStr(VAR S: ARRAY OF CHAR);
  59. PROCEDURE RdItem(VAR V: ARRAY OF CHAR);
  60. PROCEDURE RdLn;
  61. PROCEDURE EndOfRd(Skip: BOOLEAN) : BOOLEAN;
  62. PROCEDURE KeyPressed() : BOOLEAN;
  63. PROCEDURE RdKey() : CHAR;
  64. CONST RdCharDirect ::= RdKey;
  65. PROCEDURE RedirectInput (FileName: ARRAY OF CHAR);
  66. PROCEDURE RedirectOutput(FileName: ARRAY OF CHAR);
  67. PROCEDURE ThreadOK(): BOOLEAN;
  68. VAR RdLnOnWr : BOOLEAN; (* Clear buffered input after write *)
  69. VAR Prompt : BOOLEAN; (* Prompt ('?') on read from empty line *)
  70. VAR InputRedirected : BOOLEAN;
  71. VAR OutputRedirected: BOOLEAN;
  72. VAR WrStrRedirect : WrStrType;
  73. VAR RdStrRedirect : RdStrType;
  74. VAR Separators : CHARSET;
  75. VAR OK : BOOLEAN;
  76. VAR ChopOff : BOOLEAN;
  77. VAR Eng : BOOLEAN; (* Engineering notation *)
  78. VAR PrefixChar : CHAR;
  79. VAR SuffixChar : CHAR;
  80. END IO.