! ! RQLC2 ! ++INCLUDE AMGSYM.BSI MAP1 GCB,X,56000 MAP1 DSP'MAX,F,6,100 MAP1 DSP'ARRAY MAP2 DSP'COUNT,B,2 MAP2 DSP'XY(100) MAP3 DSP'X,B,2 MAP3 DSP'Y,B,2 MAP1 POINT'MAX,F,6,100 MAP1 POINT'ARRAY MAP2 POINT'COUNT,B,2 MAP2 POINTS(100) MAP3 POINT'X,B,2 MAP3 POINT'Y,B,2 MAP1 STATUS,F !Status retruned from AMIGOS calls MAP1 RQLC$,S,80 MAP1 XVAL,F MAP1 YVAL,F MAP1 XVAR,F MAP1 YVAR,F MAP1 XMIN,F MAP1 YMIN,F MAP1 XMAX,F MAP1 YMAX,F MAP1 XINC,F MAP1 YINC,F !***********************************************! RQLC: PRINT TAB(-1,0); GOSUB DO'OVERHEAD GOSUB DO'BOX GOSUB DO'TEXT GOSUB GET'POINTS ! GOSUB DRAW'SHAPE END'IT: XCALL AMGSBR,G'CLWK,GCB,STATUS PRINT TAB(1,1); END !***********************************************! DO'OVERHEAD: ! Set Mouse Curser Shape PRINT TAB(-1,29); PRINT TAB(-1,160);CHR(32+4); ! Open the workstation XCALL AMGSBR,G'OPWK,GCB,"",STATUS ! Clear the workstation XCALL AMGSBR,G'CLRW,GCB,STATUS ! Do Polymarker Overhead XCALL AMGSBR,G'SPMT,GCB,2,STATUS ! type XCALL AMGSBR,G'SPMS,GCB,20,STATUS ! style XCALL AMGSBR,G'SPMC,GCB,3,STATUS ! color ! Text Overhead XCALL AMGSBR,G'STXF,GCB,1004,STATUS ! font XCALL AMGSBR,G'STXC,GCB,3,STATUS ! color XCALL AMGSBR,G'SCHH,GCB,1500,STATUS ! height ! Fill Area Overhead XCALL AMGSBR,G'SFAC,GCB,4,STATUS ! color XCALL AMGSBR,G'SFAS,GCB,3,STATUS ! style XCALL AMGSBR,G'SFAI,GCB,55,STATUS ! index COLOR =4 RETURN !***********************************************! DO'BOX: POINT'COUNT =5 XMIN =1000 XMAX =30000 YMIN =1500 YMAX =20000 POINT'X(1) =XMIN POINT'Y(1) =YMIN POINT'X(2) =XMIN POINT'Y(2) =YMAX POINT'X(3) =XMAX POINT'Y(3) =YMAX POINT'X(4) =XMAX POINT'Y(4) =YMIN POINT'X(5) =POINT'X(1) POINT'Y(5) =POINT'Y(1) XCALL AMGSBR,G'SPLC,GCB,1,STATUS XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS POINT'COUNT =2 POINT'X(1) =XMIN POINT'X(2) =XMAX XCALL AMGSBR,G'SPLC,GCB,9,STATUS YINC =2000 FOR I=YMIN TO YMAX STEP YINC POINT'Y(1) =I POINT'Y(2) =I XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS NEXT I POINT'Y(1) =YMIN POINT'Y(2) =YMAX XINC =2000 FOR I=XMIN TO XMAX STEP XINC POINT'X(1) =I POINT'X(2) =I XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS NEXT I XCALL AMGSBR,G'SPLC,GCB,1,STATUS ! PRINT TAB(1,1);XMIN,XMAX,YMIN,YMAX; RETURN !***********************************************! DO'TEXT: RQLC$ ="RQLC2 - Fill The Boxes" XCALL AMGSBR,G'TX,GCB,4500,20500,RQLC$,STATUS RETURN !***********************************************! GET'POINTS: DSP'COUNT =1 POINT'COUNT =4 LOOP: GOSUB GETCOR ! rqlc call IF XVALXMAX THEN RETURN ! " " " IF YVALYMAX THEN RETURN ! " " " GOSUB DETERMINE'BOX GOSUB FILL'BOX GOSUB GETCOR GOTO LOOP !***********************************************! DRAW'SHAPE: IF POINT'COUNT<3 THEN RETURN ! CHANGE =CHANGE+1 ! IF CHANGE=1 THEN COLOR =COLOR+1 ! ! IF CHANGE>1 THEN CHANGE =0 COLOR =COLOR+1 IF COLOR=8 THEN COLOR=1 XCALL AMGSBR,G'SFAC,GCB,COLOR,STATUS ! color XCALL AMGSBR,G'FA,GCB,POINT'ARRAY,STATUS POINT'COUNT =POINT'COUNT+1 POINT'X(POINT'COUNT) =POINT'X(1) POINT'Y(POINT'COUNT) =POINT'Y(1) XCALL AMGSBR,G'SPLC,GCB,1,STATUS XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS RETURN !***********************************************! GETCOR: XCALL AMGSBR,G'RQLC,GCB,0,0,0,XVAL,YVAL,CHAR,VALID ! PRINT RETURN GETCOR1: XCALL AMGSBR,G'RQLC,GCB,XVAL,YVAL,2,XVAL,YVAL,CHAR,VALID ! PRINT RETURN END DETERMINE'BOX: ! PRINT TAB(2,1);XVAL ! PRINT TAB(3,1);YVAL XVAR =XMIN YVAR =YMIN XVAR =XMIN+XINC YVAR =YMIN+YINC XVAR2 =XMIN FOR I=XMIN TO XMAX STEP XINC IF XVALXVAR THEN XVAR2=XMIN IF YVAR2>YVAR THEN YVAR2=YMIN RETURN FILL'BOX: ! PRINT TAB(2,10);XVAR2; ! PRINT TAB(3,10);YVAR2; ! PRINT TAB(2,20);XVAR; ! PRINT TAB(3,20);YVAR; POINT'COUNT =4 POINT'X(1) =XVAR2 POINT'Y(1) =YVAR2 POINT'X(2) =XVAR2 POINT'Y(2) =YVAR POINT'X(3) =XVAR POINT'Y(3) =YVAR POINT'X(4) =XVAR POINT'Y(4) =YVAR2 POINT'X(5) =POINT'X(1) POINT'Y(5) =POINT'Y(1) GOSUB DRAW'SHAPE RETURN