IMPLEMENTATION MODULE TermOut;

(* Author:         Andrew Trevorrow
   Implementation: University of Hamburg Modula-2 under VAX/VMS version 4
   Date Started:   August, 1986

   Description:
   Implements terminal output routines used by PSDVI.

   Revised:
   June--August, 1988 (while at Aston University)
 - No longer use buffering/SYS$ASSIGN/SYS$QIOW since it did not allow the
   output to be captured in a file (which is pretty important if users want
   to run PSPRINT in a batch job and still see any error messages!).
*)

FROM VMS IMPORT
   SYS$EXIT;

IMPORT InOut;

(******************************************************************************)

PROCEDURE Write (ch : CHAR);

BEGIN
InOut.Write(ch);
END Write;

(******************************************************************************)

PROCEDURE WriteString (s: ARRAY OF CHAR);

BEGIN
InOut.WriteString(s);
END WriteString;

(******************************************************************************)

PROCEDURE WriteInt (i : INTEGER);

BEGIN
InOut.WriteInt(i,1);
END WriteInt;

(******************************************************************************)

PROCEDURE WriteCard (c : CARDINAL);

BEGIN
InOut.WriteCard(c,1);
END WriteCard;

(******************************************************************************)

PROCEDURE WriteLn;

BEGIN
InOut.WriteLn;
END WriteLn;

(******************************************************************************)

PROCEDURE Halt (status : CARDINAL);

VAR result  : CARDINAL;

BEGIN
(* SYSDEP: set high order bit so that no CLI message will be seen *)
status := status + 10000000H;
result := SYS$EXIT(status);
END Halt;

(******************************************************************************)

BEGIN
END TermOut.
