Listing of file='CROSSRF' on disk='vmedia/tbo_81.wvd.zip'
# Sector 438, program filename = 'CROSSRF' 0010 REM 03/03/81 CROSSnK + CROSSRF +CROSSRF0 T.OLSEN WANG R&D 0025 COM R0$16,S3,I$(1)52,V2$1 : I$(1)=HEX(3A0D222F23D7FF9AA2D2) : STR(I$(1),11)="FRTECPBADGHIJKLMNOQSUVWXYZ" : STR(I$(1),37)=HEX(E1E48A8B8CE8DFEAA89786A195969B9C) : R0$=HEX(010D0220033A04270523062F07402020) 0090 V1=E9 : V2=F9 : V3=D9 : V4=T9 : V5=X9 : V6=Q9 0100 GOTO 480 0110 REM ..refer to %CROSS for descriptive material 0450 IF D=0THEN 460 : DATA LOAD BA T#2,(A,A)A$() : GOTO 470 0460 DATA LOAD BTA$() 0470 MAT COPY A$()TO B$() : H$=B$(1) : AND (H$,F0) : RETURN 0480 SELECT PRINT 005(64) : PRINT HEX(03) : GOSUB '15 : P6,P5=1 : REM /LISTING+SUMMARY : M1,M=5 : L9=56 : REM /LINES/PAGE : GOSUB 1220 0490 RESTORE : Z=1 0500 READ C$ : C$(Z)=C$ : Z=Z+1 : IF Z<123THEN 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 : 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 : J,S2=0 : 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 : D=3 : PRINT "INPUT MEDIA=","0=TAPE OR --DISKS" : PRINT "1=(F)310 2=(R)B10 3=(F)320 4=(R)B20 5=(F)330 6=(R)B30 7=350", C$;D; : INPUT D : ON D+1GOTO 830,560,570,580,590,600,610,615 : GOTO 550 0560 SELECT #2310 : GOTO 620 0570 SELECT #2B10 : GOTO 620 0580 SELECT #2320 : GOTO 620 0590 SELECT #2B20 : GOTO 620 0600 SELECT #2330 : GOTO 620 0610 SELECT #2B30 : GOTO 620 0615 SELECT #2350 0620 P7=0 0630 DEFFN'1 : IF D=0THEN 550 : ON P7GOTO 640 : E$=" " : PRINTUSING 632,J+1; : INPUT " DISK PROGRAM NAME+COMMENTARY. S.F.'1 ON ERROR 80)",E$ : GOTO 650 0632 %## 0640 READ E$ : PRINT E$ 0650 IF E$=" "THEN 770 : IF E$="DATA"THEN 820 : IF E$="ALL"THEN 680 : IF E$="CLEAR"THEN 671 : IF E$<>"^"THEN 660 : J=J-1 : IF J>0THEN 630 : J=0 : GOTO 630 0660 P$=E$ : LIMITS T#2,P$,S,Q,P 0670 J=J+1 : P$(J)=P$ : BIN(STR(P$(J),9))=D : E$(J)=STR(E$,9) : GOTO 630 0671 IF D6=0THEN 660 : P$=" " : PRINT "CLEAR MEANINGS" : GOTO 670 0680 S$=" " : INPUT "COMMON ID",S$ : 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 780 : IF L$<>HEX(0000)THEN 720 : G=16 0720 NEXT G : NEXT Z 0730 IF H=JTHEN 630 : Z=H : FOR G=HTO J : IF P$(G)>P$(Z)THEN 740 : 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 ON P7GOTO 620 : IF J=0THEN 550 : P7=J : GOTO 840 0780 P$=STR(A$(G),9,8) : IF S$=" "THEN 790 : IF STR(P$,1,LEN(S$))<>STR(S$,1,LEN(S$))THEN 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$ : GOTO 720 0820 P7=1 : PRINT "USING DATA STMTS" : GOTO 640 0830 E,P7=1 : PRINT "HOW MANY FILES","(DEFAULT)=";P7; : INPUT P7 0840 SELECT PRINT 005(64) 0850 GOSUB '3 : IF Z9=0THEN 1410 0860 PRINT "YOU NEED DIFFERENT DIMENSIONS" : PRINT "SELECTPRINT 215---S.F.'3 FOR LIST" : STOP "SET NEW VALUES STATED IN STMTS 20-70" 0870 DEFFN'3 : IF V1=E9THEN 880 : Z9=1 : PRINT "SET E9=";E9,"E$(";E9;")42","P$(";E9;")9" 0880 IF V2=F9THEN 890 : Z9=1 : PRINT "SET F9=";F9,"F$(";F9+1;",1)3" 0890 IF V3=D9THEN 900 : Z9=1 : PRINT "SET D9=";D9,"D$(";D9;")20" 0900 IF V4=T9THEN 910 : Z9=1 : PRINT "SET T9=";T9,"T$(";T9;",255)4","T1$(";T9;",255)2 T2$(";T9;",255)2 " 0910 IF V5=X9THEN 920 : Z9=1 : PRINT "SET X9=";X9,"X0$(";X9+1;")21" 0920 IF V6=Q9THEN 930 : Z9=1 : PRINT "SET Q9=";Q9,"Q$(1,";Q9+1;")4","X$(";Q9+1;")21" 0930 RETURN 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(" 1090 DEFFN'2 : H=0 1100 PRINT HEX(03);"FIGURE NEW DIMENSIONS" : PRINT : GOSUB '13 : PRINT "KEY S.F. '4 TO GET BACK TO MAIN-LINE" 1110 H=H+1 : ON H GOTO 1120,1130,1140,1150,1160,1170 1120 PRINT "UNIQUE VARIABLES=";Q9;"OR"; : INPUT Q9 : GOTO 1100 1130 PRINT "SPECIAL FUNCTIONS=";F9;"OR"; : INPUT F9 : GOTO 1100 1140 PRINT "STMT REFS =255*";T9;"OR"; : INPUT T9 : GOTO 1100 1150 PRINT "VAR.REFS>10=";X9;"OR"; : INPUT X9 : GOTO 1100 1160 PRINT "ANNOTATION=";D9;"OR"; : INPUT D9 : GOTO 1100 1170 PRINT "PROGRAM NAMES=";E9;"OR"; : INPUT E9 : H=0 : GOTO 1100 1180 DEFFN'4 : GOSUB '3 : IF Z9=1THEN 860 : GOTO 100 1190 DEFFN'13 : PRINT "TABLE CAPACITY"," YOU CHANGE","NUMBER","MEMORY" : PRINT "UNIQUE VARIABLES Q9 Q$() X$()",Q9,Q9*25+25 : PRINT "SPECIAL FUNCTIONS F9 F$()",F9,F9*3+3 1200 PRINT "STMT REFERENCES T9 T$()",255*T9,T9*8*255,," T1$() T2$()" : PRINT "VARIABLE REFS.>10 X9 X0$()",X9,X9*21+21 1210 PRINT "ANNOTATION"," D9 D$()",D9,D9*20 : PRINT "PROGRAM FILES"," E9 E$() P$()",E9,E9*51 : GOSUB 1220 : RETURN 1220 PRINT "DIMENSIONED THIS WAY YOU NEED A 2200 "; : G=4886 : REM /MINIMAL TABLES 1222 REM Z=END FOLLOWING TEXT ENTRY IN CROSSRF0 1225 Z=9102 : C$="VP or MVP" : $IF ON /000,1228 : Z=9187 : C$="T or C+OP5" 1228 PRINT C$;" PROCESSOR WITH A MEMORY OF "; 1230 Q=G+Z+(Q9*25)+(F9*3)+((T9-1)*8*255)+(X9*21)+((D9-1)*20)+((E9-1)*51) : Z=INT(Q/1024) : PRINT Q;"BYTES OR ";Z;"K"; : IF Q<Z*1024THEN 1240 : PRINT "+"; 1240 PRINT : RETURN 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 "CROSSRF USES A 16K MINIMUM 2200T OR 2200B/C+OP.5" : PRINT "1. INPUT IS PROGRAM FILES FROM DISK OR CASSETTE" 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. ENTRIES" 1390 PRINT "'0 CHANGE DISK MEDIA","'1 IN DISK FILE NAMES" : PRINT "'2 FIGURE NEW CAPACITIES","'3 DETAIL CHANGES FROM '2" : PRINT "'10 SUMMARY TO PRINTER/CONTINUE","'11 SUMMARY ONLY" 1400 PRINT "'12 WRITE-UP",,"'13 CAPACITIES" : PRINT "'14 LIST OPTIONS",,"'15 S.F. ACTION" : RETURN 1402 % #### ## ######### 1405 PRINT HEX(0C030E);"CROSSRF PROGRAM LISTING INDEX" : PRINT : PRINT HEX(0E);D$ : PRINTUSING 1402,"DISK","#";"PROGRAM" : FOR J=1 TO P7 : PRINTUSING 1402,VAL(STR(P$(J),9)),J,STR(P$(J),1,8); : PRINT E$(J) : NEXT J : RETURN 1410 E=1 : REM /EVEN PAGE FLAG SET =0 TO SUPPRESS FEATURE 1420 GOSUB 1405 : PRINT "TURN PRINTER ON" : SELECT PRINT 215 : ON P5+1GOTO 1425,1422 : SELECT PRINT 204 1422 PRINT : IF P7<4THEN 1425 : GOSUB 1405 1425 SELECT PRINT 005 : $IF ON /000,1440 1430 LOAD DC T#0,"CROSSRF0" 1435 REM USE CROSSRFV FOR VP LIST OF MVP PROGRAMS GLOBAL VARIABLES ETC 1440 LOAD DC T#0,"CROSSRFV" 1450 P5=1 : INPUT "Output to 0=CRT 1=215 2=204",P5 : GOTO 510 3000 DEFFN'5 : SELECT PRINT 005(80) : PRINT HEX(03);"BASIC-2 Verb atoms" 3020 B$=HEX(80) : FOR A=1 TO 122 : PRINT HEXOF(B$);"=";STR(C$(A),1,10);" "; : ADD(B$,01) : NEXT A 3030 RETURN