IMPLEMENTATION MODULE StrIO; (* Binds the runtime shim directly. *) PROCEDURE m2write (VAR s : ARRAY OF CHAR); EXTERNAL; PROCEDURE m2writeln; EXTERNAL; PROCEDURE m2writechar (c : CHAR); EXTERNAL; PROCEDURE m2writeint (n : INTEGER); EXTERNAL; PROCEDURE m2readchar () : CHAR; EXTERNAL; PROCEDURE m2readint () : INTEGER; EXTERNAL; PROCEDURE m2readline (VAR s : ARRAY OF CHAR; max : CARDINAL) : CARDINAL; EXTERNAL; PROCEDURE WriteString (s : ARRAY OF CHAR); BEGIN m2write(s) END WriteString; PROCEDURE WriteLn; BEGIN m2writeln END WriteLn; PROCEDURE WriteChar (c : CHAR); BEGIN m2writechar(c) END WriteChar; PROCEDURE WriteInt (n : INTEGER); BEGIN m2writeint(n) END WriteInt; PROCEDURE WriteCard (n : CARDINAL); BEGIN m2writeint(n) END WriteCard; PROCEDURE ReadString (VAR s : ARRAY OF CHAR); VAR n : CARDINAL; BEGIN n := m2readline(s, HIGH(s) + 1) END ReadString; PROCEDURE ReadChar () : CHAR; BEGIN RETURN m2readchar() END ReadChar; PROCEDURE ReadInt () : INTEGER; BEGIN RETURN m2readint() END ReadInt; PROCEDURE ReadCard () : CARDINAL; BEGIN RETURN VAL(CARDINAL, m2readint()) END ReadCard; END StrIO.