!
! RQLC
!
++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
!***********************************************!
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 Cursor 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
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
FOR I=YMIN TO YMAX STEP 2000
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
FOR I=XMIN TO XMAX STEP 2000
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
RETURN
!***********************************************!
DO'TEXT:
RQLC$ ="RQLC - Request Locator"
XCALL AMGSBR,G'TX,GCB,4500,20500,RQLC$,STATUS
RETURN
!***********************************************!
GET'POINTS:
DSP'COUNT =1
POINT'COUNT =0
LOOP:
GOSUB GETCOR ! rqlc call
IF XVAL<XMIN THEN RETURN ! outside of box
IF XVAL>XMAX THEN RETURN ! " " "
IF YVAL<YMIN THEN RETURN ! " " "
IF YVAL>YMAX THEN RETURN ! " " "
POINT'COUNT =POINT'COUNT+1
POINT'X(POINT'COUNT) =XVAL
POINT'Y(POINT'COUNT) =YVAL
DSP'X(DSP'COUNT) =XVAL
DSP'Y(DSP'COUNT) =YVAL
! Display a Polymarker
XCALL AMGSBR,G'PM,GCB,DSP'ARRAY,STATUS
IF POINT'COUNT < POINT'MAX THEN GOTO LOOP
RETURN
!***********************************************!
DRAW'SHAPE:
IF POINT'COUNT<3 THEN RETURN
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
RETURN
GETCOR1:
XCALL AMGSBR,G'RQLC,GCB,XVAL,YVAL,2,XVAL,YVAL,CHAR,VALID
RETURN
END