A large commit.
[pdp8.git] / sw / os8 / v3d / sources / extensions / dectapes / dectape2 / reseq.ba
CommitLineData
81e70d48
PH
11000 DIM L$(80),F$(1),C$(1),N$(16)
21010 DIM L2$(80)
31020 DIM N(350)
41030 LET F$=CHR$(28)
51040 PRINT "FILE";
61050 INPUT N$
71060 PRINT "START,STEP";
81070 INPUT S1,S
91080 LET S1=INT(ABS(S1))
101090 LET S=INT(ABS(S))
111100 LET T=0
121110 LET N2=0
131120 FILE #1:N$
141130 LET I=1
151140 INPUT #1:L$
161150 IFEND #1 THEN 1320
171160 LET L=LEN(L$)
181170 GOSUB 1980
191180 IF N1>0 THEN 1220
201190 PRINT "NO LINE NUMBER"
211200 PRINT L$
221210 GO TO 1130
231220 IF N1>N2 THEN 1260
241230 PRINT "OUT OF SEQUENCE"
251240 PRINT L$
261250 GO TO 1130
271260 LET N2=N1
281270 LET T=T+1
291280 LET N(T)=N1
301290 IF T<350 THEN 1130
311300 PRINT "TOO MANY LINES"
321310 STOP
331320 RESTORE #1
341330 FILEV #2:N$
351340 LET N2=S1
361350 INPUT #1: L$
371360 IFEND #1 THEN 1730
381370 LET I=1
391380 LET L=LEN(L$)
401390 GOSUB 1980
411400 LET L2$=STR$(N2)
421410 PRINT #2: L2$;
431420 LET L$=SEG$(L$,I,80)
441430 LET N2=N2+S
451440 LET F=0
461450 LET D=POS(L$,F$,1) \ LET P=D
471460 IF D=0 THEN 1490
481470 LET L2$=SEG$(L$,P+1,80)
491480 LET L$=SEG$(L$,1,P-1)
501490 LET I=POS(L$,"GOTO",1)+4
511500 IF I>4 THEN 1750
521510 LET I=POS(L$,"GO TO",1)+5
531520 IF I>5 THEN 1750
541530 LET I=POS(L$,"THEN",1)+4
551540 IF I>4 THEN 1750
561550 LET I=POS(L$,"GOSUB",1)+5
571560 IF I>5 THEN 1750
581570 LET I=POS(L$,"GO SUB",1)+6
591580 IF I>6 THEN 1750
601590 IF F=0 THEN 1610
611600 PRINT #2:F$;
621610 PRINT #2:L$;
631620 LET F=F+1
641630 IF D>0 THEN 1660
651640 PRINT #2:
661650 GO TO 1350
671660 LET D=POS(L2$,F$,1) \ LET P=D
681670 IF D>0 THEN 1700
691680 LET L$=L2$
701690 GO TO 1490
711700 LET L$=SEG$(L2$,1,P-1)
721710 LET L2$=SEG$(L2$,P+1,80)
731720 GO TO 1490
741730 CLOSE #2
751740 STOP
761750 LET L=LEN(L$)
771760 GOSUB 1920
781770 IF C=32 THEN 1760
791780 IF C<0 THEN 1890
801790 LET I=I-1
811800 LET P=I
821810 GOSUB 1980
831820 IF N1=0 THEN 1890
841830 FOR J=1 TO T
851840 IF N1<>N(J) THEN 1880
861850 LET Q$=STR$(J*S-S+S1)
871860 LET L$=SEG$(L$,1,P-1)&Q$
881870 GO TO 1590
891880 NEXT J
901890 PRINT "BAD REFERENCE"
911900 PRINT L$
921910 GO TO 1590
931920 IF I<=L THEN 1950
941930 LET C=-1
951940 RETURN
961950 LET C=ASC(SEG$(L$,I,I))
971960 LET I=I+1
981970 RETURN
991980 LET N1=0
1001990 GOSUB 1920
1012000 IF C<48 THEN 2040
1022010 IF C>57 THEN 2040
1032020 LET N1=N1*10+C-48
1042030 GO TO 1990
1052040 IF C<0 THEN 2060
1062050 LET I=I-1
1072060 RETURN
1082070 END