Listing of file='TBO.CRF2' on disk='vmedia/toolbox.wvd.zip'
# Sector 849, program filename = 'TBO.CRF2' 0010 REM TBO.CRF2 07/18/88 T.OLSEN 3 of 4 Basic-2 Cross-reference lister 0025 COM R0$16,S3,I$(1)52,V2$1 : I$(1)=HEX(3A0D222F23D7FF9AA2D2) : STR(I$(1),11)="FRTECPBLADSGHIJKMNOQUVWXYZ" : STR(I$(1),37)=HEX(E1E48A8B8CE8DFEAA89786A195969B9C) : R0$=HEX(010D0220033A04270523062F07402020) 0030 IF D1$(10)=" "THEN LOAD T#0,"TBODISKS"8000,8800BEG 90 0090 V1=E9 : V2=F9 : V3=D0 : V4=T9 : V5=X9 : V6=Q9 0100 GOTO 480 0110 REM ..refer to %CROSS for descriptive material 0450 DATA LOAD BA T#2,(A,A)A$() 0470 MAT COPY A$()TO B$() : H$=B$(1) : AND (H$,F0) : RETURN 0480 SELECT PRINT 005(64) : GOSUB '15 : P6,P5=1 : REM /LISTING+SUMMARY : M1,M=5 : L9=56 : REM /LINES/PAGE 0490 RESTORE : Z=1 0500 READ C$ : C$(Z)=C$ : Z=Z+1 : IF Z<125THEN 500 : $IF ON /000,1450 0510 INPUT "DATE",D$ : D6,D7,D8=0 : INPUT "1=SAVE MEANINGS THRU ALL PROGRAMS",D6 0520 C$="DEFAULT=" : PRINT "For annotation KEY--0=Summary only 1=In Listing 2=In Margin";C$; Q1; : INPUT Q1 0530 M2=35 : M9=77 : IF P5=0THEN 540 : J=0 : PRINT "PAPER WIDTH NARROW=0 WIDE=1 ";C$;J; : INPUT J : IF J=0THEN 540 : M2=70 : M9=115 0540 M3=M1+M2 : P4,J,S2=0 : PRINT "List mode KEY--0=List + XRef 1=List only 2=XRef only" : PRINT C$;P4; : INPUT P4 : IF P4<0 THEN 540 0544 PRINT "START STMT",C$;S2; : INPUT S2 : IF S2=0THEN 550 : STR(D$,LEN(D$)+2)="PARTIAL LISTING**" 0545 S3=9999 : INPUT "END STMT",S3 : IF S3<S2THEN 540 0550 DEFFN'0 : GOSUB '98 : D=D9 0580 SELECT #2<D1$(D)> 0620 P7=0 0630 DEFFN'1 : IF D=0THEN 550 : ON P7GOTO 640 : E$=" " : PRINTUSING "##",J+1; : INPUT " Disk Program Name+commentary. S.F.'1 ON ERROR 80)",E$ : GOTO 650 0640 READ E$ : PRINT E$ 0650 IF E$=" "THEN 655 : IF E$="DATA"THEN 820 : IF E$="ALL"THEN 675 : IF E$="ALL-"THEN 675 : IF E$="CLEAR"THEN 670 : IF E$<>"^"THEN 660 : J=J-1 : IF J<1THEN J=0 : GOTO 630 0655 ON P7GOTO 620 : IF J=0THEN 550 : GOTO 1410 0660 P$=E$ : IF P$="CLEAR"THEN 670 : LIMITS T#2,P$,S,Q,P,P : IF P<>1THEN 630 0665 J=J+1 : P$(J)=P$ : BIN(STR(P$(J),9))=D : E$(J)=STR(E$,9) : GOTO 630 0670 IF D6=0THEN 660 : P$=" " : PRINT "CLEAR meanings" : GOTO 665 0675 X=0 0680 P$=" " : LINPUT "COMMON ID",-P$ : S$=P$ : IF E$="ALL"THEN 685 : IF P$=" "THEN IF X=0THEN 630 : IF P$=" "THEN 685 : X=X+1 : X$(X)=P$ : IF X<Q9THEN 680 0685 DATA LOAD BA T#2,(0,A)A$() : AND (STR(A$(1),1,1),7F) : H=J+1 0690 FOR Z=VAL(STR(A$(1),1,1))TO VAL(STR(A$(1),2,1))-1 : Q=1 : IF Z>0THEN 700 : Q=2 : PRINT "SEARCHING" : GOTO 710 0700 DATA LOAD BA T#2,(A,A)A$() 0710 PRINT "CAT.SECTOR=";A,,HEX(0C) : FOR G=QTO 16 : L$=STR(A$(G),1,2) : IF L$=HEX(1080)THEN 770 : IF L$=HEX(0000)THEN G=16 0720 NEXT G : NEXT Z 0730 IF H=JTHEN 630 : Z=H : FOR G=HTO J : IF P$(Z)>P$(G)THEN Z=G 0740 NEXT G : IF H=ZTHEN 760 : XOR (P$(H),P$(Z)) : XOR (P$(Z),P$(H)) : XOR (P$(H),P$(Z)) 0750 XOR (E$(H),E$(Z)) : XOR (E$(Z),E$(H)) : XOR (E$(H),E$(Z)) 0760 H=H+1 : GOTO 730 0770 P$=STR(A$(G),9,8) : IF X>0THEN 775 : IF S$=" "THEN 790 : IF STR(P$,1,LEN(S$))<>STR(S$,1,LEN(S$))THEN 720 : GOTO 790 0775 REM .ALL- : FOR S=1TO X : S$=X$(S) : IF STR(P$,1,LEN(S$))=STR(S$,,LEN(S$))THEN 780 : NEXT S : GOTO 790 0780 REM .Exclude : S=X : NEXT S : GOTO 720 0790 PRINT "KEY '-' TO SKIP ";P$,HEX(0C) : KEYIN B$,800,800 0800 KEYIN B$,810,550 : GOTO 800 0810 IF B$="-"THEN 720 : J=J+1 : P$(J)=P$ : BIN(STR(P$(J),9,1))=D : PRINT J,"DISK=";D,"PROGRAM ";P$ : E$=" " : INPUT "+ COMMENTARY",E$ : E$(J)=E$ : IF J<E9THEN 720 : Z=999 : NEXT Z : STOP "# files at max. - Key CONTINUE" : GOTO 1410 0820 P7=1 : PRINT "USING DATA STMTS" : GOTO 640 0940 DATA "LIST","CLEAR","RUN","RENUMBER","CONTINUE","SAVE" 0950 DATA "LIMITS","COPY","KEYIN","DSKIP","AND","OR","XOR" 0960 DATA "TEMP","DISK","TAPE","TRACE","LET","FIX(","DIM","ON" 0970 DATA "STOP","END","DATA","READ","INPUT","GOSUB","RETURN" 0980 DATA "GOTO","NEXT","FOR","IF","PRINT","LOAD","REM","RESTORE" 0990 DATA "PLOT","SELECT","COM","PRINTUSING","MAT","REWIND","SKIP" 1000 DATA "BACKSPACE","SCRATCH","MOVE","CONVERT","PLOT"," STEP" 1010 DATA " THEN"," TO","BEG","OPEN","CI","R","D","CO","LGT(","OFF" 1020 DATA "DBACKSPACE","VERIFY","DA","BA","DC","FN","ABS(","SQR(" 1030 DATA "COS(","EXP(","INT(","LOG(","SIN(","SGN(","RND(","TAN(" 1040 DATA "ARC","#PI","TAB(","DEFFN","TAN(","SIN(","COS(","HEX(" 1050 DATA "STR(","ATN(","LEN(","RE","#","%","P","BT","G","VAL(","NUM(" 1060 DATA "BIN(","POS(","LS=","ALL","PACK","CLOSE","INIT","HEX" 1070 DATA "UNPACK","BOOL","ADD","ROTATE","$","ERROR","ERR","DAC" 1080 DATA "DSC","SUB","LINPUT","VER(","ELSE","SPACE","ROUND","AT(","HEXOF(","M AX(","MIN(","MOD(","DATE","TIME" 1250 DEFFN'14 : PRINT "LIST OPTIONS" 1260 PRINT "THE CROSS-REFERENCE PROGRAM INTERPRETS PAGE FORMATTING IN A" : PRINT "BASIC PROGRAM FILE--" : PRINT "VARIATIONS MAY BE ENTERED IN REM% STATEMENTS" 1270 PRINT "1. REM%^+COMMENT PAGE EJECT THEN PRINT" : PRINT "2. REM%D+COMMENT SPACE THEN PRINT, WHERE D IS 1 TO 9 LINES" : PRINT "3. REM%+ COMMENT NOTE COMMENTS ARE PRINTED IN EXPANDED TYPE" 1280 PRINT "4. (COLON) REM/ WILL BE LISTED ON LINE OF PRIOR INSTRUCTION" 1290 PRINT "5. REM%0 FOR ENTERING DATA INTO THE VARIABLE MEANINGS TABLE." 1300 PRINT " REM%0NAME MEANING,NAME2 MEANING,...ETC." : PRINT " NAMES CAN BE OF VARIABLES, SPECIAL FUNCTIONS, OR # REFS." 1310 PRINT "6. NOTE*** COMMENTS ENTERED AFTER GOTO OR RETURN STATEMENTS" : PRINT " DO NOT AFFECT THE EXECUTION TIME OF A PROGRAM." : RETURN 1320 DEFFN'12 : PRINT ,"CROSSRF--CROSS-REF. WITH MEANINGS" : PRINT "1. INPUT is program files from disk" 1330 PRINT "2. OUTPUT is 80 or 132 column printer pages" : PRINT "3. Variable meanings may be by REM%0 stmts." 1340 PRINT " The meanings table is cleared after a SUMMARY." : PRINT " A SUMMARY occurs only if there are variables in a program." 1350 PRINT "4. It is efficient to store the meanings as a separate file." : PRINT " Such a file might contain a complete program write-up" : PRINT " and a description of all variables used." : RETURN 1360 DEFFN'10 : PRINT "'10 IS ACTIVE ONLY IN CROSSRF OVERLAY" : RETURN 1370 DEFFN'11 : PRINT "'11 IS ACTIVE ONLY IN CROSSRF OVERLAY" : RETURN 1380 DEFFN'15 : PRINT "CROSSRF -- S.F. Entry points" 1385 PRINT "From prompt module:" 1386 PRINT "'0 Change Disk Media" : PRINT "'1 Pick-up prompting in program names" 1392 PRINT "'5 display VERB atoms";TAB(40);"'15 Show S.F. actions" 1394 PRINT "'12 Write-up";TAB(40);"'14 List options" 1395 PRINT "From cross-reference listing mainline:" 1396 PRINT "'10 Summary to Printer/CONTINUE";TAB(40);"'11 Summary only" 1400 PRINT : RETURN 1402 % ## #### --- ### ######## 1405 PRINT HEX(0C030E);"CROSSRF PROGRAM LISTING INDEX" : PRINT : PRINT HEX(0E);D$ : PRINTUSING 1402," ","DISK","No.","PROGRAM" : FOR J=1 TO P7 : G=VAL(STR(P$(J),9)) : PRINTUSING 1402,G,D1$(G),J,STR(P$(J),1,8); : PRINT E$(J) : NEXT J : RETURN 1410 P7=J : SELECT PRINT 005(64) 1415 E=0 : REM /.Even page listings 0=Disable 1=Enable 1420 GOSUB 1405 : IF P5=0THEN 1425 : PRINT "TURN PRINTER ON" : ON P5SELECT PRINT 215;PRINT 204;PRINT 216 : PRINT : IF P7>3THEN GOSUB 1405 1425 IF P4=2THEN P5=-P5 : SELECT PRINT 005 1440 LOAD DC T#0,"TBO.CRF3" 1450 P5=1 : INPUT "Output to 0=CRT 1=215 2=204 3=216",P5 : GOTO 510 3000 DEFFN'5 : SELECT PRINT 005(80) : PRINT HEX(03);"BASIC-2 Verb atoms" : B$=HEX(80) : FOR A=1 TO 124 : PRINT HEXOF(B$);"=";STR(C$(A),1,10);" "; : ADD(B$,01) : NEXT A : RETURN