packages feed

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.