File RESEQ.BA (BASIC source file)

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

1000 REM      RESEQ.BA      11/24/76       RESEQ V04G 
1010 REM 
1020 REM RESEQ - PROGRAM - VERSION : 4 - EDIT : G
1030 REM
1040 REM MIT BACKUP-FILE UND DEFAULT EXT. ( XXXXXX.BA )
1050 REM
1060 REM DEFAULT START (1000), DEFAULT STEP (10)
1070 REM
1080 REM INTERNER BUFFER FUER :
1081 REM
1082 REM 150 ZEILEN IN 16 K
1090 REM
1100 REM LETZTE AENDERUNG : 23-NOV-76      W. HOUBEN
1110 REM
1120 REM .R BCOMP
1130 REM *RESEQ/K/B/N
1140 REM .SA SYS RESEQ
1150 REM
1160 DIM L$(150,72),F$(1),C$(1),N$(16),M$(16)
1170 DIM L2$(72),V1$(12)
1180 LET V1$ = " RESEQ V04G "
1190 DIM N(150)
1200 LET X1 = 150
1210 LET F$=CHR$(28)
1220 PRINT "**";V1$;DAT$(0);" **"
1230 PRINT "FILE        : ";
1240 INPUT N$
1250 LET S=POS(N$,".",1)
1260 LET M$=N$&".BK"
1270 IF S <> 0 THEN 1290
1280 LET N$=N$&".BA"
1290 FILEV #3: M$
1300 FILE #1: N$
1310 FOR Y2 =  0 TO X1 STEP 1
1320 INPUT #1: L$(Y2)
1330 PRINT #3: L$(Y2)
1340 IFEND #1 THEN 1380
1350 NEXT Y2
1360 PRINT "** BUFFER OVERFLOW **  ";L$(X1)
1370 STOP
1380 CLOSE #3
1390 CLOSE #1
1400 PRINT  "** BACKUP-FILE ";M$;" CREATED **"
1410 PRINT "START,STEP  : ";
1420 INPUT S1,S
1430 PRINT "** WAIT **"
1440 IF S1<> 0 THEN 1460
1450 LET S1=1000
1460 IF S<>0 THEN 1490
1470 LET S=10
1480 LET S1 = S1 + S
1490 LET S1=INT(ABS(S1))
1500 LET S=INT(ABS(S))
1510 LET T=0
1520 LET N2=0
1530 LET Y3 = -1
1540 LET I=1
1550 LET Y3 = Y3 + 1
1560 IF Y3+1 > Y2 THEN 1730
1570 LET L=LEN(L$(Y3))
1580 GOSUB 2440
1590 IF N1>0 THEN 1630
1600 PRINT "** NO LINE NUMBER **  ";
1610 PRINT L$(Y3)
1620 GOTO 1540
1630 IF N1>N2 THEN 1670
1640 PRINT "** OUT OF SEQUENCE **  ";
1650 PRINT L$(Y3)
1660 GOTO 1540
1670 LET N2=N1
1680 LET T=T+1
1690 LET N(T)=N1
1700 IF T<X1 THEN 1540
1710 PRINT "** TOO MANY LINES **"
1720 STOP
1730 LET Y3 = -1
1740 PRINT T;"LINES"
1750 PRINT "** PASS 1 COMPLETE **"
1760 FILEV #2:N$
1770 LET S1$=STR$(S1-S)
1780 PRINT #2: S1$;" REM ",N$,DAT$(0),V1$
1790 LET N2=S1
1800 LET Y3 = Y3 + 1
1810 IF Y3+1 > Y2 THEN 2180
1820 LET I=1
1830 LET L=LEN(L$(Y3))
1840 GOSUB 2440
1850 LET L2$=STR$(N2)
1860 PRINT #2: L2$;
1870 LET L$(Y3)=SEG$(L$(Y3),I,72)
1880 LET N2=N2+S
1890 LET F=0
1900 LET D=POS(L$(Y3),F$,1) \ LET P=D
1910 IF D=0 THEN 1940
1920 LET L2$=SEG$(L$(Y3),P+1,72)
1930 LET L$(Y3)=SEG$(L$(Y3),1,P-1)
1940 LET I=POS(L$(Y3),"GOTO",1)+4
1950 IF I>4 THEN 2210
1960 LET I=POS(L$(Y3),"GO TO",1)+5
1970 IF I>5 THEN 2210
1980 LET I=POS(L$(Y3),"THEN",1)+4
1990 IF I>4 THEN 2210
2000 LET I=POS(L$(Y3),"GOSUB",1)+5
2010 IF I>5 THEN 2210
2020 LET I=POS(L$(Y3),"GO SUB",1)+6
2030 IF I>6 THEN 2210
2040 IF F=0 THEN 2060
2050 PRINT #2:F$;
2060 PRINT #2:L$(Y3);
2070 LET F=F+1
2080 IF D>0 THEN 2110
2090 PRINT #2:
2100 GOTO 1800
2110 LET D=POS(L2$,F$,1) \ LET P=D
2120 IF D>0 THEN 2150
2130 LET L$(Y3)=L2$
2140 GOTO 1940
2150 LET L$(Y3)=SEG$(L2$,1,P-1)
2160 LET L2$=SEG$(L2$,P+1,72)
2170 GOTO 1940
2180 PRINT "** PASS 2 COMPLETE **"
2190 CLOSE #2
2200 STOP
2210 LET L=LEN(L$(Y3))
2220 GOSUB 2380
2230 IF C=32 THEN 2220
2240 IF C<0 THEN 2350
2250 LET I=I-1
2260 LET P=I
2270 GOSUB 2440
2280 IF N1=0 THEN 2350
2290 FOR J=1 TO T
2300 IF N1<>N(J) THEN 2340
2310 LET Q$=STR$(J*S-S+S1)
2320 LET L$(Y3)=SEG$(L$(Y3),1,P-1)&Q$
2330 GOTO 2040
2340 NEXT J
2350 PRINT "** BAD REFERENCE **  ";
2360 PRINT L$(Y3)
2370 GOTO 2040
2380 IF I<=L THEN 2410
2390 LET C=-1
2400 RETURN
2410 LET C=ASC(SEG$(L$(Y3),I,I))
2420 LET I=I+1
2430 RETURN
2440 LET N1=0
2450 GOSUB 2380
2460 IF C<48 THEN 2500
2470 IF C>57 THEN 2500
2480 LET N1=N1*10+C-48
2490 GOTO 2450
2500 IF C<0 THEN 2520
2510 LET I=I-1
2520 RETURN
2530 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