language-Modula2-0.1: examples/Modula-2_Libraries/PMOS/sources/tests/ortest.mod
MODULE ORtest;
FROM Windows IMPORT
Window, Colour, FrameType, DividerType,
OpenWindow, CloseWindow, WriteString, WriteLn, PressAnyKey;
FROM NumericIO IMPORT
WriteHexWord, WriteHexByte, WriteRJCard;
FROM LowLevel IMPORT
IOR, IORB, IXOR, IXORB, LS;
(*******************************************************************)
VAR w: Window;
(*******************************************************************)
PROCEDURE TestIOR (x, y: CARDINAL);
BEGIN
WriteLn (w);
WriteHexWord (w, x); WriteString (w, " IOR ");
WriteHexWord (w, y); WriteString (w, " = ");
WriteHexWord (w, IOR(x,y));
END TestIOR;
(*******************************************************************)
PROCEDURE TestIXOR (x, y: CARDINAL);
BEGIN
WriteLn (w);
WriteHexWord (w, x); WriteString (w, " IXOR ");
WriteHexWord (w, y); WriteString (w, " = ");
WriteHexWord (w, IXOR(x,y));
END TestIXOR;
(*******************************************************************)
PROCEDURE TestIORB (x, y: SHORTCARD);
BEGIN
WriteLn (w);
WriteHexByte (w, x); WriteString (w, " IORB ");
WriteHexByte (w, y); WriteString (w, " = ");
WriteHexByte (w, IORB(x,y));
END TestIORB;
(*******************************************************************)
PROCEDURE LStest;
VAR datum, j: CARDINAL;
BEGIN
datum := 1234;
FOR j := 0 TO 16 DO
WriteLn (w);
WriteRJCard (w, j, 3);
WriteString (w, " ");
WriteHexWord (w, LS(datum, j));
END (*FOR*);
END LStest;
(*******************************************************************)
BEGIN
OpenWindow (w, blue, cyan, 0, 24, 0, 79, noframe, nodivider);
WriteString (w, "Test of IOR");
TestIOR (5, 19);
TestIOR (055AAH, 01234H);
TestIORB (5, 19);
TestIORB (012H, 089H);
TestIXOR (5, 19);
TestIXOR (012H, 089H);
PressAnyKey (w);
LStest;
PressAnyKey (w);
CloseWindow (w);
END ORtest.