! ! smLC ! ++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: PRINT TAB(-1,159); ! DISABLE MOUSE 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+7); ! 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$ ="SMLC - Sample Locator" XCALL AMGSBR,G'TX,GCB,4500,20500,RQLC$,STATUS RETURN !***********************************************! GET'POINTS: DSP'COUNT =1 POINT'COUNT =0 LOOP: XVAL'SAV =XVAL YVAL'SAV =YVAL GOSUB GETCOR2 ! smlc call IF VALID # 0 THEN RETURN IF XVALXMAX THEN RETURN ! " " " IF YVALYMAX THEN RETURN ! " " " IF XVAL=XVAL'SAV AND YVAL=YVAL'SAV THEN GOTO LOOP POINT'COUNT =1 POINT'X(1) =XVAL POINT'Y(1) =YVAL ! Display a Polymarker XCALL AMGSBR,G'PM,GCB,POINT'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 GETCOR2: XCALL AMGSBR,G'SMLC,GCB,XVAL,YVAL,CHAR,VALID RETURN END