1 GOTO10 2 'XREF.ej: 01/14/84 7 IFLEN(A$)<3THENQF=0:GOTO9 8 FORX=1TOLEN(A$):IFMID$(A$,X,1)<>" "THENQF=1:GOTO9ELSENEXTX 9 RETURN 10 CLS:MAXFILES=2:CLEAR5500:XN$=CHR$(27)+"p":XF$=CHR$(27)+"q" 15 DIMV$(200),L$(150),R$(150),VA$(50):V$(0)=" ":L$(0)=" ":CR$=CHR$(13)+CHR$(10) 20 FILES:PRINT@250,".DO File to XREF?";:INPUTF$ 25 TS$=TIME$:OPENF$FORINPUTAS1:OPEN"OUTPUT"FOR OUTPUTAS2 30 IFEOF(1)THEN400 35 LINEINPUT#1,A$ 40 GOSUB165 45 PRINT:PRINTLN$;A$ 50 GOSUB115 60 GOSUB7:IFQF=1THENQF=0ELSE30 62 GOSUB185 70 GOSUB7:IFQF=1THENQF=0ELSE30 72 GOSUB340 80 GOSUB7:IFQF=1THENQF=0ELSE30 82 GOSUB280 85 PRINT" ";XN$;A$;XF$ 100 PRINT#2,LN$;A$ 105 GOTO30 115 C=INSTR(A$,"DATA"):IFCTHENA$=MID$(A$,1,C-1) 120 C=INSTR(A$,CHR$(34)):IFC=0THENGOTO145 125 C1=INSTR(MID$(A$,C+1),CHR$(34)):IFC1=0THENC1=LEN(A$) 130 IFC=0ANDC1=0THEN145 135 A$=LEFT$(A$,C-1)+MID$(A$,C+C1+1):GOTO120 140 C=INSTR(A$," "):IFCTHENA$=LEFT$(A$,C-1)+MID$(A$,C+1):GOTO140ELSEA$=" "+A$ 145 C=INSTR(A$,"'"):IFC>0THENA$=LEFT$(A$,C-1) 150 C=INSTR(A$,"REM"):IFC>0THENA$=LEFT$(A$,C-1) 155 RETURN 165 C=INSTR(A$," "):A1$=LEFT$(A$,C-1) 170 A$=MID$(A$,C) 175 LN$=SPACE$(5-LEN(A1$))+A1$:RETURN 185 RESTORE:FORX=1TO6:READT$ 190 C=INSTR(A$,T$):IFC=0THEN230 195 MID$(A$,C,LEN(T$))=SPACE$(LEN(T$)) 200 LF$="":FORX1=C+LEN(T$)TOLEN(A$) 205 X1$=MID$(A$,X1,1):IFX1$=" "THEN220ELSEIF(VAL(LF$)=0ANDASC(X1$)>58)THEN230ELSEIFASC(X1$)>58THEN225 210 IFX1$=":"THEN225ELSEIFX1$=","THENGOSUB245:GOTO220 215 LF$=LF$+X1$:MID$(A$,X1,1)=" " 220 NEXTX1 225 IFVAL(LF$)=0THEN230ELSEGOSUB245 230 IFC=0THENNEXTXELSE190 231 U$=".:;,)@+-*/\^=<>":A1$="":FORX=1TOLEN(A$) 232 B$=MID$(A$,X,1) 234 IFINSTR(U$,B$)THENB$=" " 235 A1$=A1$+B$:NEXTX 239 A$=A1$:RETURN 245 LX$=STR$(VAL(LN$)):LF$=SPACE$(5-LEN(LF$))+LF$ 250 FORZ=1TOL:IFLF$=LEFT$(L$(Z),5)THENIFRIGHT$(L$(Z),LEN(LX$))=LX$THEN265ELSEL$(Z)=L$(Z)+","+LX$:GOTO275ELSENEXTZ 255 FORZ=LTO0STEP-1:IFLEFT$(L$(Z),5)>LF$THENL$(Z+1)=L$(Z):GOTO265 260 L$(Z+1)=LF$+"-"+STR$(VAL(LN$)):GOTO270 265 NEXTZ:GOTO275 270 L=L+1 275 LF$="":RETURN 280 FORX=1TO50:VA$(X)="":NEXTX 282 Y=1:A1$="":FORX=1TOLEN(A$):B$=MID$(A$,X,1):B=ASC(B$) 290 IFB=32 THENSF=1:GOTO326 300 IFSFTHEN320 310 IFINSTR("%#!$1234567890",B$)THEN325 315 IFB=40THENSF=1:GOTO325 320 IFB>64ANDB<91THENSF=0ELSE330 325 VA$(Y)=VA$(Y)+B$:IFX=LEN(A$)THEN326ELSEIFSF=0THEN330 326 FORZ=0TOY-1 327 IFVA$(Y)=VA$(Z)THENVA$(Y)="":GOTO330ELSENEXTZ 328 A1$=A1$+" "+VA$(Y):Y=Y+1 330 NEXTX:A$=MID$(A1$,1):RETURN 340 IFRF=1THEN345ELSEFORJ=1TO150:READR$(J):IFR$(J)="XXX"THENRF=1:GOTO345ELSENEXTJ 345 FORX=1TOJ-1 350 C=INSTR(A$,R$(X)):IFC=0THEN360 355 A$=LEFT$(A$,C-1)+SPACE$(LEN(R$(X)))+MID$(A$,(C+LEN(R$(X)))):GOTO350 360 NEXTX:RETURN 400 V=0:CLS:PRINT@160,"Compiling List" 405 CLOSE:OPEN"OUTPUT"FORINPUTAS1 410 ONERRORGOTO465:LINEINPUT#1,A$ 415 LN$=""+LEFT$(A$,5):A$=MID$(A$,7) 420 C=INSTR(A$," "):IFCTHENV1$=LEFT$(A$,C-1):A$=MID$(A$,C+1):GOTO430 425 IFLEN(A$)THENV1$=A$:A$="":GOTO430ELSE410 429 ONERRORGOTO570 430 V1$=V1$+SPACE$(5-LEN(V1$)) 432 LX$=STR$(VAL(LN$)) 435 FORY=0TOV:IFV1$<>LEFT$(V$(Y),5)THENNEXTY:GOTO450 440 IFRIGHT$(V$(Y),LEN(LX$))=LX$THEN420 445 V$(Y)=V$(Y)+","+LX$:GOTO420 450 FORZ=VTO0STEP-1:IFLEFT$(V$(Z),5)>V1$THENV$(Z+1)=V$(Z):GOTO460 455 V$(Z+1)=V1$+"-"+LX$:V=V+1:GOTO420 460 NEXTZ 465 IFERR<>54THENPRINT"Error ";ERR;" in line ";ERL:STOPELSEKILL"OUTPUT.DO" 475 CLS:OPEN"VARLST.DO"FOROUTPUTAS2 480 PRINT#2,"Variable List for: ";F$;CR$;DAY$;" ";DATE$;" ";TS$;CR$ 485 PRINT#2,"Var. - found in lines:" 490 FORJ=1TOV:PRINT#2,V$(J):NEXTJ:PRINT#2,CR$;CHR$(128);CR$ 495 PRINT#2," Line References for: ";F$ 500 PRINT#2," Goto- from lines:",CR$ 505 FORJ=1TOL:PRINT#2,L$(J):NEXTJ 510 PRINT#2,CR$;CR$;"TIME= ";TIME$ 515 CLOSE:MENU 525 DATA"THEN","GOTO","GOSUB","RESUME","ELSE","RESTORE" 530 DATA"STOP","LPRINT","PRINT#","PRINT","ABS","ASC","ATN","CDBL","CINT","COS","CSRLIN","CSNG","EOF" 535 DATA"ERL","ERROR","EXP","FIX","FRE","HIMEM","MEM","INSTR","LEN","LOG","LPOS","MAX","RAM","PEEK","USING" 540 DATA"LCOPY","POS","RND","SGN","SQR","TAB","VAL","VARPTR","CHR$","INKEY$","INPUT$","LEFT$","MID$" 545 DATA"RIGHT$","SPACE$","STR$","STRING$","CLEAR","LINE","INPUT#","WIDTH","DSKI$","DSKO$" 550 DATA"AND","MOTOR","XOR","EQV","IMP","NOT","FOR","NEXT","STEP","CALL","COM","ERR","KEY","MDM" 555 DATA"EDIT","LOC","SOUND","LOF","POKE","PRESET","PSET","CLOAD","CSAVEM","CLOSE","STOP","DEFDBL" 560 DATA"DEFINT","DEFSNG","DEFSTR","DIM","APPEND","IF","INPUT","LINE","CSAVE","INP","IPL","KILL" 565 DATA"LFILES","COPY","LET","LOAD","FILES","MENU","MERGE","NAME","AS","NEW","ONTIME$","OPEN" 570 DATA"OUTPUT","END","POWER","CONT","READ","RUNM","RUN","SAVEM","SAVE","SCREEN","TAN","TIME$ON" 575 DATA"TIME$OFF","TIME$STOP","TO","OR","OFF","INT","SIN","ON","OUT","RETURN","CLS","BEEP","MOD","XXX" 580 PRINT#2,"VARIABLE NAME ERROR IN LINE "LN$;:RESUME432