File: RESEQ.BA of Tape: Various/ETH/ba1
(Source file text)
90 REM PROGRAM RESEQ 100 DIM L$(72),F$(1),C$(1),N$(16) 110 DIM O$(16) 120 DIM L2$(72) 130 DIM N(350) 140 F$=CHR$(28) 150 PRINT "INFILE"; 160 INPUT N$ 170 PRINT "OUTFILE"; 180 INPUT O$ 190 PRINT "START,STEP"; 200 INPUT S1,S 210 S1=INT(ABS(S1)) 220 S=INT(ABS(S)) 230 T=0 240 N2=0 250 FILE #1:N$ 260 I=1 270 INPUT #1:L$ 280 IFEND #1 THEN 450 290 L=LEN(L$) 300 GOSUB 1110 310 IF N1>0 THEN 350 320 PRINT "NO LINE NUMBER" 330 PRINT L$ 340 GO TO 260 350 IF N1>N2 THEN 390 360 PRINT "OUT OF SEQUENCE" 370 PRINT L$ 380 GO TO 260 390 N2=N1 400 T=T+1 410 N(T)=N1 420 IF T<350 THEN 260 430 PRINT "TOO MANY LINES" 440 STOP 450 RESTORE #1 460 FILEV #2:O$ 470 N2=S1 480 INPUT #1:L$ 490 IFEND #1 THEN 860 500 I=1 510 L=LEN(L$) 520 GOSUB 1110 530 L2$=STR$(N2) 540 PRINT #2:L2$; 550 L$=SEG$(L$,I,72) 560 N2=N2+S 570 F=0 580 D=POS(L$,F$,1)\P=D 590 IF D=0 THEN 620 600 L2$=SEG$(L$,P+1,72) 610 L$=SEG$(L$,1,P-1) 620 I=POS(L$,"GOTO",1)+4 630 IF I>4 THEN 880 640 I=POS(L$,"GO TO",1)+5 650 IF I>5 THEN 880 660 I=POS(L$,"THEN",1)+4 670 IF I>4 THEN 880 680 I=POS(L$,"GOSUB",1)+5 690 IF I>5 THEN 880 700 I=POS(L$,"GO SUB",1)+6 710 IF I>6 THEN 880 720 IF F=0 THEN 740 730 PRINT #2:F$; 740 PRINT #2:L$; 750 F=F+1 760 IF D>0 THEN 790 770 PRINT #2: 780 GO TO 480 790 D=POS(L2$,F$,1)\P=D 800 IF D>0 THEN 830 810 L$=L2$ 820 GO TO 620 830 L$=SEG$(L2$,1,P-1) 840 L2$=SEG$(L2$,P+1,72) 850 GO TO 620 860 CLOSE #2 870 STOP 880 L=LEN(L$) 890 GOSUB 1050 900 IF C=32 THEN 890 910 IF C<0 THEN 1020 920 I=I-1 930 P=I 940 GOSUB 1110 950 IF N1=0 THEN 1020 960 FOR J=1 TO T 970 IF N1<>N(J) THEN 1010 980 Q$=STR$(J*S-S+S1) 990 L$=SEG$(L$,1,P-1)&Q$ 1000 GO TO 720 1010 NEXT J 1020 PRINT "BAD REFERENCE" 1030 PRINT L$ 1040 GOTO 720 1050 IF I<=L THEN 1080 1060 C=-1 1070 RETURN 1080 C=ASC(SEG$(L$,I,I)) 1090 I=I+1 1100 RETURN 1110 N1=0 1120 GOSUB 1050 1130 IF C<48 THEN 1170 1140 IF C>57 THEN 1170 1150 N1=N1*10+C-48 1160 GOTO 1120 1170 IF C<0 THEN 1190 1180 I=I-1 1190 RETURN 1200 END