@database HYPER:Modula-2/Terminal
@node Main "HYPER:Modula-2/Terminal"

Prozeduren

   @{" BusyRead " link Modul 16}                    @{" Flush " link Modul 14}                       @{" Format " link Modul 26}
   @{" FormatNr " link Modul 36}                    @{" FormatS " link Modul 28}                     @{" Read " link Modul 17}
   @{" ReadLn " link Modul 20}                      @{" Write " link Modul 22}                       @{" WriteHex " link Modul 40}
   @{" WriteInt " link Modul 39}                    @{" WriteLn " link Modul 23}                     @{" WriteString " link Modul 24}


Variablen

   @{" waitCloseGadget " link Modul 11}          

@endnode
@node Modul "HYPER:Modula-2/Terminal.def.guide"
DEFINITION MODULE Terminal;
(*$ LargeVars:=FALSE LongAlign:=FALSE NameChk:=FALSE *)

(*
 * 13.11.90/bp
 * Neue Prozedur Flush
 * Sicherheitsabfragen auf input,ouput#NIL eingebaut.
 *)

FROM SYSTEM IMPORT ADDRESS;

VAR waitCloseGadget: BOOLEAN;

(* Gibt den Puffer aus *)
PROCEDURE @{" Flush " link HYPER:Autodocs/dos/Flush() };

PROCEDURE BusyRead(VAR ch: CHAR);
PROCEDURE @{" Read " link HYPER:Autodocs/dos/Read() }(VAR ch: CHAR);

(* ACHTUNG: setzt letztes Zeichen IMMER auf 0C !!!!!! *)
PROCEDURE ReadLn(VAR st:ARRAY OF CHAR; VAR len:INTEGER);

PROCEDURE @{" Write " link HYPER:Autodocs/dos/Write() }(ch: CHAR);
PROCEDURE WriteLn;
PROCEDURE WriteString(string: ARRAY OF CHAR);

PROCEDURE @{" Format " link HYPER:Autodocs/dos/Format() }(str:ARRAY OF CHAR; dats:ADDRESS);

PROCEDURE FormatS(str:ARRAY OF CHAR;
                  VAR innerStr:ARRAY OF CHAR);

(*
 * Spezielles "Format" für eine Zahl:
 * Option "l" muß immer angegeben werden, da LONGINT!
 * z.B. ('count: %-5ld',4*5+x-y)
 *)
PROCEDURE FormatNr(str:ARRAY OF CHAR; nr:LONGINT);

(* n<0: linksbuendig *)
PROCEDURE WriteInt(x:LONGINT; n:INTEGER);
PROCEDURE WriteHex(x:LONGINT; n:INTEGER);

END Terminal.

@endnode
