100 REM ************************************************ 110 REM **** CROSS2.BAS 28-FEB-78/27-FEB-81 **** 120 REM **** N A BOURGEOIS SANDIA LABORATORIES **** 130 REM ************************************************ 140 REM **** CROSS REFERENCE PROGRAM FOR BASIC TEXT **** 150 REM **** CLINT PURDUE KEN NOWOTNY 20-JAN-75 **** 160 REM ************************************************ 170 REM **** CHAIN:[CROSS0,CROSS1,CROSS2].BAS **** 180 REM ****************************************** 190 REM **** INITIALIZATION **** 200 REM ************************ 210 COMMON A$,F$,P$,T$ 220 COMMON D$(112%),I8% 230 PRINT CLK$,'CROSS2: 81B27A' 240 DIM #3,S1%(857%) 250 DIM #4,S2%(2200%,1%) 260 DIM #5,S4%(500%,1%) 270 OPEN 'TEMP3' AS FILE #3 280 OPEN 'TEMP4' AS FILE #4 290 OPEN 'TEMP5' AS FILE #5 300 REM ************************ 310 REM **** OPEN THE FILES **** 320 REM ************************ 330 OPEN F$ FOR OUTPUT AS FILE #2 DOUBLE BUF 340 IF SEG$(F$,1%,3%)='KB:' THEN 440 350 IF SEG$(F$,1%,3%)='LP:' THEN 440 360 IF SEG$(F$,1%,3%)='PC:' THEN 440 370 IF SEG$(F$,1%,3%)='TT:' THEN 440 380 OPEN F$ FOR INPUT AS FILE #1 DOUBLE BUF 390 IF END #1 THEN 430 400 LINPUT #1,B$ 410 PRINT #2,B$ 420 GO TO 390 430 CLOSE #1 440 IF SEG$(F$,1%,3%)='TT:' THEN PRINT #2 450 PRINT #2,T$ 460 PRINT #2 470 REM ***************************************** 480 REM **** PRINT THE VARIABLES USAGE TABLE **** 490 REM ***************************************** 500 PRINT #2,P$ 510 IF SEG$(F$,1%,3%)='TT:' THEN PRINT #2 520 PRINT #2,T$ 530 PRINT #2 540 PRINT #2,'VARIABLE LINE(S) WHERE USED:'; 550 PRINT #2,' IF PRECEEDED BY -, VAR FOLLOWED BY =' 560 PRINT #2 570 FOR K%=0% TO 285% 580 FOR K1%=0% TO 572% STEP 286% 590 I%=K%+K1% 600 IF S1%(I%)=0% THEN 790 610 V$='' 620 J3%=I% 630 J4%=INT(I%/286%) 640 IF J4%=0% THEN 710 650 IF J4%=1% THEN 690 660 V$='%' 670 J3%=I%-572% 680 GO TO 710 690 V$='$' 700 J3%=I%-286% 710 I3%=INT(J3%/11%) 720 I2%=J3%-I3%*11% 730 IF I2%=0% THEN 750 740 V$=CHR$(I2%+47%)&V$ 750 V$=CHR$(I3%+65%)&V$ 760 I1%=S1%(I%) 770 PRINT #2,V$; 780 GOSUB 1100 \ REM **** PRINT THE LINE NUMBERS USED 790 NEXT K1% 800 NEXT K% 810 REM ***************************************** 820 REM **** PRINT THE CONTOL TRANSFER TABLE **** 830 REM ***************************************** 840 K1%=1% 850 S6%=S5%-1% 860 PRINT #2,P$ 870 IF SEG$(F$,1%,3%)='TT:' THEN PRINT #2 880 PRINT #2,T$ 890 PRINT #2 900 PRINT #2,'CONTROL TRANSFER SECTION (GOSUB, GO TO & THEN):'; 910 PRINT #2,' GOSUB PRECEEDED BY -' 920 PRINT #2 930 K2%=32767% 940 FOR K%=0% TO S6% 950 IF S4%(K%,0%)<=K1% THEN 990 960 IF S4%(K%,0%)>K2% THEN 990 970 K2%=S4%(K%,0%) 980 I1%=S4%(K%,1%) 990 NEXT K% 1000 IF K2%=32767% THEN 1220 \ REM **** CLOSEOUT ROUTINE 1010 K1%=K2% 1020 PRINT #2,K1%; 1030 GOSUB 1100 \ REM **** PRINT THE LINE NUMBERS USED 1040 GO TO 930 1050 REM ********************* 1060 REM **** SUBROUTINES **** 1070 REM ***************************************** 1080 REM **** S/R PRINT THE LINE NUMBERS USED **** 1090 REM ***************************************** 1100 I2%=5% 1110 I2%=2%+I2%+LEN(STR$(S2%(I1%,0%))) 1120 IF I2%<60% THEN 1150 1130 PRINT #2 1140 GO TO 1100 1150 PRINT #2,TAB(10%);S2%(I1%,0%); 1160 I1%=S2%(I1%,1%) 1170 IF I1%<>0% THEN 1110 1180 PRINT #2 1190 PRINT #2 1200 RETURN 1210 REM ************************** 1220 REM **** CLOSEOUT ROUTINE **** 1230 REM ************************** 1240 PRINT #2,P$ 1250 CLOSE #2,#3,#4,#5 1260 KILL 'TEMP3' 1270 KILL 'TEMP4' 1280 KILL 'TEMP5' 1290 PRINT CLK$,'CROSS2: END' 1300 END