MODULE TByteBuf; (* gm2 compatibility: a scalar actual for an ARRAY OF BYTE formal is wrapped as a stack byte-buffer descriptor, so HIGH = SIZE(actual)-1 for value formals, and a VAR formal accepts a scalar too. *) FROM SYSTEM IMPORT BYTE; VAR ExitCode : INTEGER; PROCEDURE bytes (b : ARRAY OF BYTE; s : CARDINAL); BEGIN IF HIGH(b) = s - 1 THEN INC(ExitCode, 20) END END bytes; PROCEDURE vbytes (VAR b : ARRAY OF BYTE); BEGIN IF HIGH(b) >= 0 THEN INC(ExitCode, 22) END END vbytes; VAR i : INTEGER; c : CHAR; BEGIN ExitCode := 0; bytes(i, SIZE(i)); bytes(c, SIZE(c)); vbytes(i) END TByteBuf.