TERMINAL.DEF 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. (* ========================================================= *)
  2. (* Preliminary library module for Gardens Point Modula *)
  3. (* ========================================================= *)
  4. FOREIGN DEFINITION MODULE Terminal;
  5. IMPORT IMPLEMENTATION FROM "terminal.obj";
  6. (* this is the bare-bones version for testing *)
  7. (* output always goes to the UNIX std output *)
  8. (* input always comes from the UNIX std input *)
  9. PROCEDURE WriteString(str : ARRAY OF CHAR);
  10. PROCEDURE WriteLn;
  11. PROCEDURE WriteCard(card : CARDINAL;
  12. width : CARDINAL);
  13. PROCEDURE Write(ch : CHAR);
  14. PROCEDURE Read(VAR ch : CHAR);
  15. PROCEDURE EofIn() : BOOLEAN; (* returns "input ended" *)
  16. PROCEDURE EofOut(); (* closes stdout stream *)
  17. PROCEDURE GetKeyStroke(VAR ch : CHAR);
  18. (* gets keystroke without waiting for <EOL> *)
  19. (* does not echo the character, there is no *)
  20. (* erase and kill processing. Restores tty *)
  21. (* mode after reading each character in *)
  22. PROCEDURE WasKeyPressed(VAR wasKey : BOOLEAN; VAR ch : CHAR);
  23. (* Pre: TRUE *)
  24. (* Post: wasKey AND ch = key *)
  25. (* OR *)
  26. (* NOT wasKey *)
  27. END Terminal.