MODULE Out; (** AUTHOR "FOF"; PURPOSE "Simple console output, for educational purposes"; *) (* threadsafe as far as commands don't share the same context *) IMPORT Commands, Streams; PROCEDURE GetWriter*(): Streams.Writer; BEGIN RETURN Commands.GetContext().out; END GetWriter; PROCEDURE String*(CONST s: ARRAY OF CHAR); BEGIN Commands.GetContext().out.String(s); END String; PROCEDURE Char*(c: CHAR); BEGIN Commands.GetContext().out.Char(c); END Char; PROCEDURE Ln*(); BEGIN Commands.GetContext().out.Ln(); END Ln; PROCEDURE Set*(s: SET); BEGIN Commands.GetContext().out.Set(s); END Set; PROCEDURE Int*(i: HUGEINT; n = 1: LONGINT); BEGIN Commands.GetContext().out.Int(i,n); END Int; PROCEDURE Hex*(i: HUGEINT; n = -16: LONGINT); BEGIN Commands.GetContext().out.Hex(i,n); END Hex; PROCEDURE Address*(a: ADDRESS); BEGIN Commands.GetContext().out.Address(a); END Address; PROCEDURE Float*(x: LONGREAL; n = 4, f= 3, d=0: LONGINT); BEGIN Commands.GetContext().out.FloatFix(x,n,f,d); END Float; END Out. SystemTools.Free Out ~ Out.Hello