MODULE GSXTEST; FROM GSXMAIN IMPORT OpenStation, CRT, CloseStation, VECTOR; FROM GSXIN IMPORT Locator, Mouse, CursorX, CursorY; FROM GSXFILL IMPORT FillBar, FillPie, FillStyle, FillIndex, hatch, pattern; FROM MathLib IMPORT Random; FROM GSXLINE IMPORT PolyLine, LineType, solid, dot; VAR X, Y : CARDINAL; C : CHAR; Moved, Terminated : BOOLEAN; line : ARRAY [1..2] OF VECTOR; i : CARDINAL; PROCEDURE R () : CARDINAL; BEGIN RETURN 1 + TRUNC ( Random () * 5.99 ); END R; BEGIN OpenStation ( CRT ); LineType ( dot ); FOR i := 0 TO 32 DO Y := i * 1024; IF Y > 32767 THEN Y := 32767; END; line[1].X := 0; line[1].Y := Y; line[2].X := 32767; line[2].Y := Y; PolyLine ( 2, line ); END; LineType ( solid ); FOR i := 0 TO 32 DO X := i * 1024; IF X > 32767 THEN X := 32767; END; line[1].X := X; line[1].Y := 0; line[2].X := X; line[2].Y := 32767; PolyLine ( 2, line ); END; REPEAT Locator ( Mouse, C, Moved, Terminated ); IF Terminated THEN X := ( ( CursorX + 512 ) DIV 1024 ) * 1024; Y := ( ( CursorY + 512 ) DIV 1024 ) * 1024; IF C = " " THEN FillStyle ( pattern ); FillIndex ( R () ); FillPie ( X, Y, R () * 500, R () * 400, R () * 600 ); END; IF C = "!" THEN FillStyle ( hatch ); FillIndex ( R () ); FillBar ( X, Y, R () * 800, R () * 600 ); END; END; UNTIL Terminated AND ( C = '"' ); CloseStation; END GSXTEST.