100 MX=300:DIMLN(MX):PRINT"[147]BASIC FILE RENUMBER":GOSUB700:Z$=CHR$(0) 110 CLOSE2:CLOSE3:CLOSE15:PRINT:INPUT"OLD PROGRAM NAME";F1$ 120 INPUT"NEW PROGRAM NAME";F2$:IFIC<>0THEN190 130 INPUT"STARTING LINE NUMBER";SN 140 SN=INT(SN):IFSN<0THEN130 150 INPUT"INCREMENT";IC 160 IC=INT(IC):IFIC<1THEN150 170 INPUT"CROSS REFERENCE(Y/N)";RF$:IFRF$<>"Y"ANDRF$<>"N"THEN170 180 IFRF$="Y"THENDIMCR$(MX) 190 PRINT"OPENING FILES":OPEN15,8,15 200 PRINTF1$:OPEN2,8,2,"0:"+F1$+",P,R":GOSUB660:IFER>0THEN110 210 PRINTF2$:OPEN3,8,3,"0:"+F2$+",P,W":GOSUB660:IFER>0THEN110 220 PRINT"PASS 1":PRINT 230 GET#2,A$:GET#2,B$:NL=0:L1=ASC(A$+Z$)+256*ASC(B$+Z$) 240 GET#2,A$:GET#2,B$:L2=ASC(A$+Z$)+256*ASC(B$+Z$):IFL2=0THEN290 250 GET#2,A$:GET#2,B$:LN(NL)=ASC(A$+Z$)+256*ASC(B$+Z$) 260 PRINT"[145]LINE";LN(NL):NL=NL+1 270 IFNL>=MXTHENPRINT"LINE TABLE OVERFLOW":GOTO640 280 POKE828,L2-L1-4:SYS829:L1=L2:GOTO240 290 CLOSE2:OPEN2,8,2,"0:"+F1$+",P,R" 300 PRINT"PASS 2":PRINT:GT=137:GS=141:TH=167:QU=34:LK=-1 310 IFSN+NL*IC>63999THENPRINT"LINE NUMBER TOO BIG":GOTO640 320 GET#2,A$:GET#2,B$:LL=0:L1=ASC(A$+Z$)+256*ASC(B$+Z$):N1=L1 330 V=L1:GOSUB690 340 GET#2,A$:GET#2,B$:L2=ASC(A$+Z$)+256*ASC(B$+Z$):IFL2=0THEN580 350 GET#2,A$:GET#2,B$:CL=ASC(A$+Z$)+256*ASC(B$+Z$) 360 LK=LK+1:PRINT"[145]LINE";CL 370 L=L2-L1-4:POKE828,L:SYS829 380 T2$="":I=851:L=L+I-1:QQ=0 390 C=PEEK(I):IFC=QUTHENQQ=NOTQQ 400 IFGT>CORQQTHEN550 410 IFGT<>CANDGS<>CANDTH<>CTHEN550 420 TY$=" ":IFC=GSTHENTY$=" *" 430 T2$=T2$+CHR$(C):T3$="":I=I+1:NF=-1 440 C=PEEK(I) 450 IFC>47ANDC<58THENNF=0 460 IF(C>47ANDC<58)ORC=32THENT3$=T3$+CHR$(C):I=I+1:GOTO440 470 IFNFTHEN410 480 J=0:TN=VAL(T3$):LN(NL)=TN 490 IFLN(J)<>TNTHENJ=J+1:GOTO490 500 IFJ>=NLTHENPRINT"NONEXISTENT:"TN:PRINT:TN=0:GOTO520 510 TN=SN+IC*J 520 T3$=STR$(TN):T2$=T2$+MID$(T3$,2) 530 IFRF$="Y"THENCR$(J)=CR$(J)+TY$+MID$(STR$(SN+IC*LK),2) 540 IFC=44THEN430 550 T2$=T2$+CHR$(C):I=I+1:IFI<=LTHEN390 560 N1=N1+LEN(T2$)+4:V=N1:GOSUB690:V=SN+IC*LL:GOSUB690 570 PRINT#3,T2$;:LL=LL+1:L1=L2:GOTO340 580 PRINT#3,Z$+Z$; 590 CLOSE2:CLOSE3:CLOSE15:IFRF$<>"Y"THEN640 600 INPUT"CROSSREF(S/P/Q)";Q$:IFQ$="Q"THEN640 610 IFQ$="S"THENWI=40:OPEN4,3:GOSUB750:CLOSE4:GOTO600 620 IFQ$="P"THENWI=80:OPEN4,4:GOSUB750:CLOSE4:GOTO600 630 GOTO600 640 CLOSE2:CLOSE3:CLOSE15:PRINT:PRINT"DONE" 650 END 660 INPUT#15,ER,E1$,E2,E3:IFER=0THENRETURN 670 PRINTER;E1$;E2;E3 680 RETURN 690 PRINT#3,CHR$(V-INT(V/256)*256);CHR$(INT(V/256));:RETURN 700 S=0:FORI=829TO850:READV:POKEI,V:S=S+V:NEXTI 710 IFS=3036THENRETURN 720 PRINT"ERROR IN DATA STATEMENTS":END 730 DATA162,2,32,198,255,162,0,32,207,255,157 740 DATA83,3,232,206,60,3,208,244,76,204,255 750 PRINT#4,"CROSS - REFERENCE FOR "F2$ 760 PRINT#4," LINE REFERENCES":BL$=" " 770 FORI=0TONL:IFCR$(I)=""THEN850 780 J=2:IFI<>NLTHENN$=STR$(SN+IC*I)+BL$:PRINT#4,LEFT$(N$,7)"-";:GOTO800 790 PRINT#4," ERRORS "; 800 K=1 810 CH$=MID$(CR$(I),J,1):PRINT#4,CH$;:J=J+1:K=K+1:IFJ>LEN(CR$(I))THEN840 820 IFK>WI-14ANDCH$=" "THENPRINT#4:PRINT#4,BL$;:GOTO800 830 GOTO810 840 PRINT#4 850 NEXTI:RETURN