90 REM - PROGRAM TO RESEQUENCE BASIC PROGRAMS 100 DIM L(250),M(250),K$(2) 110 READ D 120 DATA 250 130 READ K$(0),K$(1),K$(2) 140 DATA "GO TO ","THEN ","GOSUB " 150 PRINT "RESEQUENCE" 160 PRINT "OLD FILE"; 170 INPUT P$ 180 PRINT "NEW FILE"; 190 INPUT Q$ 200 PRINT "START INPUT LINE, START OUTPUT LINE, INTERVAL SIZE"; 210 INPUT L0,L1,I1 220 IF Q$<>"" THEN 230\Q$=P$ 230 P$=P$&".BAS" 240 Q$=Q$&".BAS" 260 IF L1<>0 THEN 270\L1=10 270 IF I1<>0 THEN 280\I1=10 280 OPEN P$ AS FILE #1 290 C=-1 300 IF END #1 THEN 410 310 INPUT #1:L$ 320 L2=L2+1 330 T=POS(L$," ",1) 340 S$=SEG$(L$,1,T-1) 350 S=VAL(S$) 360 IF SD THEN 2000 390 L(C)=S 400 GOTO 300 410 S=INT(L1) 420 FOR I=0 TO C 430 M(I)=S 440 IF S>65530 THEN 2010 450 S=S+I1 460 NEXT I 470 RESTORE #1 480 OPEN Q$ FOR OUTPUT AS FILE #2 500 FOR I=1 TO L2 510 INPUT #1:L$ 520 C2=POS(L$," ",1)-1 530 C1=1 540 GOSUB 1000 550 FOR J=0 TO 2 560 C1=1 570 C1=POS(L$,K$(J),C1) 580 IF C1=0 THEN 700 590 C1=C1+LEN(K$(J)) 600 C2=POS(L$," ",C1)-1 610 E=POS(L$,"\",C1) 620 IF E<>0 THEN 630\E=256 630 Q1=POS(L$,"'",C1) 640 Q2=POS(L$,'"',C1) 650 IF C2<>0 THEN 660\C2=E-1 660 IF (E-Q1)*Q1>0 THEN 570 670 IF (E-Q2)*Q2>0 THEN 570 680 GOSUB 1000 690 GOTO 570 700 NEXT J 710 PRINT #2:L$ 730 NEXT I 740 PRINT "DONE" 750 END 1000 S$=SEG$(L$,C1,C2) 1010 S=VAL(S$) 1020 IF S>=L0 THEN 1030\RETURN 1030 FOR K=0 TO C 1040 IF L(K)=S THEN 1070 1050 NEXT K 1060 RETURN 1070 L1$=SEG$(L$,1,C1-1) 1080 L3$=SEG$(L$,C2+1,256) 1090 L2$=STR$(M(K)) 1100 L$=L1$&L2$&L3$ 1110 RETURN 2000 PRINT "TOO MANY LINES"\STOP 2010 PRINT "LINE NO. TOO BIG"\STOP 2020 END