e _vߋt ***THIS VOLUME DOES NOT CONTAIN A HARDWARE BOOTABLE SYSTEM ***  $t:#z xQz kzNNz*O:z \U84w($  % *wz n e  4010FTN26JUN801357014010FTN [001,001] DECFILE11A .t:#z26JUN80135701F. xQz26JUN80135701JK@P. kz26JUN80135701A .NNz26JUN80135701Iq.*O:z26JUN80135701?.OOz26JUN80140505Lp.PXO٣v+d26JUN8016184126JUN80161548MMt:#z xQz kzNNz*O:zOOzBO٣v+dUIC.DIR;1 ** DK1:[10,11] 26-JUN-80 16:07UIC .DIR;1T4010 .DOC;1ADEIN .FTN;1ADEOUT .FTN;1ALFMOD .FTN;1ANCHO .FTN;1ANMODE .FTN;1ANSTR .FTN;1BAKSP .FTN;1BELL .FTN;1BUFFPK .FTN;1CARTN .FTN;1CHRSIZ .FTN;1CLIPT .FTN;1CSIZE .FTN;1CWSEND .FTN;1CZAXIS .FTN;1DASHA .FTN;1DASHR .FTN;1DASHSA .FTN;1DASHSR .FTN;1DCURSR .FTN;1DRAWA .FTN;1DRAWR .FTN;1DRAWSA .FTN;1DRAWSR .FTN;1 DRWABS .FTN;1KDRWREL .FTN;18DSHABS .FTN;1 DSHMOD .FTN;1 DSHREL .FTN;1 DWINDO .FTN;1 ERASE .FTN;1 FINITT .FTN;1 GENFLG .FTN;1 HDCOPY .FTN;1 HOME .FTN;1 INCPLT .FTN;1 INITT .FTN;1 IOWAIT .FTN;1 IPMOD .FTN;1 KCM .FTN;1 KIN .FTN;1 LEFTIO .FTN;1 LINEF .FTN;1 LINHGT .FTN;1 LINTRN .FTN;1 LINWDT .FTN;1 LOGTRN .FTN;1 LVLCHT .FTN;1 MOVABS .FTN;1 MOVEA .FTN;1 MOVER .FTN;1 MOVREL .FTN;1 NEWLIN .FTN;1 NEWPAG .FTN;1 PARCLT .FTN;1 PCLIPT .FTN;1 PLTCHR .FTN;1 PNTABS .FTN;1 PNTMOD .FTN;1 PNTREL .FTN;1 POINTA .FTN;1 POINTR .FTN;1 POLTRN .FTN;1 PSCAL .FTN;1 RECOVR .FTN;1 REL2AB .FTN;1 RESCAL .FTN;1 RESET .FTN;1 RESTAT .FTN;1 REVCOT .FTN;1 RROTAT .FTN;1 RSCALE .FTN;1 RSTTAB .FTN;1 SCURSR .FTN;1 SEEBUF .FTN;1 SEEDW .FTN;1 SEELOC .FTN;1 SEEMOD .FTN;1 SEEMRG .FTN;1 SEEREL .FTN;1 SEETRM .FTN;1 SEETRN .FTN;1 SEETW .FTN;1 SETBUF .FTN;1 SETMRG .FTN;1 SETTAB .FTN;1 SVSTAT .FTN;1 SWINDO .FTN;1 TABHOR .FTN;1 TABVER .FTN;1 TCSLEV .FTN;1 TERM .FTN;1 TINPUT .FTN;1 TINSTR .FTN;1 TKDASH .FTN;1 TKPNT .FTN;1 TOUTPT .FTN;1 TOUTST .FTN;1 TSEND .FTN;1 TTBLSZ .FTN;1 TWINDO .FTN;1 VCURSR .FTN;1 VECMOD .FTN;1 VWINDO .FTN;1 V2ST .FTN;1 WINCOT .FTN;1 XYCNVT .FTN;1 ****T4010.DOC;1 EPCC**** IDG PROGRAM PRODUCT NAME P10A01 APRIL 07, 1980 026 419-83 0000000PC***********************************************************************00000010PC* *00000020PC* 4010A01 PLOT 10 TERMINAL CONTROL SYSTEM *00000030PC* LEVEL 2 *00000040PC* *00000050PC* 062-2941-02 STD. SOURCE CARD DECK, 026 PUNCH *00000060PC* 062-2943-02 STD., OPT. 1 SOURCE LISTING *00000070PC* 062-2945-02 OPT. 1 SOURCE PAPER TAPE *00000080PC* *00000090PC* C COPYRIGHT 1976 TEKTRONIX, INC. *00000100PC* NEW MATERIAL 1980 *00000110PC* ALL RIGHTS RESERVED *00000120PC* *00000130PC* TEKTRONIX, INC. *00000140PC* P. O. BOX 500 *00000150PC* BEAVERTON, OREGON 97077 *00000160PC* *00000170PC***********************************************************************00000180PC 00000190****ADEIN.FTN;1 PC----------SUBROUTINE--ADEIN------------------------TEKTRONIX, INC.---- 00027020PC 00027030 SUBROUTINE ADEIN (NCHAR,IARAY) C  LOGICAL*1 LOGBUF(80)  INTEGER*2 IARAY(80) INTEGER*2 ISB(2),IPARAM(6),IDSW! CALL GETADR(IPARAM(1),LOGBUF(1))0 IPARAM(2)=80*' CALL WTQIO("1000,5,1,,ISB,IPARAM,IDSW)* NCHAR=ISB(2)* DO 100 I=1,NCHAR 100 IARAY(I)=LOGBUF(I) RETURN  END****ADEOUT.FTN;1 0PC----------SUBROUTINE--ADEOUT-----------------------TEKTRONIX, INC.---- 00027050PC 00027060 SUBROUTINE ADEOUT (NCHAR,IARAY)CO* INTEGER*2 IARAY(80),ISB(2),IPARAM(6),IDSW IF(NCHAR.EQ.0)RETURNI CALL GETADR(IPARAM(1),IARAY(1)) IPARAM(2)=NCHAR& CALL WTQIO("410,5,1,,ISB,IPARAM,IDSW) RETURN  END****ALFMOD.FTN;1 PC----------SUBROUTINE--ALFMOD------------------------TEKTRONIX, INC.----00022040PC 00022050P SUBROUTINE ALFMOD 00022060P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00022070P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00022080P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00022090P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00022100P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00022110P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00022120P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00022130P + KINLFT,KOTLFT,KUNIT 00022140PC * SET ALPHA MODE OUTPUT (US) 00022150P CALL TOUTPT(31) 00022160P KGRAFL=0 00022170P KKMODE=0 00022180P IF(KBEAMY.GT.KHOMEY) KBEAMY=KHOMEY 00022190P RETURN 00022200P END 00022210****ANCHO.FTN;1 APC----------SUBROUTINE--ANCHO-------------------------TEKTRONIX, INC.----00019400PC 00019410P SUBROUTINE ANCHO(ICHAR) 00019420P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00019430P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00019440P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00019450P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00019460P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00019470P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00019480P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00019490P + KINLFT,KOTLFT,KUNIT 00019500P IF(KKMODE.EQ.0)GO TO 10 00019510P CALL ALFMOD 00019520P10 IF(KBEAMX.LE.KRMRGN) GO TO 20 00019530P CALL NEWLIN 00019540P20 CALL TOUTPT(ICHAR) 00019550PC * ROUND NON-INTEGER CHARACTER WIDTH IN 1023 CO-ORDINATES 00019560P KBEAMX=KBEAMX+(KHORSZ+KFACTR/2)/KFACTR 00019570P RETURN 00019580P END 00019590****ANMODE.FTN;1 APC----------SUBROUTINE--ANMODE------------------------TEKTRONIX, INC.----00000200CTP SUBROUTINE ANMODE 00000220P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00000230P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00000240P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00000250P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00000260P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00000270P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00000280P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00000290P + KINLFT,KOTLFT,KUNIT 00000300PC * ENTER ALPHA-NUMERIC MODE 00000310P IF(KTERM.LT.3) GO TO 10 00000320P KLINE=0 00000330P KZAXIS=0 00000340P CALL CWSEND 00000350P10 CALL ALFMOD 00000360PC * DUMP THE OUTPUT BUFFER 00000370P CALL TSEND 00000380P RETURN 00000390P END 00000400****ANSTR.FTN;1 APC----------SUBROUTINE--ANSTR-------------------------TEKTRONIX, INC.----00019870PC 00019880P SUBROUTINE ANSTR(NCHAR,IADE) 00019890P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00019900P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00019910P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00019920P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00019930P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00019940P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00019950P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00019960P + KINLFT,KOTLFT,KUNIT 00019970P DIMENSION IADE(80) 00019980P MAXLEN=KACHAR 00019990P IPT=1 00020000PC * PLACE THE TERMINAL IN A/N MODE, IF NEEDED 00020010P IF(KKMODE .NE. 0)CALL ALFMOD 00020020PC * GET A NEWLINE WHEN THE BEAM POSITION IS OUTSIDE MARGINS 00020030P IF(KBEAMX .LT. KLMRGN)GO TO 10 00020040P5 IF(KBEAMX .LE. KRMRGN)GO TO 20 00020050P IF(KBEAMX .LT. 4092/KFACTR)GO TO 10 00020060P KBEAMX=KLMRGN 00020070P KBEAMY=KBEAMY-(KVERSZ+KFACTR/2)/KFACTR 00020080P IF(KBEAMY .LT. 0)KBEAMY=KHOMEY 00020090P GO TO 20 00020100P10 CALL NEWLIN 00020110PC * CALCULATE NUMBER OF CHARACTERS POSSIBLE TO PUT ON LINE 00020120P20 ISEND=((KRMRGN-KBEAMX)*KFACTR)/KHORSZ 00020130PC * PUT OUT AT LEAST ONE CHARACTER 00020140P IF(ISEND .LT. 1)ISEND=1 00020150PC * DON@T SEND ENOUGH CHARACTERS TO CAUSE BUFFER TRUNCATION 00020160P IF(ISEND .GT. MAXLEN)ISEND=MAXLEN 00020170P IEND=IPT+ISEND-1 00020180PC * SEND ONLY NUMBER OF CHARACTERS RECEIVED 00020190P IF(IEND .GT. NCHAR)ISEND=NCHAR-IPT+1 00020200P CALL TOUTST(ISEND,IADE(IPT)) 00020210PC * UPDATE THE BEAM 00020220P KBEAMX=KBEAMX+(ISEND*KHORSZ+KFACTR/2)/KFACTR 00020230P IF(KBEAMX .GT. 4092/KFACTR)KBEAMX=4092/KFACTR 00020240P IPT=IPT+ISEND 00020250PC * REPEAT ON NEWLINE UNTIL ALL CHARACTERS SENT 00020260P IF(IEND .LT. NCHAR)GO TO 5 00020270P RETURN 00020280P END 00020290****BAKSP.FTN;1 FPC----------SUBROUTINE--BAKSP-------------------------TEKTRONIX, INC.----00020910PC 00020920P SUBROUTINE BAKSP 00020930P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00020940P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00020950P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00020960P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00020970P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00020980P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00020990P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00021000P + KINLFT,KOTLFT,KUNIT 00021010P IF(KKMODE.NE.0)CALL ALFMOD 00021020PC * OUTPUT (BS) 00021030P IF (KTERM .GT. 0)CALL TOUTPT(8) 00021040P KBEAMX=KBEAMX-(KHORSZ+KFACTR/2)/KFACTR 00021050P IF(KBEAMX.GE.0)GO TO 10 00021060P KBEAMX=KBEAMX+4095/KFACTR 00021070P10 IF(KTERM .GT. 0)GO TO 20 00021080P CALL MOVABS(KBEAMX,KBEAMY) 00021090P CALL ALFMOD 00021100P20 RETURN 00021110P END 00021120****BELL.FTN;1 BPC----------SUBROUTINE--BELL--------------------------TEKTRONIX, INC.----00003890PC 00003900P SUBROUTINE BELL 00003910P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00003920P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00003930P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00003940P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00003950P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00003960P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00003970P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00003980P + KINLFT,KOTLFT,KUNIT 00003990PC * OUTPUT (BEL) 00004000P CALL TOUTPT(7) 00004010P CALL IOWAIT(1) 00004020PC * BELL NULLIFIES MOVE AT TERMINAL 00004030P KMOVEF=0 00004040P RETURN 00004050P END 00004060****BUFFPK.FTN;1 APC----------SUBROUTINE--BUFFPK------------------------TEKTRONIX, INC.----00025480PC 00025490P SUBROUTINE BUFFPK(NCHAR,IOUT) 00025500P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00025510P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00025520P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00025530P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00025540P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00025550P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00025560P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00025570P + KINLFT,KOTLFT,KUNIT 00025580P DIMENSION IDATA(80),IOUT(80),ISYNC(5) 00025590P DATA MAXLEN,LENOUT,NODATA/80,0,1/ 00025600P DATA ITEMP/0/,ISYNC(1),ISYNC(2),ISYNC(3),ISYNC(4),ISYNC(5)/5*22/ 00025610P ITRAIL=KTRAIL 00025620P LEN=NCHAR 00025630P KOTLFT=MAXLEN-LENOUT-KTRAIL 00025640PC * DUMP THE BUFFER IF THE MODE IS UNBUFFERED 00025650P IF(KUNIT .EQ. 4)GO TO 45 00025660PC * DUMP THE BUFFER WHEN REQUESTED BY LEN=0 00025670P IF(NCHAR .LE. 0)GO TO 10 00025680PC * DON@T DUMP THE BUFFER IF NEW STRING WILL FIT 00025690P KSYNCS=KPADV 00025700P ISETBK=0 00025710P NCH=NCHAR-1 00025720P IF(IOUT(1) .GT. 31) ISETBK=MIN0(ITEMP,NCH) 00025730P IMAXL=KSYNCS+NCHAR-ISETBK 00025740P IF(IMAXL .LE. KOTLFT)GO TO 70 00025750PC * DETERMINE IF THERE IS DATA IN BUFFER 00025760P10 IF(NODATA .EQ. 1)GO TO 50 00025770P NODATA=1 00025780PC * DETERMINE THE FORMAT THE USER WANTS BUFFER DUMPED IN 00025790P GO TO (20,30,40,45),KUNIT 00025800PC * OUTPUT BUFFER FORMAT IS (GS),PLTCHRS,DATA,(US) 00025810P20 LENOUT=LENOUT+1 00025820PC * APPEND (US) TO END OF BUFFER 00025830P IDATA(LENOUT)=31 00025840P CALL ADEOUT(LENOUT,IDATA) 00025850PC * RESTORE THE BEAM POSITION AT FIRST OF THE NEXT BUFFER 00025860P ISUB=1 00025870P IF(KTERM .GE. 3) ISUB=2 00025880P CALL PLTCHR(KBEAMX,KBEAMY,IDATA(ISUB)) 00025890P IDATA(2)=IDATA(ISUB) 00025900P LENOUT=5+ISUB 00025910P IDATA(1)=29 00025920PC * AND NOW THE MODE BEFORE THE OUTPUT WAS ASKED FOR 00025930P DO 19 I=2,KPAD2 00025940P IDATA(LENOUT)=22 00025950P19 LENOUT=LENOUT+1 00025960P KEY=KKMODE+1 00025970P IF(KEY .LT. 1)KEY=1 00025980P IF(KEY .GT. 5)KEY=1 00025990PC * MODE IS A/N,VEC,PNT,INC,DSH 00026000P GO TO (21, 22, 23, 24, 22),KEY 00026010PC * ENTER A/N MODE 00026020P21 IDATA(LENOUT)=31 00026030P GO TO 50 00026040PC * IF READY FOR A MOVE, THEN REMOVE FIXUP CHARS 00026050P22 IF(KMOVEF .EQ. 1) LENOUT=2 00026060P LENOUT=LENOUT-1 00026070PC * CHECK IF DASHED LINE OR Z AXIS MUST BE RESTORED 00026080P IF(KLINE .EQ. 0 .AND. KZAXIS .EQ. 0) GO TO 50 00026090P IDATA(LENOUT+1)=27 00026100P LENOUT=LENOUT+2 00026110P IDATA(LENOUT)=96+KZAXIS*8+KLINE 00026120P GO TO 50 00026130PC * ENTER POINT MODE 00026140P23 IF(KTERM .LT. 3)GO TO 22 00026150P IDATA(LENOUT)=28 00026160P LENOUT=LENOUT+1 00026170P GO TO 22 00026180PC * ENTER INCREMENTAL PLOT MODE 00026190P24 IDATA(LENOUT)=30 00026200PC * RAISE OR LOWER PEN AS NEEDED 00026210PC * THE FOLLOWING 3 LINES ARE NOT NEEDED ON SOME PLOTTERS **************00026220P LENOUT=LENOUT+1 00026230P IDATA(LENOUT)=80 00026240P IF(KMOVEF .EQ. 1)IDATA(LENOUT)=32 00026250PC **********************************************************************00026260P GO TO 50 00026270PC * OUTPUT BUFFER FORMAT IS (SYN),DATA,(ESC) 00026280P30 IF(NCHAR .LE. 0 .AND. KGNMOD .NE. 1)GO TO 20 00026290P LENOUT=LENOUT+1 00026300PC * APPEND (ESC) TO END OF BUFFER 00026310P IDATA(LENOUT)=27 00026320P CALL ADEOUT(LENOUT,IDATA) 00026330P IDATA(1)=22 00026340P LENOUT=1 00026350P GO TO 50 00026360PC * OUTPUT BUFFER FORMAT IS DATA ONLY 00026370P40 CALL ADEOUT(LENOUT,IDATA) 00026380P LENOUT=0 00026390P GO TO 50 00026400PC * NON-BUFFERED OUTPUT FORMAT 00026410P45 IF(LENOUT .GT. 0)CALL ADEOUT(LENOUT,IDATA) 00026420P IF(LEN .GT. 0)CALL ADEOUT(LEN,IOUT) 00026430P IF(KPADV .GT. 0)CALL ADEOUT(KPADV,ISYNC) 00026440P KPADV=0 00026450P LENOUT=0 00026460P NODATA=1 00026470P GO TO 90 00026480P50 KOTLFT=MAXLEN-LENOUT-ITRAIL 00026490P ITEMP=0 00026500P ISETBK=0 00026510P KPADV=0 00026520P IF(LEN .LE. 0) GO TO 90 00026530P70 NODATA=0 00026540P LENOUT=LENOUT-ISETBK 00026550P KOTLFT=KOTLFT+ISETBK 00026560P IF(LEN .GT. KOTLFT)LEN=KOTLFT 00026570P DO 80 I=1,LEN 00026580P LENOUT=LENOUT+1 00026590P80 IDATA(LENOUT)=IOUT(I) 00026600P ITEMP=KSYNCS 00026610P KPADV=0 00026620P IF(ITEMP .LE. 0) GO TO 90 00026630P DO 85 I=1,ITEMP 00026640P LENOUT=LENOUT+1 00026650P85 IDATA(LENOUT)=22 00026660P90 KOTLFT=MAXLEN-LENOUT-ITRAIL 00026670P RETURN 00026680P END 00026690****CARTN.FTN;1 OPC----------SUBROUTINE--CARTN-------------------------TEKTRONIX, INC.----00020390PC 00020400P SUBROUTINE CARTN 00020410P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00020420P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00020430P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00020440P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00020450P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00020460P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00020470P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00020480P + KINLFT,KOTLFT,KUNIT 00020490P IF(KLMRGN.EQ.0)GO TO 10 00020500PC * IF (CR) CAN NOT BE SENT REMOVE ALL EXECUTEABLE CODE EXCEPT NEXT 2 00020510PC * LINES AND RETURN 00020520P CALL MOVABS(KLMRGN,KBEAMY) 00020530P CALL ALFMOD 00020540P GO TO 30 00020550P10 IF(KKMODE.NE.0)CALL ALFMOD 00020560PC * OUTPUT (CR) 00020570P CALL TOUTPT(13) 00020580P KBEAMX=0 00020590PC * RESTORE ZAXIS STATE ON 4014 00020600P IF(KTERM .GE. 2)CALL CWSEND 00020610P30 RETURN 00020620P END 00020630****CHRSIZ.FTN;1 APC----------SUBROUTINE--CHRSIZ------------------------TEKTRONIX, INC.----00024430PC 00024440P SUBROUTINE CHRSIZ(K) 00024450P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00024460P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00024470P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00024480P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00024490P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00024500P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00024510P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00024520P + KINLFT,KOTLFT,KUNIT 00024530P DIMENSION ICODE(2),ICHRTB(2,4) 00024540P DATA ICHRTB(1,1),ICHRTB(2,1)/56,88/ 00024550P DATA ICHRTB(1,2),ICHRTB(2,2)/51,82/ 00024560P DATA ICHRTB(1,3),ICHRTB(2,3)/34,53/ 00024570P DATA ICHRTB(1,4),ICHRTB(2,4)/31,48/ 00024580P DATA ICODE(1)/27/ 00024590PC * CHECK TERMINAL TYPE 00024600P IF(KTERM .LE. 1)GO TO 10 00024610P KSIZEF=K 00024620P IF(K .LT. 1)KSIZEF=1 00024630P IF(K .GT. 4)KSIZEF=4 00024640P KHORSZ=ICHRTB(1,KSIZEF) 00024650P KVERSZ=ICHRTB(2,KSIZEF) 00024660P ICODE(2)=55+KSIZEF 00024670P CALL TOUTST(2,ICODE) 00024680P10 RETURN 00024690P END 00024700****CLIPT.FTN;1 HPC----------SUBROUTINE--CLIPT-------------------------TEKTRONIX, INC.----00007240PC 00007250P SUBROUTINE CLIPT(BUFIN,OUTBF) 00007260P DIMENSION BUFIN(4),OUTBF(4) 00007270P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00007280P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00007290P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00007300P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00007310P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00007320P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00007330P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00007340P + KINLFT,KOTLFT,KUNIT 00007350P GSTAX=BUFIN(1) 00007360P GSTAY=BUFIN(2) 00007370P GENDX=BUFIN(3) 00007380P GENDY=BUFIN(4) 00007390P IF(GSTAX.GE.TMINVX)GO TO 10 00007400P IF(GENDX.GE.TMINVX)GO TO 20 00007410P GO TO 110 00007420P10 IF(GSTAX.LE.TMAXVX)GO TO 20 00007430P IF(GENDX.LE.TMAXVX)GO TO 20 00007440P GO TO 110 00007450P20 IF(GSTAY.GE.TMINVY)GO TO 21 00007460P IF(GENDY.GE.TMINVY)GO TO 30 00007470P GO TO 110 00007480P21 IF(GSTAY.LE.TMAXVY)GO TO 30 00007490P IF(GENDY.LE.TMAXVY)GO TO 30 00007500P GO TO 110 00007510P30 IF(GSTAX.NE.GENDX)GO TO 31 00007520P DSTAX=GSTAX 00007530P DENDX=GSTAX 00007540P CALL PARCLT(GSTAY,GENDY,TMINVY,TMAXVY,DSTAY,DENDY) 00007550P GO TO 120 00007560P31 IF(GSTAY.NE.GENDY)GO TO 40 00007570P DSTAY=GSTAY 00007580P DENDY=GSTAY 00007590P CALL PARCLT(GSTAX,GENDX,TMINVX,TMAXVX,DSTAX,DENDX) 00007600P GO TO 120 00007610P40 A=GENDX-GSTAX 00007620P B=GENDY-GSTAY 00007630P IF(GSTAX.LT.TMINVX)GO TO 41 00007640P IF(GSTAX.LE.TMAXVX)GO TO 43 00007650P Q=TMAXVX 00007660P GO TO 42 00007670P43 IF(GSTAY.GT.TMAXVY)GO TO 140 00007680P IF(GSTAY.LT.TMINVY)GO TO 44 00007690P DSTAX=GSTAX 00007700P DSTAY=GSTAY 00007710P GO TO 150 00007720P41 Q=TMINVX 00007730P42 DSTAY=GSTAY+((Q-GSTAX)*B/A) 00007740P IF(DSTAY.GT.TMAXVY)GO TO 140 00007750P IF(DSTAY.LT.TMINVY)GO TO 44 00007760P DSTAX=Q 00007770P GO TO 150 00007780P44 R=TMINVY 00007790P GO TO 45 00007800P140 R=TMAXVY 00007810P45 DSTAX=GSTAX+((R-GSTAY)*A/B) 00007820P IF(DSTAX.GT.TMAXVX)GO TO 110 00007830P IF(DSTAX.LT.TMINVX)GO TO 110 00007840P DSTAY=R 00007850P150 IF(GENDX.LT.TMINVX)GO TO 50 00007860P IF(GENDX.GT.TMAXVX)GO TO 51 00007870P IF(GENDY.GT.TMAXVY)GO TO 160 00007880P IF(GENDY.LT.TMINVY)GO TO 52 00007890P DENDX=GENDX 00007900P DENDY=GENDY 00007910P GO TO 120 00007920P51 Q=TMAXVX 00007930P GO TO 53 00007940P50 Q=TMINVX 00007950P53 DENDY=GSTAY+((Q-GSTAX)*B/A) 00007960P IF(DENDY.GT.TMAXVY)GO TO 160 00007970P IF(DENDY.LT.TMINVY)GO TO 52 00007980P DENDX=Q 00007990P GO TO 120 00008000P52 R=TMINVY 00008010P GO TO 60 00008020P160 R=TMAXVY 00008030P60 DENDX=GSTAX+((R-GSTAY)*A/B) 00008040P DENDY=R 00008050P120 OUTBF(1)=DSTAX 00008060P OUTBF(2)=DSTAY 00008070P OUTBF(3)=DENDX 00008080P OUTBF(4)=DENDY 00008090P KGNFLG=0 00008100P GO TO 70 00008110PC * SET FLAG IF LINE OUTSIDE WINDOW 00008120P110 KGNFLG=1 00008130P70 RETURN 00008140P END 00008150****CSIZE.FTN;1 GPC----------SUBROUTINE--CSIZE-------------------------TEKTRONIX, INC.----00022840PC 00022850P SUBROUTINE CSIZE(IHORZ,IVERT) 00022860P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00022870P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00022880P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00022890P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00022900P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00022910P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00022920P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00022930P + KINLFT,KOTLFT,KUNIT 00022940P IHORZ=(KHORSZ+KFACTR/2)/KFACTR 00022950P IVERT=(KVERSZ+KFACTR/2)/KFACTR 00022960P RETURN 00022970P END 00022980****CWSEND.FTN;1 KPC----------SUBROUTINE--CWSEND------------------------TEKTRONIX, INC.----00024950PC 00024960P SUBROUTINE CWSEND 00024970P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00024980P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00024990P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00025000P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00025010P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00025020P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00025030P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00025040P + KINLFT,KOTLFT,KUNIT 00025050P DIMENSION ICODE(2) 00025060P DATA ICODE(1)/27/ 00025070P ICODE(2)=96+KZAXIS*8+KLINE 00025080P CALL TOUTST(2,ICODE) 00025090P RETURN 00025100P END 00025110****CZAXIS.FTN;1 IPC----------SUBROUTINE--CZAXIS------------------------TEKTRONIX, INC.----00024720PC 00024730P SUBROUTINE CZAXIS(ICODE) 00024740P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00024750P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00024760P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00024770P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00024780P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00024790P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00024800P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00024810P + KINLFT,KOTLFT,KUNIT 00024820PC * ICODE = 0 -- NORMAL Z AXIS 00024830PC * = 1 --DEFOCUSED Z AXIS 00024840PC * = 2 --WRITE-THRU ENABLE 00024850P IF(KTERM .LE. 1)GO TO 10 00024860P CALL ALFMOD 00024870P KZAXIS=ICODE 00024880P IF(KZAXIS .LT. 0)KZAXIS=0 00024890P IF(KZAXIS .GT. 2)KZAXIS=2 00024900P CALL CWSEND 00024910P10 RETURN 00024920P END 00024930****DASHA.FTN;1 ZPC----------SUBROUTINE--DASHA-------------------------TEKTRONIX, INC.----00005040PC 00005050P SUBROUTINE DASHA(X,Y,L) 00005060P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00005070P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00005080P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00005090P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00005100P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00005110P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00005120P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00005130P + KINLFT,KOTLFT,KUNIT 00005140P CALL LVLCHT 00005150PC * CONVERT TO SCREEN CO-ORDINATES 00005160P CALL V2ST(1,X,Y,IX,IY) 00005170PC * SKIP IF LINE COMPLETELY OUTSIDE WINDOW 00005180P IF(KGNFLG .EQ. 1)GO TO 10 00005190P CALL DSHMOD(L) 00005200P CALL TKDASH(IX,IY) 00005210P10 RETURN 00005220P END 00005230****DASHR.FTN;1 PPC----------SUBROUTINE--DASHR-------------------------TEKTRONIX, INC.----00004960PC 00004970P SUBROUTINE DASHR(X,Y,L) 00004980P CALL REL2AB(X,Y,XL,YL) 00004990P CALL DASHA(XL,YL,L) 00005000P RETURN 00005010P END 00005020****DASHSA.FTN;1 PC----------SUBROUTINE--DASHSA------------------------TEKTRONIX, INC.----00002190PC 00002200P SUBROUTINE DASHSA(X,Y,L) 00002210P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00002220P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00002230P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00002240P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00002250P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00002260P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00002270P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00002280P + KINLFT,KOTLFT,KUNIT 00002290P CALL LVLCHT 00002300P XOLD=TIMAGX 00002310P YOLD=TIMAGY 00002320P KEY=KEYCON 00002330P IF(KEYCON .LT. 1)KEY=5 00002340P IF(KEYCON .GT. 4)KEY=4 00002350PC * LINEAR LOG POLAR USER ERROR 00002360P GO TO (100, 100, 200, 400, 100),KEY 00002370PC * ERROR LINEAR LOG 00002380P100 CALL DASHA(X,Y,L) 00002390P RETURN 00002400PC * POLAR 00002410P200 DX=X-XOLD 00002420P DY=Y-YOLD 00002430P YSTEP=0.0 00002440P IF(DY.NE.0.) YSTEP=SIGN(5.0/TRFACY,DY) 00002450P IF(ABS(DY*.75) .LE. ABS(YSTEP)) GO TO 100 00002460P FRAC=DX/DY 00002470P NSEG=(DY/YSTEP)+.9999 00002480P YOUT=YOLD 00002490P300 IF(NSEG .LT. 2) GO TO 100 00002500P YOUT=YOUT+YSTEP 00002510P XOUT=XOLD+(YOUT-YOLD)*FRAC 00002520P CALL DASHA(XOUT,YOUT,L) 00002530P NSEG=NSEG-1 00002540P GO TO 300 00002550PC * USER SEGMENTATION 00002560P400 CONTINUE 00002570PC CALL USDASH(X,Y,L) 00002580P GO TO 100 00002590P END 00002600****DASHSR.FTN;1 OPC----------SUBROUTINE--DASHSR------------------------TEKTRONIX, INC.----00002110PC 00002120P SUBROUTINE DASHSR(X,Y,L) 00002130P CALL REL2AB(X,Y,RX,RY) 00002140P CALL DASHSA(RX,RY,L) 00002150P RETURN 00002160P END 00002170****DCURSR.FTN;1 PC----------SUBROUTINE--DCURSR------------------------TEKTRONIX, INC.----00015940PC 00015950P SUBROUTINE DCURSR(ICHAR,IX,IY) 00015960P CALL SCURSR(ICHAR,IX,IY) 00015970P RETURN 00015980P END 00015990****DRAWA.FTN;1 -PC----------SUBROUTINE--DRAWA-------------------------TEKTRONIX, INC.----00005890PC 00005900P SUBROUTINE DRAWA(X,Y) 00005910P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00005920P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00005930P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00005940P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00005950P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00005960P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00005970P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00005980P + KINLFT,KOTLFT,KUNIT 00005990PC * SET TERMINAL TO DRAW SOLID LINES IF NEEDED 00006000PC * THIS SECTION IS NEEDED FOR 4014 ENHANCED ***************************00006010P IF(KLINE .EQ. 0)GO TO 5 00006020P KLINE=0 00006030P CALL CWSEND 00006040P5 CONTINUE 00006050PC **********************************************************************00006060P CALL LVLCHT 00006070PC * CONVERT TO SCREEN CO-ORDINATES 00006080P CALL V2ST(1,X,Y,IX,IY) 00006090PC * SKIP IF LINE COMPLETELY OUTSIDE WINDOW 00006100P IF(KGNFLG .EQ. 1)GO TO 10 00006110P IF(KKMODE.NE.1)CALL VECMOD 00006120P IF(KMOVEF.EQ.1)CALL XYCNVT(KBEAMX,KBEAMY) 00006130P CALL XYCNVT(IX,IY) 00006140P10 RETURN 00006150P END 00006160****DRAWR.FTN;1 FPC----------SUBROUTINE--DRAWR-------------------------TEKTRONIX, INC.----00005600PC 00005610P SUBROUTINE DRAWR(X,Y) 00005620P CALL REL2AB(X,Y,RX,RY) 00005630P CALL DRAWA(RX,RY) 00005640P RETURN 00005650P END 00005660****DRAWSA.FTN;1 PC----------SUBROUTINE--DRAWSA------------------------TEKTRONIX, INC.----00002700PC 00002710P SUBROUTINE DRAWSA(X,Y) 00002720P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00002730P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00002740P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00002750P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00002760P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00002770P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00002780P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00002790P + KINLFT,KOTLFT,KUNIT 00002800P CALL LVLCHT 00002810P XOLD=TIMAGX 00002820P YOLD=TIMAGY 00002830P KEY=KEYCON 00002840P IF(KEYCON .LT. 1)KEY=5 00002850P IF(KEYCON .GT. 4)KEY=4 00002860PC * LINEAR LOG POLAR USER ERROR 00002870P GO TO (100, 100, 200, 400, 100),KEY 00002880PC * ERROR LINEAR LOG 00002890P100 CALL DRAWA(X,Y) 00002900P RETURN 00002910PC * POLAR 00002920P200 DX=X-XOLD 00002930P DY=Y-YOLD 00002940P YSTEP=0.0 00002950P IF(DY.NE.0.) YSTEP=SIGN(5.0/TRFACY,DY) 00002960P IF(ABS(DY*.75) .LE. ABS(YSTEP)) GO TO 100 00002970P FRAC=DX/DY 00002980P NSEG=(DY/YSTEP)+.9999 00002990P YOUT=YOLD 00003000P300 IF(NSEG .LT. 2) GO TO 100 00003010P YOUT=YOUT+YSTEP 00003020P XOUT=XOLD+(YOUT-YOLD)*FRAC 00003030P CALL DRAWA(XOUT,YOUT) 00003040P NSEG=NSEG-1 00003050P GO TO 300 00003060PC * USER SEGMENTATION 00003070P400 CONTINUE 00003080PC CALL USDRAW(X,Y) 00003090P GO TO 100 00003100P END 00003110****DRAWSR.FTN;1 OPC----------SUBROUTINE--DRAWSR------------------------TEKTRONIX, INC.----00002620PC 00002630P SUBROUTINE DRAWSR(X,Y) 00002640P CALL REL2AB(X,Y,RX,RY) 00002650P CALL DRAWSA(RX,RY) 00002660P RETURN 00002670P END 00002680****DRWABS.FTN;1 PC----------SUBROUTINE--DRWABS------------------------TEKTRONIX, INC.----00012380PC 00012390P SUBROUTINE DRWABS(IX,IY) 00012400P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00012410P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00012420P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00012430P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00012440P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00012450P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00012460P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00012470P + KINLFT,KOTLFT,KUNIT 00012480PC * NON-4014/15 PRUNING BOUNDARY 00012490PC * SET TERMINAL TO DRAW SOLID LINES 00012500PC * THIS SECTION IS FOR 4014 ENHANCED **********************************00012510P IF(KLINE .EQ. 0)GO TO 5 00012520P KLINE=0 00012530P CALL CWSEND 00012540P5 CONTINUE 00012550PC **********************************************************************00012560P IF(KKMODE.NE.1)CALL VECMOD 00012570P IF(KMOVEF.EQ.1)CALL XYCNVT(KBEAMX,KBEAMY) 00012580P CALL XYCNVT(IX,IY) 00012590P KGRAFL=0 00012600P RETURN 00012610P END 00012620****DRWREL.FTN;1 FPC----------SUBROUTINE--DRWREL------------------------TEKTRONIX, INC.----00012210PC 00012220P SUBROUTINE DRWREL(IX,IY) 00012230P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00012240P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00012250P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00012260P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00012270P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00012280P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00012290P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00012300P + KINLFT,KOTLFT,KUNIT 00012310P JX=KBEAMX+IX 00012320P JY=KBEAMY+IY 00012330P CALL DRWABS(JX,JY) 00012340P RETURN 00012350P END 00012360****DSHABS.FTN;1 KPC----------SUBROUTINE--DSHABS------------------------TEKTRONIX, INC.----00005420PC 00005430P SUBROUTINE DSHABS(IX,IY,L) 00005440P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00005450P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00005460P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00005470P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00005480P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00005490P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00005500P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00005510P + KINLFT,KOTLFT,KUNIT 00005520P CALL DSHMOD(L) 00005530P CALL TKDASH(IX,IY) 00005540PC * SET THE GRAPHIC LEVEL FLAG TO SCREEN 00005550P KGRAFL=0 00005560P RETURN 00005570P END 00005580****DSHMOD.FTN;1 APC----------SUBROUTINE--DSHMOD------------------------TEKTRONIX, INC.----00014060PC 00014070P SUBROUTINE DSHMOD(L) 00014080P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00014090P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00014100P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00014110P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00014120P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00014130P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00014140P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00014150P + KINLFT,KOTLFT,KUNIT 00014160PC * TEMPORARILY STORE KKMODE FOR GOTO TRANSFER 00014170P KTMODE=KKMODE+1 00014180P KKMODE=4 00014190P GOTO(4,10,3,3,10),KTMODE 00014200PC * OUTPUT (US) TO CANCEL PREVIOUS MODE 00014210P3 CALL TOUTPT(31) 00014220PC * CANCEL OPTIMIZATION AND INSERT MOVE TO CURRENT LOCATION 00014230P4 CALL TOUTPT(29) 00014240P KMOVEF=1 00014250P DO 5 I=1,5 00014260P5 KPCHAR(I)=-1 00014270P CALL XYCNVT(KBEAMX,KBEAMY) 00014280P10 KDASHT=L 00014290P RETURN 00014300P END 00014310****DSHREL.FTN;1 OPC----------SUBROUTINE--DSHREL------------------------TEKTRONIX, INC.----00005250PC 00005260P SUBROUTINE DSHREL(IX,IY,L) 00005270P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00005280P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00005290P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00005300P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00005310P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00005320P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00005330P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00005340P + KINLFT,KOTLFT,KUNIT 00005350P JX=IX+KBEAMX 00005360P JY=IY+KBEAMY 00005370P CALL DSHABS(JX,JY,L) 00005380P RETURN 00005390P END 00005400****DWINDO.FTN;1 KPC----------SUBROUTINE--DWINDO------------------------TEKTRONIX, INC.----00004680PC 00004690P SUBROUTINE DWINDO(XMIN,XMAX,YMIN,YMAX) 00004700P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00004710P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00004720P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00004730P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00004740P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00004750P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00004760P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00004770P + KINLFT,KOTLFT,KUNIT 00004780PC * DEFINE DATA WINDOW IN TERMINAL COMMON AREA 00004790P TMINVX=XMIN 00004800P TMAXVX=XMAX 00004810P TMINVY=YMIN 00004820P TMAXVY=YMAX 00004830P CALL RESCAL 00004840P RETURN 00004850P END 00004860****ERASE.FTN;1 MPC----------SUBROUTINE--ERASE-------------------------TEKTRONIX, INC.----00021300PC 00021310P SUBROUTINE ERASE 00021320P DIMENSION ICODE(2) 00021330P DATA ICODE(1),ICODE(2)/27,12/ 00021340P CALL TOUTST(2,ICODE) 00021350P CALL IOWAIT(10) 00021360P CALL RECOVR 00021370P RETURN 00021380P END 00021390****FINITT.FTN;1 APC----------SUBROUTINE--FINITT------------------------TEKTRONIX, INC.----00003790PC 00003800P SUBROUTINE FINITT(IX,IY) 00003810P CALL MOVABS(IX,IY) 00003820P CALL ALFMOD 00003830P CALL TSEND 00003840P STOP 00003850P RETURN 00003860P END 00003870****GENFLG.FTN;1 APC----------FUNCTION----GENFLG------------------------TEKTRONIX, INC.----00019250PC 00019260P LOGICAL FUNCTION GENFLG(ITEM) 00019270P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00019280P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00019290P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00019300P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00019310P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00019320P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00019330P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00019340P + KINLFT,KOTLFT,KUNIT 00019350P GENFLG=KGNFLG .EQ. ITEM 00019360P RETURN 00019370P END 00019380****HDCOPY.FTN;1 KPC----------SUBROUTINE--HDCOPY------------------------TEKTRONIX, INC.----00015490PC 00015500P SUBROUTINE HDCOPY 00015510P DIMENSION ICODE(2) 00015520P DATA ICODE(1),ICODE(2)/27,23/ 00015530PC * OUTPUT (ESC) (ETB) TO START HARD COPY 00015540P CALL TOUTST(2,ICODE) 00015550P CALL IOWAIT(180) 00015560P RETURN 00015570P END 00015580****HOME.FTN;1 APC----------SUBROUTINE--HOME--------------------------TEKTRONIX, INC.----00021140PC 00021150P SUBROUTINE HOME 00021160P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00021170P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00021180P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00021190P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00021200P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00021210P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00021220P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00021230P + KINLFT,KOTLFT,KUNIT 00021240P CALL MOVABS(KLMRGN,KHOMEY) 00021250P CALL ALFMOD 00021260P RETURN 00021270P END 00021280****INCPLT.FTN;1 KPC----------SUBROUTINE--INCPLT------------------------TEKTRONIX, INC.----00003130PC 00003140P SUBROUTINE INCPLT(IONOFF,IDIR,NO) 00003150P DIMENSION IPLTBL(8),KBMUP(10) 00003160P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00003170P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00003180P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00003190P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00003200P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00003210P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00003220P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00003230P + KINLFT,KOTLFT,KUNIT 00003240P DATA IPLTBL(1),IPLTBL(2),IPLTBL(3),IPLTBL(4)/4,5,1,9/ 00003250P DATA IPLTBL(5),IPLTBL(6),IPLTBL(7),IPLTBL(8)/8,10,2,6/ 00003260P DATA KBMUP(1),KBMUP(2),KBMUP(3),KBMUP(4),KBMUP(5)/0,1,1,1,0/ 00003270P DATA KBMUP(6),KBMUP(7),KBMUP(8),KBMUP(9),KBMUP(10)/-1,-1,-1,0,1/ 00003280P IF(KKMODE .NE. 3)CALL IPMOD 00003290P IPEN=32+IONOFF*48 00003300PC * THIS SECTION TO ACCOMMODATE PLOTTERS REQUIRING A SEPARATE PEN 00003310PC * CHARACTER -- IT MAY BE OMITTED IF NOT NEEDED ***********************00003320P CALL TOUTPT(IPEN) 00003330P IPEN=64 00003340PC **********************************************************************00003350P KMOVEF=IABS(IONOFF-1) 00003360P NDXPLT=MOD(IDIR,8)+1 00003370P IPLTCH=IPLTBL(NDXPLT)+IPEN 00003380P KBMUPX=KBMUP(NDXPLT) 00003390P KBMUPY=KBMUP(NDXPLT+2) 00003400P DO 10 I=1,NO 00003410P CALL TOUTPT(IPLTCH) 00003420P KBEAMX=KBEAMX+KBMUPX 00003430P10 KBEAMY=KBEAMY+KBMUPY 00003440P RETURN 00003450P END 00003460****INITT.FTN;1 OPC----------SUBROUTINE--INITT-------------------------TEKTRONIX, INC.----00017540PC 00017550P SUBROUTINE INITT(IBAUD) 00017560P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00017570P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00017580P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00017590P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00017600P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00017610P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00017620P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00017630P + KINLFT,KOTLFT,KUNIT 00017640P KBAUDR=IBAUD 00017650P KPAD2=KBAUDR/308+1 00017660P KGNMOD=0 00017670P KPADV=0 00017680P KOBLEN=80 00017690P KTERM=1 00017700P KFACTR=4 00017710PC * SET THE OUTPUT BUFFER FORMAT 00017720P CALL SETBUF(1) 00017730P KINLFT=0 00017740P KOTLFT=1 00017750P CALL RESET 00017760P CALL NEWPAG 00017770P RETURN 00017780P END 00017790****IOWAIT.FTN;1 IPC----------SUBROUTINE--IOWAIT------------------------TEKTRONIX, INC.----00022400PC 00022410P SUBROUTINE IOWAIT(ITIME) 00022420PC * THIS ROUTINE IS USED TO GENERATE DELAYS FOR REMOTE TERMINALS 00022430P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00022440P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00022450P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00022460P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00022470P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00022480P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00022490P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00022500P + KINLFT,KOTLFT,KUNIT 00022510P IF(KBAUDR.LE.0)GO TO 20 00022520P KOUNT=ITIME*(KBAUDR/10) 00022530P DO 10 J=1,KOUNT 00022540PC * OUTPUT (SYN) TO INSURE AGAINST LOSS OF OUTPUT WHILE 00022550PC * TERMINAL IS BUSY. (SYN) DOES NOT AFFECT THE TERMINAL. 00022560P10 CALL TOUTPT(22) 00022570P20 RETURN 00022580P END 00022590****IPMOD.FTN;1 OPC----------SUBROUTINE--IPMOD-------------------------TEKTRONIX, INC.----00023210PC 00023220P SUBROUTINE IPMOD 00023230P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00023240P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00023250P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00023260P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00023270P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00023280P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00023290P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00023300P + KINLFT,KOTLFT,KUNIT 00023310P DIMENSION ICODE(2) 00023320P DATA ICODE(1),ICODE(2)/31,30/ 00023330PC * OUTPUT (US) TO CANCEL PREVIOUS MODE AND (RS) TO SET INCPLT MODE 00023340P CALL TOUTST(2,ICODE) 00023350P KKMODE=3 00023360P KGRAFL=0 00023370P RETURN 00023380P END 00023390****KCM.FTN;1 PPC----------FUNCTION----KCM---------------------------TEKTRONIX, INC.----00015770PC 00015780P FUNCTION KCM(RC) 00015790P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00015800P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00015810P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00015820P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00015830P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00015840P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00015850P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00015860P + KINLFT,KOTLFT,KUNIT 00015870P KCM=RC*215.2/FLOAT(KFACTR) 00015880PC * USE APPROPRIATE FACTOR FOR LARGE SCREEN TERMINALS 00015890P IF(KTERM .GT. 1)KCM=RC*112.48/FLOAT(KFACTR) 00015900P RETURN 00015910P END 00015920****KIN.FTN;1 KPC----------FUNCTION----KIN---------------------------TEKTRONIX, INC.----00015600PC 00015610P FUNCTION KIN(RI) 00015620P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00015630P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00015640P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00015650P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00015660P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00015670P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00015680P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00015690P + KINLFT,KOTLFT,KUNIT 00015700P KIN=RI*546.0/FLOAT(KFACTR) 00015710PC * USE APPROPRIATE FACTOR FOR LARGE SCREEN TERMINALS 00015720P IF(KTERM .GT. 1)KIN=RI*285.7/FLOAT(KFACTR) 00015730P RETURN 00015740P END 00015750****LEFTIO.FTN;1 KPC----------FUNCTION----LEFTIO------------------------TEKTRONIX, INC.----00018370PC 00018380P FUNCTION LEFTIO(IOBUF) 00018390P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00018400P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00018410P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00018420P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00018430P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00018440P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00018450P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00018460P + KINLFT,KOTLFT,KUNIT 00018470P ITEMP=KINLFT 00018480P IF(IOBUF .EQ. 0)ITEMP=KOTLFT 00018490P LEFTIO=ITEMP 00018500P RETURN 00018510P END 00018520****LINEF.FTN;1 KPC----------SUBROUTINE--LINEF-------------------------TEKTRONIX, INC.----00020650PC 00020660P SUBROUTINE LINEF 00020670P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00020680P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00020690P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00020700P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00020710P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00020720P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00020730P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00020740P + KINLFT,KOTLFT,KUNIT 00020750PC * IF (LF) CAN NOT BE SENT REMOVE NEXT 2 EXECUTEABLE LINES AND 00020760PC * CHANGE @GO TO@ FROM 200 TO 100 00020770P IF(KKMODE .NE. 0)CALL ALFMOD 00020780PC * OUTPUT (LF) 00020790P CALL TOUTPT(10) 00020800P KBEAMY=KBEAMY-(KVERSZ+KFACTR/2)/KFACTR 00020810P IF(KBEAMY .GE. 0)GO TO 200 00020820P KBEAMY=KHOMEY 00020830P100 CALL MOVABS(KBEAMX,KBEAMY) 00020840P CALL ALFMOD 00020850PC * RESTORE ZAXIS MODE IF APPROPRIATE 00020860P200 IF(KTERM .GE. 2)CALL CWSEND 00020870P RETURN 00020880P END 00020890****LINHGT.FTN;1 APC----------FUNCTION----LINHGT------------------------TEKTRONIX, INC.----00024280PC 00024290P FUNCTION LINHGT(NUMLIN) 00024300P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00024310P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00024320P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00024330P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00024340P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00024350P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00024360P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00024370P + KINLFT,KOTLFT,KUNIT 00024380P LINHGT=(KVERSZ * NUMLIN + KFACTR/2)/KFACTR 00024390P RETURN 00024400P END 00024410****LINTRN.FTN;1 KPC----------SUBROUTINE--LINTRN------------------------TEKTRONIX, INC.----00008360PC 00008370P SUBROUTINE LINTRN 00008380P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00008390P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00008400P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00008410P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00008420P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00008430P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00008440P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00008450P + KINLFT,KOTLFT,KUNIT 00008460P KEYCON=1 00008470P CALL RESCAL 00008480P RETURN 00008490P END 00008500****LINWDT.FTN;1 KPC----------FUNCTION----LINWDT------------------------TEKTRONIX, INC.----00024130PC 00024140P FUNCTION LINWDT(NUMCHR) 00024150P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00024160P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00024170P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00024180P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00024190P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00024200P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00024210P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00024220P + KINLFT,KOTLFT,KUNIT 00024230P LINWDT=(KHORSZ * NUMCHR + KFACTR/2)/KFACTR 00024240P RETURN 00024250P END 00024260****LOGTRN.FTN;1 KPC----------SUBROUTINE--LOGTRN------------------------TEKTRONIX, INC.----00008520PC 00008530P SUBROUTINE LOGTRN(ITYPE) 00008540P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00008550P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00008560P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00008570P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00008580P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00008590P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00008600P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00008610P + KINLFT,KOTLFT,KUNIT 00008620P KEYCON=2 00008630P TRPAR1=ITYPE 00008640P CALL RESCAL 00008650P RETURN 00008660P END 00008670****LVLCHT.FTN;1 KPC----------SUBROUTINE--LVLCHT------------------------TEKTRONIX, INC.----00010800PC 00010810P SUBROUTINE LVLCHT 00010820P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00010830P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00010840P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00010850P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00010860P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00010870P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00010880P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00010890P + KINLFT,KOTLFT,KUNIT 00010900P IF(KGRAFL.NE.0)GO TO 10 00010910P CALL REVCOT(KBEAMX,KBEAMY,TREALX,TREALY) 00010920P TIMAGX=TREALX 00010930P TIMAGY=TREALY 00010940P KGRAFL=1 00010950P10 RETURN 00010960P END 00010970****MOVABS.FTN;1 APC----------SUBROUTINE--MOVABS------------------------TEKTRONIX, INC.----00022230PC 00022240P SUBROUTINE MOVABS(IX,IY) 00022250P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00022260P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00022270P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00022280P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00022290P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00022300P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00022310P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00022320P + KINLFT,KOTLFT,KUNIT 00022330P CALL VECMOD 00022340P CALL XYCNVT(IX,IY) 00022350P KGRAFL=0 00022360P RETURN 00022370P END 00022380****MOVEA.FTN;1 KPC----------SUBROUTINE--MOVEA-------------------------TEKTRONIX, INC.----00006430PC 00006440P SUBROUTINE MOVEA(X,Y) 00006450P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00006460P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00006470P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00006480P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00006490P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00006500P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00006510P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00006520P + KINLFT,KOTLFT,KUNIT 00006530P CALL LVLCHT 00006540PC * CONVERT TO SCREEN CO-ORDINATES 00006550P CALL V2ST(0,X,Y,IX,IY) 00006560PC * SKIP IF LINE COMPLETELY OUTSIDE WINDOW 00006570P IF(KGNFLG .EQ. 1)GO TO 10 00006580P CALL VECMOD 00006590P CALL XYCNVT(IX,IY) 00006600P10 RETURN 00006610P END 00006620****MOVER.FTN;1 PPC----------SUBROUTINE--MOVER-------------------------TEKTRONIX, INC.----00006180PC 00006190P SUBROUTINE MOVER(X,Y) 00006200P CALL REL2AB(X,Y,RX,RY) 00006210P CALL MOVEA(RX,RY) 00006220P RETURN 00006230P END 00006240****MOVREL.FTN;1 PC----------SUBROUTINE--MOVREL------------------------TEKTRONIX, INC.----00012800PC 00012810P SUBROUTINE MOVREL(IX,IY) 00012820P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00012830P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00012840P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00012850P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00012860P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00012870P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00012880P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00012890P + KINLFT,KOTLFT,KUNIT 00012900P JX=KBEAMX+IX 00012910P JY=KBEAMY+IY 00012920P CALL MOVABS(JX,JY) 00012930P RETURN 00012940P END 00012950****NEWLIN.FTN;1 KPC----------SUBROUTINE--NEWLIN------------------------TEKTRONIX, INC.----00020310PC 00020320P SUBROUTINE NEWLIN 00020330P CALL CARTN 00020340P CALL LINEF 00020350P RETURN 00020360P END 00020370****NEWPAG.FTN;1 PC----------SUBROUTINE--NEWPAG------------------------TEKTRONIX, INC.----00021780PC 00021790P SUBROUTINE NEWPAG 00021800P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00021810P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00021820P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00021830P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00021840P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00021850P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00021860P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00021870P + KINLFT,KOTLFT,KUNIT 00021880P DIMENSION ICODE(2) 00021890P DATA ICODE(1),ICODE(2)/27,12/ 00021900P IF(KKMODE .NE. 0)CALL ALFMOD 00021910PC * OUTPUT (ESC) (FF) FOR NEW PAGE 00021920P CALL TOUTST(2,ICODE) 00021930P CALL IOWAIT(10) 00021940P IF(KLMRGN.EQ.0)GO TO 10 00021950P CALL MOVABS(KLMRGN,KHOMEY) 00021960P CALL ALFMOD 00021970P GO TO 20 00021980P10 KBEAMX=0 00021990P KBEAMY=KHOMEY 00022000P20 RETURN 00022010P END 00022020****PARCLT.FTN;1 APC----------SUBROUTINE--PARCLT------------------------TEKTRONIX, INC.----00008170PC 00008180P SUBROUTINE PARCLT(RL1,RL2,RM1,RM2,RN1,RN2) 00008190P IF(RL1.LT.RM1)GO TO 10 00008200P IF(RL1.GT.RM2)GO TO 20 00008210P RN1=RL1 00008220P IF(RL2-RM1)30,40,40 00008230P10 RN1=RM1 00008240P40 IF(RL2.LE.RM2)GO TO 50 00008250P RN2=RM2 00008260P GO TO 60 00008270P50 RN2=RL2 00008280P GO TO 60 00008290P20 RN1=RM2 00008300P IF(RL2.GE.RM1)GO TO 50 00008310P30 RN2=RM1 00008320P60 RETURN 00008330P END 00008340****PCLIPT.FTN;1 OPC----------SUBROUTINE--PCLIPT------------------------TEKTRONIX, INC.----00011670PC 00011680P SUBROUTINE PCLIPT(X,Y) 00011690P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00011700P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00011710P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00011720P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00011730P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00011740P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00011750P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00011760P + KINLFT,KOTLFT,KUNIT 00011770P KGNFLG=0 00011780P IF(X.LT.TMINVX)GO TO 10 00011790P IF(X.GT.TMAXVX)GO TO 10 00011800P IF(Y.LT.TMINVY)GO TO 10 00011810P IF(Y.LE.TMAXVY)GO TO 20 00011820P10 KGNFLG=1 00011830P20 RETURN 00011840P END 00011850****PLTCHR.FTN;1 FPC----------SUBROUTINE--PLTCHR------------------------TEKTRONIX, INC.----00026710PC 00026720P SUBROUTINE PLTCHR(IX,IY,ICHAR) 00026730P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00026740P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00026750P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00026760P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00026770P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00026780P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00026790P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00026800P + KINLFT,KOTLFT,KUNIT 00026810P DIMENSION ICHAR(5) 00026820PC * CALCULATE THE PLOT CHARACTERS TO ARRIVE AT IX,IY 00026830PC * ORDER IS HIY, LSBYX, LOY, HIX, LOX 00026840P KX=IX*KFACTR 00026850P KY=IY*KFACTR 00026860P ICHAR(1)=MOD(KY/128,32)+32 00026870P ICHAR(2)=MOD(KY,4)*4+MOD(KX,4)+96 00026880P ICHAR(3)=MOD(KY/4,32)+96 00026890P ICHAR(4)=MOD(KX/128,32)+32 00026900P ICHAR(5)=MOD(KX/4,32)+64 00026910P IF(KBAUDR .LT. 480) GO TO 11 00026920P ITEMP=KPAD2-1 00026930P IF(KTERM .LT. 2) GO TO 10 00026940P ITEMP=IABS(KBEAMX-IX)+IABS(KBEAMY-IY) 00026950P ITEMP=ITEMP*KPAD2*KFACTR/8192 + 1 00026960P10 KPADV=ITEMP 00026970P11 CONTINUE 00026980P RETURN 00026990P END 00027000****PNTABS.FTN;1 TPC----------SUBROUTINE--PNTABS------------------------TEKTRONIX, INC.----00012040PC 00012050P SUBROUTINE PNTABS(IX,IY) 00012060P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00012070P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00012080P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00012090P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00012100P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00012110P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00012120P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00012130P + KINLFT,KOTLFT,KUNIT 00012140P IF(KKMODE .NE. 2)CALL PNTMOD 00012150P CALL TKPNT(IX,IY) 00012160P KGRAFL=0 00012170P RETURN 00012180P END 00012190****PNTMOD.FTN;1 KPC----------SUBROUTINE--PNTMOD------------------------TEKTRONIX, INC.----00023000PC 00023010P SUBROUTINE PNTMOD 00023020P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00023030P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00023040P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00023050P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00023060P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00023070P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00023080P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00023090P + KINLFT,KOTLFT,KUNIT 00023100PC * CANCEL PREVIOUS MODES - OUTPUT (US) 00023110P CALL TOUTPT(31) 00023120P DO 111 II=1,5 00023130P111 KPCHAR(II)=-1 00023140P KKMODE=2 00023150PC * FOR HARDWARE POINT PLOT OUTPUT AN (FS) 00023160P IF(KTERM .GE. 3)CALL TOUTPT(28) 00023170P RETURN 00023180P END 00023190****PNTREL.FTN;1 PPC----------SUBROUTINE--PNTREL------------------------TEKTRONIX, INC.----00011870PC 00011880P SUBROUTINE PNTREL(IX,IY) 00011890P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00011900P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00011910P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00011920P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00011930P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00011940P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00011950P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00011960P + KINLFT,KOTLFT,KUNIT 00011970P JX=KBEAMX+IX 00011980P JY=KBEAMY+IY 00011990P CALL PNTABS(JX,JY) 00012000P RETURN 00012010P END 00012020****POINTA.FTN;1 KPC----------SUBROUTINE--POINTA------------------------TEKTRONIX, INC.----00005680PC 00005690P SUBROUTINE POINTA(X,Y) 00005700P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00005710P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00005720P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00005730P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00005740P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00005750P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00005760P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00005770P + KINLFT,KOTLFT,KUNIT 00005780P CALL LVLCHT 00005790PC * CONVERT TO SCREEN CO-ORDINATES 00005800P CALL V2ST(0,X,Y,IX,IY) 00005810PC * SKIP IF LINE COMPLETELY OUTSIDE WINDOW 00005820P IF(KGNFLG .EQ. 1)GO TO 10 00005830P IF(KKMODE .NE. 2)CALL PNTMOD 00005840P CALL TKPNT(IX,IY) 00005850P10 RETURN 00005860P END 00005870****POINTR.FTN;1 PPC----------SUBROUTINE--POINTR------------------------TEKTRONIX, INC.----00004880PC 00004890P SUBROUTINE POINTR(X,Y) 00004900P CALL REL2AB(X,Y,RX,RY) 00004910P CALL POINTA(RX,RY) 00004920P RETURN 00004930P END 00004940****POLTRN.FTN;1 PC----------SUBROUTINE--POLTRN------------------------TEKTRONIX, INC.----00008690PC 00008700P SUBROUTINE POLTRN(ANGMIN,ANGMAX,RSUPRS) 00008710P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00008720P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00008730P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00008740P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00008750P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00008760P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00008770P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00008780P + KINLFT,KOTLFT,KUNIT 00008790P KEYCON=3 00008800P TRPAR1=ANGMIN 00008810P TRPAR2=ANGMAX 00008820P TRPAR5=RSUPRS 00008830P CALL PSCAL 00008840P RETURN 00008850P END 00008860****PSCAL.FTN;1 RPC----------SUBROUTINE--PSCAL-------------------------TEKTRONIX, INC.----00009520PC 00009530P SUBROUTINE PSCAL 00009540P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00009550P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00009560P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00009570P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00009580P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00009590P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00009600P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00009610P + KINLFT,KOTLFT,KUNIT 00009620P LOGICAL ANEG 00009630P ANEG=TRPAR1 .GT. TRPAR2 00009640PC * FLAG THE OLD VIRTUAL COORDINATES AS INCORRECT 00009650P KGRAFL=0 00009660P PIDV2=90.00 00009670PC * SET UP UNTRANSLATED TRIAL POLAR WINDOW 00009680P TRPAR3=0. 00009690P TRPAR4=0. 00009700P TRFACY=1. 00009710P TRPAR6=0. 00009720P R1=TMINVX 00009730P R2=TMAXVX 00009740P RMAX=AMAX1(ABS(R1),ABS(R2)) 00009750P TRFACX=1000./RMAX 00009760P THMIN=AMIN1(TRPAR1,TRPAR2) 00009770P THMAX=AMAX1(TRPAR2,TRPAR1) 00009780PC * FIND EXTREMES OF THE TRIAL POLAR WINDOW 00009790P CALL WINCOT(R1,THMIN,IX1,IY1) 00009800P CALL WINCOT(R1,THMAX,IX2,IY2) 00009810P CALL WINCOT(R2,THMIN,IX3,IY3) 00009820P CALL WINCOT(R2,THMAX,IX4,IY4) 00009830P IXMIN=MIN0(IX1,IX2,IX3,IX4) 00009840P IXMAX=MAX0(IX1,IX2,IX3,IX4) 00009850P IYMIN=MIN0(IY1,IY2,IY3,IY4) 00009860P IYMAX=MAX0(IY1,IY2,IY3,IY4) 00009870P X=THMIN/PIDV2 00009880P IF(THMIN.GT.0.)X=X+.999 00009890P QUAD=FLOAT(IFIX(X))*PIDV2 00009900P NQUAD=0 00009910PC * CHECK EXTREMES OF TRIAL WINDOW AT 90 DEGREE INTERVALS 00009920P200 IF(QUAD.GE.THMAX)GO TO 300 00009930P NQUAD=NQUAD+1 00009940P CALL WINCOT(R1,QUAD,IX1,IY1) 00009950P CALL WINCOT(R2,QUAD,IX2,IY2) 00009960P IXMIN=MIN0(IX1,IX2,IXMIN) 00009970P IXMAX=MAX0(IX1,IX2,IXMAX) 00009980P IYMIN=MIN0(IY1,IY2,IYMIN) 00009990P IYMAX=MAX0(IY1,IY2,IYMAX) 00010000P QUAD=QUAD+PIDV2 00010010P IF(NQUAD.LT.4)GO TO 200 00010020PC * COMPUTE SCREEN AND VIRTUAL RANGES 00010030P300 TSRANX=KMAXSX-KMINSX 00010040P TSRANY=KMAXSY-KMINSY 00010050P XRANGE=IXMAX-IXMIN 00010060P YRANGE=IYMAX-IYMIN 00010070PC * COMPUTE RELATIVE RADIUS SCALE FACTOR 00010080P FACTOR=AMIN1(ABS(TSRANX)/XRANGE,ABS(TSRANY)/YRANGE) 00010090PC * COMPUTE SCREEN OFFSETS 00010100P TRPAR3=FLOAT(KMINSX)-FACTOR*FLOAT(IXMIN) 00010110P TRPAR4=FLOAT(KMINSY)-FACTOR*FLOAT(IYMIN) 00010120PC * COMPUTE FINAL RADIUS SCALE FACTOR 00010130P TRFACX=TRFACX*FACTOR 00010140PC * COMPUTE ANGLE SCALE FACTOR 00010150P TRFACY=(TRPAR2-TRPAR1)/(TMAXVY-TMINVY) 00010160PC * APPLY CORRECT SIGN TO ANGLE SCALE FACTOR 00010170P TRFACY=SIGN(1.,TSRANX*TSRANY)*TRFACY 00010180P AANG=0. 00010190PC * APPLY CORRECTION FOR @REVERSED@ WINDOWS 00010200P IF(ANEG.AND.TSRANY.LT.0..OR.TSRANX.LT.0..AND..NOT.ANEG)AANG=180. 00010210PC * COMPUTE ANGLE OFFSET 00010220P TRPAR6=TMINVY-(TRPAR1+AANG)/TRFACY 00010230P RETURN 00010240P END 00010250****RECOVR.FTN;1 LPC----------SUBROUTINE--RECOVR------------------------TEKTRONIX, INC.----00021410PC 00021420P SUBROUTINE RECOVR 00021430P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00021440P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00021450P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00021460P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00021470P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00021480P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00021490P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00021500P + KINLFT,KOTLFT,KUNIT 00021510PC * SAVE THE GRAPHIC LEVEL FLAG 00021520P IFLAG=KGRAFL 00021530PC * REMOVE MOVE FLAG 00021540P KMOVEF=0 00021550PC * SAVE THE MODE 00021560P MODE=KKMODE+1 00021570PC * SAVE THE Y-COORDINATE 00021580P IY=KBEAMY 00021590PC * CLEAR ALL OTHER MODES 00021600P CALL ALFMOD 00021610PC * MOVE TO SCREEN LOCATION 00021620P CALL MOVABS(KBEAMX,IY) 00021630PC * SET THE HARDWARE DASH AND Z-AXIS WHEN NEEDED 00021640P IF(KTERM .GE. 2)CALL CWSEND 00021650PC * PLACE IN THE PROPER MODE 00021660P IF(MODE .LT. 1)MODE=1 00021670P IF(MODE .GT.5)MODE=5 00021680P GO TO (100,200,120,100,200),MODE 00021690P100 CALL ALFMOD 00021700P GO TO 200 00021710P120 CALL PNTMOD 00021720PC * RESTORE THE GRAPHIC LEVEL FLAG 00021730P200 KGRAFL=IFLAG 00021740P RETURN 00021750P END 00021760****REL2AB.FTN;1 OPC----------SUBROUTINE--REL2AB------------------------TEKTRONIX, INC.----00006260PC 00006270P SUBROUTINE REL2AB(XIN,YIN,XOUT,YOUT) 00006280P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00006290P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00006300P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00006310P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00006320P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00006330P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00006340P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00006350P + KINLFT,KOTLFT,KUNIT 00006360P CALL LVLCHT 00006370P XOUT=(((XIN*TRCOSF)-(YIN*TRSINF))*TRSCAL)+TIMAGX 00006380P YOUT=(((XIN*TRSINF)+(YIN*TRCOSF))*TRSCAL)+TIMAGY 00006390P RETURN 00006400P END 00006410****RESCAL.FTN;1 KPC----------SUBROUTINE--RESCAL------------------------TEKTRONIX, INC.----00008880PC 00008890P SUBROUTINE RESCAL 00008900P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00008910P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00008920P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00008930P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00008940P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00008950P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00008960P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00008970P + KINLFT,KOTLFT,KUNIT 00008980PC * FLAG THE OLD VIRTUAL COORDINATES AS INCORRECT 00008990P KGRAFL=0 00009000P KGNFLG=0 00009010P KEY=KEYCON 00009020P IF(KEYCON .LT. 1)KEY=5 00009030P IF(KEYCON .GT. 4)KEY=4 00009040PC * BRANCH TO PROPER SECTION AND RETURN 00009050PC * LINEAR LOG POLAR USER ERROR 00009060P GO TO (100,200,300,400,500),KEY 00009070PC * BOTH AXES LINEAR 00009080P100 TRPAR1=0. 00009090PC * SEMI LOG OR LOG LOG 00009100P200 KEYL=TRPAR1+1.001 00009110PC * X AXIS -- LINEAR OR LOG 00009120P GO TO (210,215,210,215),KEYL 00009130PC * LINEAR 00009140P210 TRFACX=FLOAT(KMAXSX-KMINSX)/(TMAXVX-TMINVX) 00009150P GO TO 250 00009160PC * PREVENT INVALID TRANSFORMATION 00009170P215 IF(TMINVX .GT. 0.0 .AND. TMAXVX .GT. 0.0)GO TO 220 00009180P KGNFLG=1 00009190P TRPAR1=TRPAR1-1.0 00009200P GO TO 210 00009210PC * SEMI LOG X AXIS 00009220P220 TRPAR2=ALOG(TMINVX) 00009230P TRFACX=FLOAT(KMAXSX-KMINSX)/(ALOG(TMAXVX)-TRPAR2) 00009240PC * Y AXIS -- LINEAR OR LOG 00009250P250 GO TO (260,260,270,270),KEYL 00009260PC * LINEAR 00009270P260 TRFACY=FLOAT(KMAXSY-KMINSY)/(TMAXVY-TMINVY) 00009280P GO TO 600 00009290PC * PREVENT INVALID TRANSFORMATION 00009300P270 IF(TMINVY .GT. 0.0 .AND. TMAXVY .GT. 0.0)GO TO 280 00009310P KGNFLG=1 00009320P TRPAR1=TRPAR1-2.0 00009330P GO TO 260 00009340PC * SEMI LOG Y AXIS 00009350P280 TRPAR3=ALOG(TMINVY) 00009360P TRFACY=FLOAT(KMAXSY-KMINSY)/(ALOG(TMAXVY)-TRPAR3) 00009370P GO TO 600 00009380PC * POLAR SCALING 00009390P300 CALL PSCAL 00009400P GO TO 600 00009410PC * USER FUNCTION 00009420P400 CONTINUE 00009430PC CALL URSCAL 00009440P GO TO 600 00009450PC * NO SCALE 00009460P500 TRFACX=1. 00009470P TRFACY=1. 00009480P600 RETURN 00009490P END 00009500****RESET.FTN;1 OPC----------SUBROUTINE--RESET-------------------------TEKTRONIX, INC.----00018540PC 00018550P SUBROUTINE RESET 00018560P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00018570P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00018580P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00018590P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00018600P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00018610P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00018620P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00018630P + KINLFT,KOTLFT,KUNIT 00018640P KEYCON=1 00018650P TRFACX=1. 00018660P TRFACY=1. 00018670P KBEAMX=0 00018680P KHOMEY=3068/KFACTR 00018690P KBEAMY=KHOMEY 00018700P KMINSX=0 00018710P KMAXSX=4095/KFACTR 00018720P KMINSY=0 00018730P KMAXSY=3120/KFACTR 00018740P KHORSZ=56 00018750P KLINE=0 00018760P KZAXIS=0 00018770P KLMRGN=0 00018780P KRMRGN=4096/KFACTR 00018790P KSIZEF=1 00018800P KTBLSZ=10 00018810P KVERSZ=88 00018820P TMINVX=0. 00018830P TMAXVX=KMAXSX 00018840P TMINVY=0. 00018850P TMAXVY=KMAXSY 00018860P TRCOSF=1. 00018870P TRSINF=0. 00018880P TRSCAL=1. 00018890PC * MOVE TO THE HOME POSITION 00018900P CALL MOVABS(KLMRGN,KHOMEY) 00018910PC * SET 4014 ENHANCED FOR SOLID LINES 00018920P IF(KTERM .GE. 3)CALL CWSEND 00018930PC * PLACE 4014 IN LARGE CHARACTER SIZE 00018940P IF(KTERM .GE. 2)CALL CHRSIZ(1) 00018950PC * PLACE THE TERMINAL IN A/N MODE 00018960P CALL ALFMOD 00018970P RETURN 00018980P END 00018990****RESTAT.FTN;1 CPC----------SUBROUTINE--RESTAT------------------------TEKTRONIX, INC.----00017260PC 00017270P SUBROUTINE RESTAT(RARRAY) 00017280P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00017290P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00017300P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00017310P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00017320P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00017330P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00017340P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00017350P + KINLFT,KOTLFT,KUNIT 00017360P DIMENSION RARRAY(60),IB(41),RB(19) 00017370P EQUIVALENCE (IB(1),KMOFLG(1)),(RB(1),TMINVX) 00017380PC * COPY GIVEN STATUS INTO TCS COMMON 00017390P DO 100 I=1,19 00017400P100 RB(I)=RARRAY(I) 00017410P DO 101 I=1,38 00017420P101 IB(I)=RARRAY(I+19) 00017430P IB(41)=RARRAY(60) 00017440PC * RESTORE CHARACTER SIZE 00017450P IF(KTERM .GT. 1)CALL CHRSIZ(KSIZEF) 00017460PC * RESTORE ZAXIS AND DASH LINE 00017470P IF(KTERM .GT. 2)CALL CWSEND 00017480PC * CALL TO RECOVER POSITION AND MODE 00017490P CALL RECOVR 00017500P RETURN 00017510P END 00017520****REVCOT.FTN;1 TPC----------SUBROUTINE--REVCOT------------------------TEKTRONIX, INC.----00010990PC 00011000P SUBROUTINE REVCOT(IX,IY,X,Y) 00011010P LOGICAL DEC 00011020P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00011030P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00011040P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00011050P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00011060P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00011070P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00011080P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00011090P + KINLFT,KOTLFT,KUNIT 00011100P E=2.7182818284 00011110P DX=FLOAT(IX-KMINSX)/TRFACX 00011120P DY=FLOAT(IY-KMINSY)/TRFACY 00011130P KEY=KEYCON 00011140P IF(KEYCON .LT. 1)KEY=5 00011150P IF(KEYCON .GT. 4)KEY=4 00011160PC * LINEAR LOG POLAR USER ERROR 00011170P GO TO(300, 400, 500, 600, 100 ),KEY 00011180PC * ERROR 00011190P100 X=IX 00011200P Y=IY 00011210P GO TO 700 00011220PC * LINEAR 00011230P300 X=DX+TMINVX 00011240P Y=DY+TMINVY 00011250P GO TO 700 00011260PC * LOG SCALES 00011270P400 KEYL=TRPAR1 00011280P X=DX+TMINVX 00011290P Y=DY+TMINVY 00011300P IF(KEYL .EQ. 1 .OR. KEYL .EQ. 3)X=E**(DX+TRPAR2) 00011310P IF(KEYL .EQ. 2 .OR. KEYL .EQ. 3)Y=E**(DY+TRPAR3) 00011320P GO TO 700 00011330PC * POLAR 00011340P500 DX=FLOAT(IX)-TRPAR3 00011350P DY=FLOAT(IY)-TRPAR4 00011360P Y=ATAN2(DY,DX)*57.2957795131 00011370P X=SQRT(DY*DY+DX*DX)/TRFACX+TRPAR5 00011380PC * ADJUST ANGLE MOD 2 PI TO VALUE WITHIN WINDOW 00011390P DEC=.FALSE. 00011400P510 IF(Y .GT. TRPAR1) GO TO 530 00011410PC * INCREMENT ANGLE 00011420P Y=Y+360.0 00011430P GO TO 510 00011440P530 IF(Y .LE. TRPAR2) GO TO 550 00011450PC * DECREMENT ANGLE 00011460P Y=Y-360.0 00011470P DEC=.TRUE. 00011480P GO TO 530 00011490P550 IF(DEC .AND. Y .LT. TRPAR1)Y=Y+360.0 00011500P IF(TMINVX .GE. 0.)GO TO 560 00011510P TR1A=AMOD(TRPAR1+180.,360.) 00011520P TR2A=AMOD(TRPAR2+180.,360.) 00011530P IF(Y.GT.AMAX1(TR1A,TR2A).OR.Y.LT.AMIN1(TR1A,TR2A))GO TO 560 00011540P Y=AMOD(Y+180.,360.) 00011550P X=-X 00011560P560 Y=Y/TRFACY+TRPAR6 00011570P GO TO 700 00011580PC * USER CONVERSION 00011590P600 CONTINUE 00011600PC CALL UREVCT(IX,IY,X,Y) 00011610PC * EXIT POINT 00011620P700 CALL PCLIPT(X,Y) 00011630P RETURN 00011640P END 00011650****RROTAT.FTN;1 OPC----------SUBROUTINE--RROTAT------------------------TEKTRONIX, INC.----00003480PC 00003490P SUBROUTINE RROTAT(DEG) 00003500P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00003510P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00003520P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00003530P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00003540P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00003550P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00003560P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00003570P + KINLFT,KOTLFT,KUNIT 00003580P TRSINF=SIN(DEG/57.29578) 00003590P TRCOSF=COS(DEG/57.29578) 00003600P RETURN 00003610P END 00003620****RSCALE.FTN;1 KPC----------SUBROUTINE--RSCALE------------------------TEKTRONIX, INC.----00003640PC 00003650P SUBROUTINE RSCALE(FACTOR) 00003660P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00003670P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00003680P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00003690P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00003700P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00003710P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00003720P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00003730P + KINLFT,KOTLFT,KUNIT 00003740P TRSCAL=FACTOR 00003750P RETURN 00003760P END 00003770****RSTTAB.FTN;1 KPC----------SUBROUTINE--RSTTAB------------------------TEKTRONIX, INC.----00013300PC 00013310P SUBROUTINE RSTTAB(ITAB,ITBTBL) 00013320P DIMENSION ITBTBL(80) 00013330P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00013340P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00013350P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00013360P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00013370P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00013380P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00013390P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00013400P + KINLFT,KOTLFT,KUNIT 00013410P IF(ITAB)10,20,30 00013420P30 DO 40 I=1,KTBLSZ 00013430P IF(ITAB.EQ.ITBTBL(I))GO TO 50 00013440P40 CONTINUE 00013450P GO TO 10 00013460P50 J=KTBLSZ-1 00013470P DO 60 K=I,J 00013480P60 ITBTBL(K)=ITBTBL(K+1) 00013490P ITBTBL(KTBLSZ)=0 00013500P GO TO 10 00013510P20 DO 21 II=1,KTBLSZ 00013520P21 ITBTBL(II)=0 00013530P10 RETURN 00013540P END 00013550****SCURSR.FTN;1 TPC----------SUBROUTINE--SCURSR------------------------TEKTRONIX, INC.----00016010PC 00016020P SUBROUTINE SCURSR(ICHAR,IX,IY) 00016030P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00016040P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00016050P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00016060P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00016070P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00016080P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00016090P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00016100P + KINLFT,KOTLFT,KUNIT 00016110P DIMENSION ICODE(2),IN(5) 00016120P DATA ICODE(1),ICODE(2)/27,26/ 00016130PC * SET THE GRAPHIC INPUT FLAG 00016140P KGNMOD=1 00016150PC * OUTPUT (ESC) (SUB) TO TURN ON CURSOR 00016160P IF(KTERM .GT. 0)CALL TOUTST(2,ICODE) 00016170PC * CURSER SHOULD ALWAYS INPUT A NEW BUFFER 00016180P KINLFT=0 00016190P CALL TINSTR(5,IN) 00016200PC * REMOVE THE GRAPHIC INPUT FLAG 00016210P KGNMOD=0 00016220PC * RESTORE THE TERMINAL STATUS 00016230P CALL RECOVR 00016240P ICHAR=IN(1) 00016250PC * DECODE SCREEN CO-ORDINATES 00016260P IX=MOD(IN(2),32)*32+MOD(IN(3),32) 00016270P IY=MOD(IN(4),32)*32+MOD(IN(5),32) 00016280PC * APPLY SCREEN SCALE FACTOR 00016290P IX=IX*4/KFACTR 00016300P IY=IY*4/KFACTR 00016310P RETURN 00016320P END 00016330****SEEBUF.FTN;1 YPC----------SUBROUTINE--SEEBUF------------------------TEKTRONIX, INC.----00017970PC 00017980P SUBROUTINE SEEBUF(KFORM) 00017990P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00018000P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00018010P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00018020P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00018030P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00018040P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00018050P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00018060P + KINLFT,KOTLFT,KUNIT 00018070P KFORM=KUNIT 00018080P RETURN 00018090P END 00018100****SEEDW.FTN;1 KPC----------SUBROUTINE--SEEDW-------------------------TEKTRONIX, INC.----00000940PC 00000950P SUBROUTINE SEEDW(XMIN,XMAX,YMIN,YMAX) 00000960P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00000970P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00000980P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00000990P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00001000P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00001010P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00001020P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00001030P + KINLFT,KOTLFT,KUNIT 00001040P XMIN=TMINVX 00001050P XMAX=TMAXVX 00001060P YMIN=TMINVY 00001070P YMAX=TMAXVY 00001080P RETURN 00001090P END 00001100****SEELOC.FTN;1 MPC----------SUBROUTINE--SEELOC------------------------TEKTRONIX, INC.----00017810PC 00017820P SUBROUTINE SEELOC(IX,IY) 00017830P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00017840P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00017850P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00017860P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00017870P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00017880P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00017890P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00017900P + KINLFT,KOTLFT,KUNIT 00017910P IX=KBEAMX 00017920P IY=KBEAMY 00017930P RETURN 00017940P END 00017950****SEEMOD.FTN;1 KPC----------SUBROUTINE--SEEMOD------------------------TEKTRONIX, INC.----00001120PC 00001130P SUBROUTINE SEEMOD(LINE,IZAXIS,MODE) 00001140P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00001150P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00001160P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00001170P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00001180P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00001190P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00001200P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00001210P + KINLFT,KOTLFT,KUNIT 00001220P LINE=KLINE 00001230P IZAXIS=KZAXIS 00001240P MODE=KKMODE 00001250P RETURN 00001260P END 00001270****SEEMRG.FTN;1 KPC----------SUBROUTINE--SEEMRG------------------------TEKTRONIX, INC.----00000420PC 00000430P SUBROUTINE SEEMRG(MLEFT,MRIGHT) 00000440P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00000450P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00000460P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00000470P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00000480P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00000490P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00000500P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00000510P + KINLFT,KOTLFT,KUNIT 00000520P MLEFT=KLMRGN 00000530P MRIGHT=KRMRGN 00000540P RETURN 00000550P END 00000560****SEEREL.FTN;1 KPC----------SUBROUTINE--SEEREL------------------------TEKTRONIX, INC.----00001460PC 00001470P SUBROUTINE SEEREL(RCOS,RSIN,SCALE) 00001480P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00001490P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00001500P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00001510P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00001520P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00001530P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00001540P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00001550P + KINLFT,KOTLFT,KUNIT 00001560P RCOS=TRCOSF 00001570P RSIN=TRSINF 00001580P SCALE=TRSCAL 00001590P RETURN 00001600P END 00001610****SEETRM.FTN;1 KPC----------SUBROUTINE--SEETRM------------------------TEKTRONIX, INC.----00000580PC 00000590P SUBROUTINE SEETRM(IBAUDR,ITERM,ICSIZE,MAXSCR) 00000600P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00000610P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00000620P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00000630P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00000640P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00000650P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00000660P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00000670P + KINLFT,KOTLFT,KUNIT 00000680P IBAUDR=KBAUDR 00000690P ITERM=KTERM 00000700P ICSIZE=KSIZEF 00000710P MAXSCR=4095/KFACTR 00000720P RETURN 00000730P END 00000740****SEETRN.FTN;1 BPC----------SUBROUTINE--SEETRN------------------------TEKTRONIX, INC.----00001290PC 00001300P SUBROUTINE SEETRN(XFAC,YFAC,KEY) 00001310P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00001320P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00001330P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00001340P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00001350P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00001360P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00001370P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00001380P + KINLFT,KOTLFT,KUNIT 00001390P XFAC=TRFACX 00001400P YFAC=TRFACY 00001410P KEY=KEYCON 00001420P RETURN 00001430P END 00001440****SEETW.FTN;1 KPC----------SUBROUTINE--SEETW-------------------------TEKTRONIX, INC.----00000760PC 00000770P SUBROUTINE SEETW(MINX,MAXX,MINY,MAXY) 00000780P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00000790P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00000800P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00000810P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00000820P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00000830P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00000840P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00000850P + KINLFT,KOTLFT,KUNIT 00000860P MINX=KMINSX 00000870P MAXX=KMAXSX 00000880P MINY=KMINSY 00000890P MAXY=KMAXSY 00000900P RETURN 00000910P END 00000920****SETBUF.FTN;1 IPC----------SUBROUTINE--SETBUF------------------------TEKTRONIX, INC.----00018120PC 00018130P SUBROUTINE SETBUF(KFORM) 00018140P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00018150P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00018160P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00018170P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00018180P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00018190P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00018200P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00018210P + KINLFT,KOTLFT,KUNIT 00018220P KUNIT=KFORM 00018230PC * CHECK FOR OUT OF BOUNDS FORMAT TYPES 00018240P IF(KUNIT .LT. 1)KUNIT=1 00018250P IF(KUNIT .GT. 4)KUNIT=4 00018260PC * SET MAXIMUM OUTPT CHAR COUNT DEPENDING ON BUFFER TYPE 00018270P IF(KUNIT .GE. 3) GO TO 1 00018280P KACHAR=KOBLEN-11-KPAD2 00018290P KTRAIL=1 00018300P RETURN 00018310P1 KACHAR=KOBLEN 00018320P KTRAIL=0 00018330P RETURN 00018340P END 00018350****SETMRG.FTN;1 TPC----------SUBROUTINE--SETMRG------------------------TEKTRONIX, INC.----00012640PC 00012650P SUBROUTINE SETMRG(MLEFT,MRIGHT) 00012660P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00012670P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00012680P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00012690P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00012700P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00012710P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00012720P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00012730P + KINLFT,KOTLFT,KUNIT 00012740P KLMRGN=MLEFT 00012750P KRMRGN=MRIGHT 00012760P RETURN 00012770P END 00012780****SETTAB.FTN;1 KPC----------SUBROUTINE--SETTAB------------------------TEKTRONIX, INC.----00012970PC 00012980P SUBROUTINE SETTAB(ITAB,ITBTBL) 00012990P DIMENSION ITBTBL(1) 00013000P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00013010P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00013020P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00013030P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00013040P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00013050P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00013060P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00013070P + KINLFT,KOTLFT,KUNIT 00013080P KGNFLG=0 00013090P IF(ITAB.LE.0)GO TO 10 00013100P I=1 00013110P20 IF(ITBTBL(I).EQ.ITAB)GO TO 10 00013120P IF(ITAB.LT.ITBTBL(I))GO TO 60 00013130P IF(ITBTBL(I).EQ.0)GO TO 60 00013140P I=I+1 00013150P IF(I.LE.KTBLSZ)GO TO 20 00013160P30 KGNFLG=1 00013170P10 RETURN 00013180P60 ITEMP=ITBTBL(I) 00013190P ITBTBL(I)=ITAB 00013200P70 IF(ITEMP.EQ.0)GO TO 10 00013210P I=I+1 00013220P IF(I.GT.KTBLSZ)GO TO 30 00013230P ITEMPA=ITBTBL(I) 00013240P ITBTBL(I)=ITEMP 00013250P ITEMP=ITEMPA 00013260P GO TO 70 00013270P END 00013280****SVSTAT.FTN;1 FPC----------SUBROUTINE--SVSTAT------------------------TEKTRONIX, INC.----00017050PC 00017060P SUBROUTINE SVSTAT(RARRAY) 00017070P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00017080P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00017090P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00017100P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00017110P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00017120P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00017130P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00017140P + KINLFT,KOTLFT,KUNIT 00017150P DIMENSION RARRAY(60),IB(41),RB(19) 00017160P EQUIVALENCE (IB(1),KMOFLG(1)),(RB(1),TMINVX) 00017170PC * COPY TERMINAL STATUS AREA INTO GIVEN SAVE ARRAY 00017180P DO 100 I=1,19 00017190P100 RARRAY(I)=RB(I) 00017200P DO 101 I=1,41 00017210P101 RARRAY(I+19)=IB(I) 00017220P RETURN 00017230P END 00017240****SWINDO.FTN;1 OPC----------SUBROUTINE--SWINDO------------------------TEKTRONIX, INC.----00004280PC 00004290P SUBROUTINE SWINDO(MINX,LENX,MINY,LENY) 00004300P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00004310P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00004320P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00004330P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00004340P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00004350P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00004360P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00004370P + KINLFT,KOTLFT,KUNIT 00004380PC * DEFINE SCREEN WINDOW IN TERMINAL COMMON AREA 00004390P KMINSX=MINX 00004400P KMAXSX=MINX+LENX 00004410P KMINSY=MINY 00004420P KMAXSY=MINY+LENY 00004430P CALL RESCAL 00004440P RETURN 00004450P END 00004460****TABHOR.FTN;1 MPC----------SUBROUTINE--TABHOR------------------------TEKTRONIX, INC.----00013570PC 00013580P SUBROUTINE TABHOR(ITBTBL) 00013590P DIMENSION ITBTBL(80) 00013600P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00013610P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00013620P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00013630P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00013640P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00013650P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00013660P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00013670P + KINLFT,KOTLFT,KUNIT 00013680P KFLG=0 00013690P DO 10 K=1,KTBLSZ 00013700P IF(ITBTBL(K).NE.0)KFLG=1 00013710P IF(ITBTBL(K).GT.KBEAMX)GO TO 20 00013720P10 CONTINUE 00013730P IF(KFLG.EQ.0)GO TO 30 00013740P15 CALL NEWLIN 00013750P GO TO 30 00013760P20 IF (ITBTBL(K).GE.KRMRGN) GO TO 15 00013770P CALL MOVABS(ITBTBL(K),KBEAMY) 00013780P CALL ALFMOD 00013790P30 RETURN 00013800P END 00013810****TABVER.FTN;1 OPC----------SUBROUTINE--TABVER------------------------TEKTRONIX, INC.----00013830PC 00013840P SUBROUTINE TABVER(ITBTBL) 00013850P DIMENSION ITBTBL (80) 00013860P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00013870P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00013880P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00013890P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00013900P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00013910P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00013920P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00013930P + KINLFT,KOTLFT,KUNIT 00013940P DO 10 K=1,KTBLSZ 00013950P I=KTBLSZ-K+1 00013960P IF(ITBTBL(I) .LE. 0)GO TO 10 00013970P IF(ITBTBL(I) .LT. KBEAMY)GO TO 30 00013980P10 CONTINUE 00013990P GO TO 20 00014000P30 CALL MOVABS(KBEAMX,ITBTBL(I)) 00014010P CALL ALFMOD 00014020P20 RETURN 00014030P END 00014040****TCSLEV.FTN;1 OPC----------SUBROUTINE--TCSLEV------------------------TEKTRONIX, INC.----00001780PC 00001790P SUBROUTINE TCSLEV(LEVEL) 00001800PC * TCSLEV RETURNS THE LEVEL AND THE LAST MODIFICATION DATE OF THE 00001810PC * SOFTWARE. IT SHOULD BE UPDATED WHENEVER A MODIFICATION IS MADE. 00001820P DIMENSION LEVEL(3) 00001830PC * LEVEL (1) IS THE YEAR OF LAST MODIFICATION 00001840P LEVEL(1)=80 00001850PC * LEVEL (2) IS THE DAY OF LAST MODIFICATION 00001860P LEVEL(2)=25 00001870PC * LEVEL (3) IS THE LEVEL NUMBER 00001880P LEVEL(3)=2 00001890P RETURN 00001900P END 00001910****TERM.FTN;1 EPC----------SUBROUTINE--TERM--------------------------TEKTRONIX, INC.----00001930PC 00001940P SUBROUTINE TERM(ITERM,ISCAL) 00001950P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00001960P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00001970P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00001980P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00001990P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00002000P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00002010P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00002020P + KINLFT,KOTLFT,KUNIT 00002030P KTERM=ITERM 00002040P KFACTR=4 00002050P IF(ISCAL .GT. 1024)KFACTR=1 00002060P CALL RESET 00002070P RETURN 00002080P END 00002090****TINPUT.FTN;1 TPC----------SUBROUTINE--TINPUT------------------------TEKTRONIX, INC.----00016590PC 00016600P SUBROUTINE TINPUT(IN) 00016610P DIMENSION INT(1) 00016620P CALL TINSTR(1,INT) 00016630P IN=INT(1) 00016640P RETURN 00016650P END 00016660****TINSTR.FTN;1 UPC----------SUBROUTINE--TINSTR------------------------TEKTRONIX, INC.----00016680PC 00016690P SUBROUTINE TINSTR (NCHAR,IADE) 00016700P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00016710P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00016720P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00016730P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00016740P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00016750P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00016760P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00016770P + KINLFT,KOTLFT,KUNIT 00016780P DIMENSION INBUFF(80),IADE(80) 00016790P DATA ISENT,IGOT,IPAD/0,0,32/ 00016800P IF(KINLFT .GT. 0)GO TO 10 00016810PC * REQUEST A NEW INPUT BUFFER 00016820PC * PUT OUT THE OUTPUT BUFFER 00016830P CALL TSEND 00016840P CALL ADEIN(IGOT,INBUFF) 00016850P IF(KTERM.GE.3) CALL CWSEND 00016860P ISENT=0 00016870P KINLFT=IGOT 00016880P10 LEN=NCHAR 00016890P IF(LEN .LE. 0)GO TO 50 00016900P DO 20 I=1,LEN 00016910P ISENT=ISENT+1 00016920P ITMP=I 00016930P IF(ISENT .GT. IGOT)GO TO 30 00016940P20 IADE(I)=INBUFF(ISENT) 00016950P KINLFT=IGOT-ISENT 00016960P GO TO 50 00016970PC * PAD WITH BLANKS WHEN NEEDED 00016980P30 DO 40 I=ITMP,LEN 00016990P40 IADE(I)=IPAD 00017000P KINLFT=0 00017010P50 RETURN 00017020P END 00017030****TKDASH.FTN;1 PC----------SUBROUTINE--TKDASH------------------------TEKTRONIX, INC.----00014330PC 00014340P SUBROUTINE TKDASH(IX,IY) 00014350P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00014360P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00014370P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00014380P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00014390P + KBAUDR,KERROR,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00014400P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00014410P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00014420P + KINLFT,KOTLFT,KUNIT 00014430P DIMENSION DTABL(10), U(9), WORK(10),ISIMHD(4) 00014440P DATA ISIMHD(1),ISIMHD(2),ISIMHD(3),ISIMHD(4)/12,31212,32,52/ 00014450P DATA IDTYPE/-1/ 00014460P DATA U(1),U(2),U(3),U(4),U(5)/5.,-5.,10.,-10.,25./ 00014470P DATA U(6),U(7),U(8),U(9)/-25.,50.,-50.,0./ 00014480P DATA LASTX,LASTY/-1,-1/ 00014490P DATA DTABL(2)/0./ 00014500P IF(KDASHT .LT. 0)GO TO 320 00014510P IF(KDASHT .GT. 4)GO TO 101 00014520PC * SET TERMINAL FOR HARDWARE DASHED LINES 00014530PC * THIS SECTION IS FOR 4014 ENHANCED **********************************00014540P IF(KTERM .GE. 3)GO TO 103 00014550P IF(KDASHT .EQ. 0)GO TO 330 00014560PC **********************************************************************00014570PC * HARDWARE DASH SIMULATION FOR TYPE 1 + 2 TERMINALS 00014580P KDASHT=ISIMHD(KDASHT) 00014590P101 CONTINUE 00014600PC * THIS SECTION IS ALSO FOR 4014 ENHANCED *****************************00014610P IF(KLINE .EQ. 0)GO TO 104 00014620P KLINE=0 00014630P CALL CWSEND 00014640P GO TO 104 00014650PC * SET AND TRANSMIT HARDWARE DASH CODE 00014660P103 IF(KLINE .EQ. KDASHT)GO TO 330 00014670P KLINE=KDASHT 00014680P CALL CWSEND 00014690P GO TO 330 00014700P104 CONTINUE 00014710PC **********************************************************************00014720P IF(KDASHT .EQ. 0)GO TO 330 00014730P IF(KDASHT .EQ. IDTYPE)GO TO 170 00014740PC * BUILD NEW DASH TABLE 00014750P ICHAR=KDASHT 00014760P DO 140 NO=1,10 00014770P120 IF(ICHAR)130,150,130 00014780P130 I=ICHAR-((ICHAR/10)*10) 00014790P ICHAR=ICHAR/10 00014800P IF(I)140,120,140 00014810P140 WORK(NO)=U(I) 00014820P NO=11 00014830P150 NO=NO-1 00014840PC * INVERT TABLE AND STORE IN DTABLE 00014850P DO 160 I=1,NO 00014860P ISUB=NO+1-I 00014870P160 DTABL(I)=WORK(ISUB) 00014880PC * MODIFIY TABLE TO COMPENSATE FOR FLARE 00014890P D1=DTABL(1) 00014900P NUM=NO-1 00014910P DO 165 K=1,NUM 00014920P DCUR=DTABL(K) 00014930P IF(DCUR*DTABL(K+1).GT.0. .OR. DCUR*D1 .LT.0.)GO TO 165 00014940P DTABL(K)=DTABL(K)-1. 00014950P DTABL(K+1)=DTABL(K+1)-1. 00014960P165 CONTINUE 00014970P IDTYPE=KDASHT 00014980P I=0 00014990P SEGLEN=0 00015000PC * BRANCH FOR ALTERNATING AND SOLID 00015010P170 IF(NO-1)320,330,180 00015020P180 IF(LASTX-KBEAMX)200,190,200 00015030P190 IF(LASTY-KBEAMY)200,210,200 00015040PC * SET START OF SEQUENCE IF NOT INTERRUPTED BY A MOVE 00015050P200 SEGLEN=0 00015060P I=0 00015070PC * COMPUTE NEXT SEGMENT LENGTH 00015080P210 X=FLOAT(KBEAMX) 00015090P Y=FLOAT(KBEAMY) 00015100P DX=FLOAT(IX-KBEAMX) 00015110P DY=FLOAT(IY-KBEAMY) 00015120P DIAG=SQRT(DX*DX+DY*DY) 00015130P DIST=DIAG 00015140P IF (SEGLEN-1.5)220,220,230 00015150P220 I=MOD(I,NO)+1 00015160P SEGLEN=ABS(DTABL(I)) 00015170P230 IF(SEGLEN-DIST)240,270,270 00015180P240 F=SEGLEN/DIAG 00015190P X=X+DX*F 00015200P Y=Y+DY*F 00015210P IF (DTABL(I))250,250,260 00015220PC * OUTPUT A GS FOR A DARK VECTOR 00015230P250 CALL TOUTPT(29) 00015240P KMOVEF=1 00015250P260 CALL XYCNVT(IFIX(X),IFIX(Y)) 00015260PC * CALCULATE REMAINING DISTANCE TO POINT 00015270P DIST=DIST-SEGLEN 00015280P SEGLEN=0 00015290P GO TO 220 00015300P270 IF(DTABL(I))280,280,290 00015310P280 CALL TOUTPT(29) 00015320P KMOVEF=1 00015330PC * THAT WAS A GS FOR AN INVISIBLE LINE 00015340P290 CALL XYCNVT(IX,IY) 00015350P LASTX=IX 00015360P LASTY=IY 00015370PC * CALCULATE SEGMENT FRAGMENT UNUSED 00015380P SEGLEN=SEGLEN-DIST 00015390P GO TO 340 00015400P320 CALL TOUTPT(29) 00015410P KMOVEF=1 00015420P330 CALL XYCNVT(IX,IY) 00015430P NO=1-NO 00015440P IDTYPE=KDASHT 00015450P340 RETURN 00015460P END 00015470****TKPNT.FTN;1 MPC----------SUBROUTINE--TKPNT-------------------------TEKTRONIX, INC.----00019010PC 00019020P SUBROUTINE TKPNT(IX,IY) 00019030P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00019040P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00019050P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00019060P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00019070P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00019080P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00019090P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00019100P + KINLFT,KOTLFT,KUNIT 00019110PC * THIS SECTION IS FOR 4014 ENHANCED **********************************00019120P IF(KTERM .GE. 3)GO TO 10 00019130PC **********************************************************************00019140PC * PUT OUT A GS FOR SIMULATED POINT PLOT MODE 00019150P CALL TOUTPT(29) 00019160P KMOVEF=1 00019170PC * MOVE TO POINT 00019180P CALL XYCNVT(IX,IY) 00019190PC * DRAW POINT 00019200P10 CALL XYCNVT(IX,IY) 00019210P RETURN 00019220P END 00019230****TOUTPT.FTN;1 EPC----------SUBROUTINE--TOUTPT------------------------TEKTRONIX, INC.----00025210PC 00025220P SUBROUTINE TOUTPT(KKOUT) 00025230P DIMENSION KOUT(1) 00025240P KOUT(1)=KKOUT 00025250P CALL TOUTST(1,KOUT) 00025260P RETURN 00025270P END 00025280****TOUTST.FTN;1 UPC----------SUBROUTINE--TOUTST------------------------TEKTRONIX, INC.----00025300PC 00025310P SUBROUTINE TOUTST(LEN,IADE) 00025320P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00025330P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00025340P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00025350P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00025360P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00025370P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00025380P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00025390P + KINLFT,KOTLFT,KUNIT 00025400P DIMENSION IADE(80) 00025410P LENOUT=LEN 00025420P IF(LENOUT .GT. KACHAR)LENOUT=KACHAR 00025430P CALL BUFFPK(LENOUT,IADE) 00025440P RETURN 00025450P END 00025460****TSEND.FTN;1 IPC----------SUBROUTINE--TSEND-------------------------TEKTRONIX, INC.----00025130PC 00025140P SUBROUTINE TSEND 00025150P DIMENSION ITEMP(1) 00025160P CALL BUFFPK(0,ITEMP) 00025170P RETURN 00025180P END 00025190****TTBLSZ.FTN;1 PC----------SUBROUTINE--TTBLSZ------------------------TEKTRONIX, INC.----00001630PC 00001640P SUBROUTINE TTBLSZ(ITBLSZ) 00001650P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00001660P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00001670P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00001680P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00001690P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00001700P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00001710P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00001720P + KINLFT,KOTLFT,KUNIT 00001730P KTBLSZ=ITBLSZ 00001740P RETURN 00001750P END 00001760****TWINDO.FTN;1 KPC----------SUBROUTINE--TWINDO------------------------TEKTRONIX, INC.----00004480PC 00004490P SUBROUTINE TWINDO(MINX,MAXX,MINY,MAXY) 00004500P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00004510P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00004520P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00004530P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00004540P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00004550P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00004560P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00004570P + KINLFT,KOTLFT,KUNIT 00004580PC * DEFINE TERMINAL WINDOW IN TERMINAL COMMON AREA 00004590P KMINSX=MINX 00004600P KMAXSX=MAXX 00004610P KMINSY=MINY 00004620P KMAXSY=MAXY 00004630P CALL RESCAL 00004640P RETURN 00004650P END 00004660****VCURSR.FTN;1 MPC----------SUBROUTINE--VCURSR------------------------TEKTRONIX, INC.----00006640PC 00006650P SUBROUTINE VCURSR(ICHAR,X,Y) 00006660P CALL SCURSR(ICHAR,IXA,IYA) 00006670P CALL REVCOT(IXA,IYA,X,Y) 00006680P RETURN 00006690P END 00006700****VECMOD.FTN;1 PC----------SUBROUTINE--VECMOD------------------------TEKTRONIX, INC.----00022610PC 00022620P SUBROUTINE VECMOD 00022630P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00022640P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00022650P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00022660P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00022670P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00022680P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00022690P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00022700P + KINLFT,KOTLFT,KUNIT 00022710P IF(KKMODE.EQ.1)GO TO 10 00022720PC * OUTPUT (US) TO ENTER A/N MODE AND RESET FOR VECTOR MODE 00022730P CALL TOUTPT(31) 00022740P DO 112 II=1,5 00022750P112 KPCHAR(II)=-1 00022760P KKMODE=1 00022770PC * OUTPUT (GS) TO ENTER VECTOR MODE 00022780P10 CALL TOUTPT(29) 00022790P KMOVEF=1 00022800P RETURN 00022810P END 00022820****VWINDO.FTN;1 KPC----------SUBROUTINE--VWINDO------------------------TEKTRONIX, INC.----00004080PC 00004090P SUBROUTINE VWINDO(XMIN,XRANGE,YMIN,YRANGE) 00004100P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00004110P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00004120P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00004130P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00004140P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00004150P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00004160P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00004170P + KINLFT,KOTLFT,KUNIT 00004180PC * DEFINE VIRTUAL WINDOW IN TERMINAL COMMON AREA 00004190P TMINVX=XMIN 00004200P TMAXVX=XMIN+XRANGE 00004210P TMINVY=YMIN 00004220P TMAXVY=YMIN+YRANGE 00004230P CALL RESCAL 00004240P RETURN 00004250P END 00004260****V2ST.FTN;1 MPC----------SUBROUTINE--V2ST--------------------------TEKTRONIX, INC.----00006720PC 00006730P SUBROUTINE V2ST(I,X,Y,IX,IY) 00006740P DIMENSION BUFIN(4),BFOUT(4) 00006750P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00006760P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00006770P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00006780P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00006790P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00006800P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00006810P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00006820P + KINLFT,KOTLFT,KUNIT 00006830P EQUIVALENCE (BUFIN(1),XS),(BUFIN(2),YS),(BUFIN(3),XE), 00006840P 1(BUFIN(4),YE) 00006850P EQUIVALENCE (BFOUT(1),CXS),(BFOUT(2),CYS),(BFOUT(3),CXE), 00006860P 1 (BFOUT(4),CYE) 00006870P XE=X 00006880P YE=Y 00006890PC * POINT OR MOVE 00006900P IF(I .EQ. 0) GO TO 10 00006910PC * BRIGHT VECTOR 00006920P XS=TIMAGX 00006930P YS=TIMAGY 00006940PC * CLIP VECTOR 00006950P CALL CLIPT(BUFIN,BFOUT) 00006960PC * ON SCREEN 00006970P IF(KGNFLG .EQ. 1) GO TO 110 00006980PC * ARE WE AT START POINT 00006990P IF(CXS .EQ. TREALX .AND. CYS .EQ. TREALY) GO TO 120 00007000PC * MOVE BEAM TO START POINT 00007010P MODE=KKMODE 00007020P CALL VECMOD 00007030P CALL WINCOT(CXS,CYS,IX,IY) 00007040P CALL XYCNVT(IX,IY) 00007050P KKMODE=MODE 00007060P GO TO 120 00007070PC * POINT OR MOVE 00007080P10 CALL PCLIPT(XE,YE) 00007090PC * OFF SCREEN 00007100P IF(KGNFLG .EQ. 1) GO TO 110 00007110P CXE=XE 00007120P CYE=YE 00007130PC * CONVERT TO SCREEN COORDINATES 00007140P120 CALL WINCOT(CXE,CYE,IX,IY) 00007150PC * SAVE POSITION ABS AND IMAGINARY 00007160P TREALX=CXE 00007170P TREALY=CYE 00007180P110 TIMAGX=X 00007190P TIMAGY=Y 00007200P RETURN 00007210P END 00007220****WINCOT.FTN;1 RPC----------SUBROUTINE--WINCOT------------------------TEKTRONIX, INC.----00010270PC 00010280P SUBROUTINE WINCOT(X,Y,IX,IY) 00010290P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00010300P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00010310P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00010320P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00010330P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00010340P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00010350P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00010360P + KINLFT,KOTLFT,KUNIT 00010370P DATA DE2RAD/0.01745/ 00010380PC * CHECK FOR PERMITTED VALUE OF CONVERSION KEY 00010390PC * DEFAULT IS LINEAR,ERROR IS NONE 00010400P DX=X-TMINVX 00010410P DY=Y-TMINVY 00010420P KEY=KEYCON 00010430P IF(KEYCON .LT. 1)KEY=5 00010440P IF(KEYCON .GT. 4)KEY=4 00010450PC * BRANCH TO PROPER SECTION 00010460PC * LINEAR LOG POLAR USER ERROR 00010470P GO TO(500,300,600,700,100),KEY 00010480PC ERROR 00010490P100 IX=X 00010500P IY=Y 00010510P GO TO 800 00010520PC * LOG TRANSFORM 00010530P300 KEYL=TRPAR1+.001 00010540P IF(KEYL .EQ. 2) GO TO 400 00010550PC * SETUP X LOG TRANSFORM 00010560P DX=ALOG(X)-TRPAR2 00010570P400 IF(KEYL .EQ. 1) GO TO 500 00010580PC * SETUP Y LOG TRANSFORM 00010590P DY=ALOG(Y)-TRPAR3 00010600PC * CONVERT LINEAR 00010610P500 IX=IFIX(DX*TRFACX+.5)+KMINSX 00010620P IY=IFIX(DY*TRFACY+.5)+KMINSY 00010630PC * GO TO EXIT 00010640P GO TO 800 00010650PC * POLAR TRANSFORMATION 00010660P600 A=(Y-TRPAR6)*TRFACY 00010670P R=(X-TRPAR5)*TRFACX 00010680P IX=R*COS(A*DE2RAD)+TRPAR3 00010690P IY=R*SIN(A*DE2RAD)+TRPAR4 00010700PC * GO TO EXIT 00010710P GO TO 800 00010720PC * USER TRANSFORMATION IN USE 00010730P700 CONTINUE 00010740PC CALL USECOT(X,Y,IX,IY) 00010750PC * EXIT POINT 00010760P800 RETURN 00010770P END 00010780****XYCNVT.FTN;1 RPC----------SUBROUTINE--XYCNVT------------------------TEKTRONIX, INC.----00023410PC 00023420P SUBROUTINE XYCNVT(IX,IY) 00023430P COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 00023440P + TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 00023450P + TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(2), 00023460P + KGNMOD,KPADV,KACHAR,KOBLEN,KTRAIL,KLEVEL,KPAD2, 00023470P + KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 00023480P + KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 00023490P + KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 00023500P + KINLFT,KOTLFT,KUNIT 00023510P DIMENSION IPLT(5),IOPT(8) 00023520P DATA IDREW /0/ 00023530PC * RECEIVE THE PLOT CHARACTERS 00023540P IX1=MIN0(4095/KFACTR,MAX0(0,IX)) 00023550P IY1=MIN0(4095/KFACTR,MAX0(0,IY)) 00023560P CALL PLTCHR(IX1,IY1,IPLT) 00023570PC * OPTIMIZE THE OUTPUT 00023580P LEN=0 00023590PC * CHECK IF HIGH Y IS NEEDED 00023600P IF(KPCHAR(1) .EQ. IPLT(1))GO TO 10 00023610PC * INCLUDE HIGH Y IF NEEDED 00023620P LEN=1 00023630P KPCHAR(1)=IPLT(1) 00023640P IOPT(1)=IPLT(1) 00023650PC * CHECK IF LSBYX IS NEEDED 00023660P10 IF(KTERM .LE. 2)GO TO 20 00023670P IF(KPCHAR(2) .EQ. IPLT(2))GO TO 20 00023680PC * INCLUDE LSBYX IF NEEDED 00023690P LEN=LEN+1 00023700P KPCHAR(2)=IPLT(2) 00023710P IOPT(LEN)=IPLT(2) 00023720P GO TO 30 00023730PC * CHECK IF LOW Y IS NEEDED 00023740P20 IF(KPCHAR(3) .NE. IPLT(3))GO TO 30 00023750P IF(KPCHAR(4) .EQ. IPLT(4))GO TO 40 00023760PC * INCLUDE LOW Y IF NEEDED 00023770P30 LEN=LEN+1 00023780P KPCHAR(3)=IPLT(3) 00023790P IOPT(LEN)=IPLT(3) 00023800PC * CHECK IF HIGH X IS NEEDED 00023810P IF(KPCHAR(4) .EQ. IPLT(4))GO TO 50 00023820PC * INCLUDE HIGH X IF NEEDED 00023830P LEN=LEN+1 00023840P KPCHAR(4)=IPLT(4) 00023850P IOPT(LEN)=IPLT(4) 00023860PC * CHECK IF LOW X IS NEEDED 00023870P40 IF(KPCHAR(5) .NE. IPLT(5))GO TO 50 00023880PC * CHECK IF ALL THE CHARACTERS ARE THE SAME 00023890P IF(LEN .NE. 0)GO TO 50 00023900PC * CHECK IF (GS) FOR DARK VECTOR ALREADY SENT 00023910P IF(KMOVEF .EQ. 1)GO TO 50 00023920PC * CHECK IF VECTOR IS ALREADY DRAWN TO SPOT 00023930P IF(IDREW .EQ. 1)GO TO 80 00023940PC * INCLUDE THE LOW X 00023950P50 LEN=LEN+1 00023960P KPCHAR(5)=IPLT(5) 00023970P IOPT(LEN)=IPLT(5) 00023980PC * SEND THE ARRAY TO THE OUTPUT BUFFER 00023990P70 CALL TOUTST(LEN,IOPT) 00024000PC * SET THE COMMON AND HISTORY VARIABLES 00024010PC * SET THE DREW HERE FLAG 00024020P IDREW=1 00024030PC * REMOVE THE DREW HERE FLAG IF DIDNT DRAW 00024040P IF(KMOVEF .EQ. 1)IDREW=0 00024050PC * REMOVE THE MOVE FLAG 00024060P KMOVEF=0 00024070P80 KBEAMX=IX1 00024080P KBEAMY=IY1 00024090P RETURN 00024100P END 00024110**** 00024050PC * REMOVE THE MOVE FLAG 00024060P KMOVEF=0 VaaU bb&ff &f @P#a0bPcaaPcdaaPcaaaHeaaafaafaaHeabHea bHelabHe a$b Heaa!g:a22E,㷊O$ wiA rV`b`n rVbgNUMERIC UNDER- OR OVERFLOWSYNTAX ERRORFILE NOT FOUNDNO POOL SPACEFILE READ ERRORSTRING EXPRESSION LARGER THAN 80. BYTESMAXIMUM INDIRECT FILES EXCEEDED@ INVALID KEYWORDSYMBOL TABLE OVERFLOW UNDEFINED SYMBOL UNDEFINED LABEL .LABELX: REDEFINING SPECIAL SYMBOLDATA FILE ERROR, CODE REDEFINING SYMBOL TO DIFFERENT TYPE SYMBOL TYPE ERROR STRING SUBSTITUTION ERRORSUBROUTINE NESTING TOO DEEP.RETURN WITHOUT .GOSUBILLEGAL FILE NUMBERFILE ALREADY OPENFILE NOT OPENBAD RANGE OR DEFAULT SPECIFICATIONPchfkchfxchfchfchfchfchfceclfde!de;dedfUdhfodfdfdlfdlfelfelf2elfDelfRelf Nve}xe 7 \\7 V"2dLdd*dd Е.!NI nѕ:@7!Е<7  . v t 2  dbFR w rVb4hDELAYPAUSEWAITXQTASKNASKSASKSETTSETFSETNSETSINCDECGOTOONERROPENCLOSEDATAENABLEDISABLEGOSUBRETURNCHAINTEST(e0e8e@eddxddddddddd eeeeedddddd 2&6%IF Pc ( cF Z W & W bFwyc      rVae rVae rVae rVae rVaNe rVaXe rVa^e rVaHe rVaf rVae rVatf rVae rVae rVa4f rVaf rVaf rV be rVb0f rVbDf rVbhf rVbbf rVb~e rV$be rV$be rV$bf rV$brfŕŕŕ7w > Jw  \ W w@eA w rVa.f rVag rVahf? [Y/N]: [S [Op׭ Neѕ* ׭f .:%f $׭ OD@ Е ЕRЕ: pЕ- d Е ЕDЕ: JЕ]Е:Е BNeB7  NeP ׭wt }  Е.7e7b7_ >[L4:7= Pw:1:) ~ : fe+   *&  :76ewT ?9 .&*"&wp :  6 7 TB T wzW!E &B Uw`߀wDT7!N 7FB  *BB ߷X 7 \ F@8440W` <  NI : TI NI TI rVbh rVbhB OOw@@B w2!; / 65! "@  zw>7 < 2wwTASK NOT INSTALLED4{q!'YM[qvDRHf7 T HU 7 P ȕ "ȕ j  D & &  E B5  V& & &   5 ( 0,|7,8  0I&H rVbhIFDFIFNDFIFTIFFIFACTIFNACTIFINSIFNINSIFLOAIFNLOAIFANDORffjfxf|fRfVfDfHffffffEQ=GE>=LE<=NE<>LT<GT>0 F7hc7`Ne V e Pv. @o96w: w   7 & PN&  BG &  = &  4 2f,W&  7:ee;߭spkh7b  > rwF H  e 4E& W  wנ r-נ LJ Ňf5r"f e   SUBSTITUTIONDATAGLOBALLOWERCASEESCAPE@ n QQ K ^BBp = 9ȕ 40,,C*eޡ  X F  F @eB$& # w| @   Bwff " He Ate %f7 ( w  ^wPw@zw   rV  # #D #&0 #   `0@ e E X 6 # @#?@#040 61#) ~ ** p*@#0l # 028 &  ! p0p2141612epl2l0p0f(& e %&&eH U   Ef p  wV " f &* *    f bu   *8Ae f"( UCɗ&+(e$&%  Mw 0+1(e  %&p*wd f( f)f @82e&( *0 0 0 80 B0 0 0 0)#$ 00l 0w (B C BBe ?B(1 <w eE D` bl lrw   B eE"s    s-  Csle6p 4 8 z   8e2  U4 6w *) l0, *) $ )*)0,40,6 ɥ1 8Bfep`pww fBC "& 8 SY&*p0p2q1*(e "fDCBA w  ť ť 0B 8Aa  *  + 23E Ew .   Е-   0@A W e`fÊ    E & 0. & Vi  7 .& h# # 7 L hh N s ̦ | %r %60  lE w ) 8C *  *)w* Jep p  C    0* e@   Ep p  8 V *`)wx C#    D w ^*D  w0 *) l0, *) $ )*)0,40,6 *8Ae f"( UCɗ&+(e$&%   DP5R RRR  8  ***0+1(e  8%&p*w f( f)f e6p 4 8  F R  j141612epl2l0p8e2  U4 6wɥ1 Bfep`pww ~ VPQ& & B  2> Ε  N  22  Hv f 5 p**5*w0,w>  l)*)   l 0l   ć  ee@ ~4 p- E ep )  ,  Fww  :w"B # f  `)0406 l0 *) l0, *) $ )*)0,40,6 *  DP5R RRR  8  ***$ 00l 0 H) F!f   e) Be6p 4 08* 0,0, f 톇p   w      +% d eB U5UU n plp & Ne*141612epl2l0p8e2 0+1(e  v%&p*w f( f)f ɥ1 TU4 6wz8Ae f"( UCɗ&+(e$&% w ~*8w) ~  B D&*  & #!)&eP(e #&& p* :ww * j d46l0w *eB 8   w \fBC "& 8 SY&*p0p2q1*(e "fDCBA8e2 , f T&* **8Ae f"( UCɗ&+(e$&%  6 p 4 0`p  f)  64 e*wbe0+1(e  4%&p*w f( f)f 82e&( 0 0 0 80 B0 0 0 0)#$ 00l 0 ) !f   e) e6p 4 ^08*     f "u   Mwz0,0, f 톇p   w      +% eB U5UU plp & Ne* *) l0, *) $ )*)0,40,6 e6p 4 8 *  w eE D` bl lrw   B eE"s    s-  Csl141612epl2l0pɥ1 U4 6w Bfep`pw|v,@kk OdF"9TISY`Bjr=FjBF@h@&.+?@,F// 0,0,0,\QK) w&(h(`(h((h((h(`=  VD  +D"M CRASH -- CONT WITH SCRATCH MEDIA ON DT0 @@:2|x& &f&fe07TtB  m% UH5UH5PU H5ׁ0 0 + ENL EFhB/,JSAV -- COMMAND I/O ERRORSAV -- SYNTAX ERRORSAV -- PRIVILEGED COMMANDSAV -- VOLUME STILL MOUNTED ON DDNN:SAV -- I/O OUTSTANDINGSAV -- NOT VALID SAVE DEVICESAV -- LABEL BLOCK I/O ERRORSAV -- NO POOL SPACESAV -- ERROR LOGGING STILL ACTIVESAV -- RUNNING ABOVE SYSTEM IMAGE FILE LIMITSAV -- CHECKPOINT FILE STILL IN USE ON DDNN:SAV -- MUST BE RUN FROM TERMINAL CO: RSX-11M V3.1 BL22 28K >RED DK0:=LB0: MOU DK0:TURBITROL @[1,2]STARTUP 7 jBwzU@Gw  &E)Ý   w\ww`GbrBlB # / " W "B "ww0 PLGAq v5 i5> >0 @ _ h |F J"w "  B5 @CE "0l ƿ,|#,Q&E)5 -4E MEaE{EEEEE F(FUFF " |E@*3d 8Uu 8UeN U= NUB@URHUҕ}:Uf  w  D d lB0 D Lw< ѾʾU FPPPPЕ R   ЕKF DSY JfLB >fÝ 0ppqw l a7 F ĝe0޼`ؼiӼUͼ^7L7WF T)L;B6F >`Eu!U F (@5 F wEE@3 Ul B ʔ ʔ    ͵ T (    P05׭?7 EUe  u5DE5D D D D                                                                                           e_     P05o׭?7 EUe  u5DE5D D D D 0J p  hĝE     Pĝj5JUw2 V< 2" H, @5JUVL w  x T   wNUw8 DEVICE SY00: NOT IN CONFIGURATIONDBDPDSDRDMDFST6TfTTT@`i7Ћ 7E J  t7 7 W-8UDXK)@BUBDUvL NLTD & ) P@BUMBDU jPT ַ7 *7(w .  QAA,pCU eBQwn5 O)E0!l R^RPPP A W Е0 N  BABD5"5    @  70DmE * jO PUR>e % Av @ "R z% Sn   E 7:% S +%RS`7b<@`D %f7r7l7 l<`@D%%S % s-P P&A  8P :P ,P 1@5 5 2 15  t  1@55 U  1@5 1ɋ55   T1  5 5 e e% f   _vߋtDF\ODVPVV*V9VHVDKdOVVWVV WVDP|OWWWLWTWWDT|OlXXpXWa pXWDS|OXX(YXK19(YXDB|OYYZRYx19Z^YDXOZZVZZDZZRZDM|O[\@\[}@\[DL|O\\<]\ <]\DR|OYYZRYx19Z^Y Ew5e  u5     P05p׭?7 EU8)e  u 5DE5D D D D   D    w(  P5׭+#e  u5DE׭g_U 5@@E5@e  u5DE ׭g_f 5 w5 ue  u5 DE ׭f 5    5C  @P7 "5 uUA A 5e  u5 DE , ׭-7%EU-> ͕ هu ԇ5 φ -  /B͵   be z%e: 2-  ĝm(͵% A @% A ``` `  B    CPRT7 ׭{suf͋5 UX]HM͋A A 5"e&  ueM͋ wE5 AU EuDE  e@ PAEw   فAE@ %e:  ~7 JE `% w 4(`` ]8M͋w. E&E?e@ ā5 DE2UM͋  AE?E? E E@E@ U Uu 5 w,@qql O[qjL??== O~BE.t:#z26MAY79222642v2 .H(DEs,08JUN7917515908JUN79175151CE E]EHD`SAV -- TASK HEADER READ ERRORSAV -- HOME BLOCK READ ERRORSAV -- VOLUME STRUCTURE NOT SUPPORTEDSAV -- INDEX FILE HEADER READ ERRORSAV -- INDEX FILE HEADER CHECKSUM ERRORSAV -- BAD TASK FILE VBN, TASK REMOVED - SAV -- TASK FILE HEADER READ ERROR, TASK REMOVED - SAV -- LOAD DEVICE NOT LB:, TASK REMOVED - SAV -- TASK FILE DELETED, TASK REMOVED - SAV -- TASK FILE HEADER ERROR, TASK REMOVED - SAV -- NO POOL SPACESAV -- SYSTEM MAY NOT BOOT CORRECTLY c] A :7 w!w"]1 1 "1!c jdw]< `e> &e   " ! _eRw L dwVf0B7 ($c] 0dw"]  ]  Eew ]% Mdw FeHЋ Е 7 77 77mw c_ 8sdw_ > dwh D a7 bw\e wR w$A%LBTe D)ew77"7!4 me w7wca v"e dwa t   -e eB-xe [e7 @ ` A@e  $74w.c] ]  A@e d 8dt!4"w |i  U 7!ʞwT   & AA,PREM   Еw4ew l7 fe |w(wi 7 (p`  d    e   `A ߕE ҋ  w 2 *& lE Е:    j 8->0w2w"UA&Uꜰ k- 7 EA&E ڜ p  *  + 23E Ew Z   Е-   0@A W e`fÊ    E &f .(26MAY7922305226MAY792230512&v.(~26MAY7922305426MAY792230539.(GH&Y26MAY7922305826MAY79223055F@=.(:26MAY7922320526MAY79223202.(IJQ26MAY7922320926MAY79223206H.(426MAY7922321126MAY79223210.(y:26MAY7922321426MAY79223212y.(0126MAY7922321726MAY79223215/^.(@AbK26MAY7922322126MAY79223218?>.(:;26MAY7922322526MAY792232229~jFjBF@h@.b.?@v|")x89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~