!*! Updated on 03-Aug-90 at 3:52 PM by Steve Archuleta; edit time: 0:05:50 ! ! SINWAV ! ++INCLUDE AMGSYM.BSI MAP1 GCB,X,56000 MAP1 DSP'MAX,F,6,200 MAP1 DSP'ARRAY MAP2 DSP'COUNT,B,2 MAP2 DSP'XY(200) MAP3 DSP'X,B,2 MAP3 DSP'Y,B,2 MAP1 CLEAR'MAX,F,6,200 MAP1 CLEAR'ARRAY MAP2 CLEAR'COUNT,B,2 MAP2 CLEAR'XY(200) MAP3 CLEAR'X,B,2 MAP3 CLEAR'Y,B,2 MAP1 POINT'MAX,F,6,200 MAP1 POINT'ARRAY MAP2 POINT'COUNT,B,2 MAP2 POINTS(200) MAP3 POINT'X,B,2 MAP3 POINT'Y,B,2 MAP1 HOLD'X,B,2 MAP1 HOLD'Y,B,2 MAP1 STATUS,F !Status retruned from AMIGOS calls MAP1 RQLC$,S,80 MAP1 PI,F PI =3.141592654 !***********************************************! SINWAV: ON ERROR GOTO END'IT PRINT TAB(-1,0); GOSUB DO'OVERHEAD GOSUB DO'BOX GOSUB DO'WAVE END'IT: XCALL AMGSBR,G'CLWK,GCB,STATUS PRINT TAB(1,1); END !***********************************************! DO'OVERHEAD: ! Open the workstation XCALL AMGSBR,G'OPWK,GCB,"",STATUS ! Clear the workstation XCALL AMGSBR,G'CLRW,GCB,STATUS ! 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 ! Polyline Overhead XCALL AMGSBR,G'SPLT,GCB,1,STATUS ! type XCALL AMGSBR,G'SPLS,GCB,0,STATUS ! width XCALL AMGSBR,G'SPLC,GCB,1,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 =2000 XMAX =30000 YMIN =1000 YMAX =21000 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,7,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,15,STATUS IKTR =0 FOR I=(YMIN+2000) TO (YMAX-2000) STEP 2000 POINT'Y(1) =I POINT'Y(2) =I IKTR =IKTR+1 IF IKTR # 5 THEN & XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS & ELSE & XCALL AMGSBR,G'SPLT,GCB,2,STATUS : & XCALL AMGSBR,G'SPLC,GCB,7,STATUS : & XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS : & XCALL AMGSBR,G'SPLC,GCB,15,STATUS XCALL AMGSBR,G'SPLT,GCB,1,STATUS NEXT I POINT'Y(1) =YMIN POINT'Y(2) =YMAX IKTR =0 FOR I=(XMIN+2000) TO (XMAX-2000) STEP 2000 POINT'X(1) =I POINT'X(2) =I IKTR =IKTR+1 IF IKTR # 7 THEN & XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS & ELSE & XCALL AMGSBR,G'SPLT,GCB,2,STATUS : & XCALL AMGSBR,G'SPLC,GCB,7,STATUS : & XCALL AMGSBR,G'PL,GCB,POINT'ARRAY,STATUS : & XCALL AMGSBR,G'SPLC,GCB,15,STATUS XCALL AMGSBR,G'SPLT,GCB,1,STATUS NEXT I RETURN !***********************************************! LOAD'POINTX: POINT'COUNT =0 FOR I=0 TO (2*PI) STEP ((2*PI)/100) POINT'COUNT =POINT'COUNT+1 POINT'X(POINT'COUNT) =XAXIS XAXIS =XAXIS+XINC NEXT I POINT'COUNT =POINT'COUNT-1 RETURN GET'POINTY: Y =SIN(X) POINT'Y(PLT'KTR)=YAXIS+INT(Y*YINC) X =X+((2*PI)/100) LOOP'KTR=LOOP'KTR+1 IF LOOP'KTR>200 THEN EOF'FLAG=1 RETURN !***********************************************! DO'WAVE: YAXIS =(((YMAX-YMIN)/2)+YMIN) XAXIS =XMIN YINC =8000 XINC =(XMAX-XMIN)/100 GOSUB LOAD'POINTX POINT'MAX=POINT'COUNT PLT'KTR =POINT'MAX GOSUB GET'POINTY CLR'KTR =0 WAVE'LOOP: PLT'KTR =PLT'KTR+1 IF PLT'KTR > POINT'MAX THEN & POINT'Y(1) =POINT'Y(POINT'MAX) : & PLT'KTR=2 GOSUB GET'POINTY IF EOF'FLAG=1 THEN GOTO END'LOOP GOSUB PLOT'WAVE GOSUB CLEAR'WAVE GOTO WAVE'LOOP END'LOOP: RETURN !***********************************************! PLOT'WAVE: DSP'COUNT =2 DSP'X(1) =POINT'X(PLT'KTR-1) DSP'Y(1) =POINT'Y(PLT'KTR-1) DSP'X(2) =POINT'X(PLT'KTR) DSP'Y(2) =POINT'Y(PLT'KTR) XCALL AMGSBR,G'SPLC,GCB,1,STATUS XCALL AMGSBR,G'PL,GCB,DSP'ARRAY,STATUS IF PLT'KTR>(POINT'MAX-6) THEN CLR'FLAG=1 RETURN !***********************************************! CLEAR'WAVE: IF CLR'FLAG # 1 THEN RETURN CLR'KTR =CLR'KTR+1 DSP'COUNT =2 DSP'X(1) =POINT'X(CLR'KTR-1) DSP'Y(1) =POINT'Y(CLR'KTR-1) DSP'X(2) =POINT'X(CLR'KTR) DSP'Y(2) =POINT'Y(CLR'KTR) XCALL AMGSBR,G'SPLC,GCB,0,STATUS XCALL AMGSBR,G'PL,GCB,DSP'ARRAY,STATUS RETURN !***********************************************! !***********************************************!