File RESEQ.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

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



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search