10 CLEAR 1000:IF MAXFILES<2 THEN MAXFILES=2 20 CLS 30 PRINT@7," 1) AUTOMATIC NUMBERING":PRINT@47," 2) NUMBERING A DO FILE":PRINT@87," 3) RENUMBER A DO FILE":PRINT@127," 4) CHECKSUM A DO FILE" 40 CLOSE:CLOSE:CLOSE:IF FL$<>"" THEN PRINT@167," 5) RUN THE FILE: ";FL$ 50 IF FL$<>"" THEN PRINT@207," 6) KILL THE FILE: ";FL$ 60 IF FL$<>"" THEN PRINT@247," 7) LOAD THE FILE: ";FL$ 70 PRINT" PICK A NUMBER [0 FOR MENU]";:N=VAL(INPUT$(1)):IFN=0THENMENU 80 IFN=1GOTO220 90 IFN=2GOTO160 100 IFN=3GOTO330 110 IFN=4GOTO280 120 IF FL$<>""AND N=5 THEN RUN FL$ 130 IF FL$<>""AND N=6 THEN KILL FL$:RUN 140 IF FL$<>""AND N=7 THEN LOAD FL$ 150 GOTO 70 160 CLS:RV$=CHR$(27)+"p":NV$=CHR$(27)+"q":LINE(10,10)-(228,28),1,BF:PRINT@90,RV$"NUMBERS IN A .DO FILE"NV$:PRINT 170 INPUT"FILE";F$:GOSUB 440:FL$=F$:OPENF$FORAPPENDAS1:INPUT"START LINE (10)";S$:IF S$="" THEN S=10 ELSE S=VAL(S$) 180 INPUT"END LINE (300)";E$:IF E$="" THEN E=300 ELSE E=VAL(E$) 190 INPUT"STEP (10)";X$:IF X$="" THEN X=10 ELSE X=VAL(X$) 200 FORI=STOESTEPX:A$=STR$(I) 210 PRINT#1,MID$(A$,2):NEXTI:GOTO 20 220 CLS:RV$=CHR$(27)+"p":NV$=CHR$(27)+"q":LINE(0,10)-(238,28),1,BF:PRINT@88,RV$"AUTOMATIC LINE NUMBERING"NV$:PRINT 230 INPUT"FILE";F$:GOSUB 440:FL$=F$:OPENF$FORAPPENDAS1 240 INPUT"STARTING LINE (10)";S$:IF S$="" THEN S=10 ELSE S=VAL(S$) 250 INPUT"STEP (10)";X$:CLS:IF X$="" THEN X=10 ELSE X=VAL(X$):I=S-X 260 I=I+X:PRINTI;:LINEINPUTA$:IF A$="" THEN CLOSE #1:GOTO 20 270 I$=STR$(I):PRINT#1,MID$(I$,2)+" "A$:GOTO 260 280 CLS:RV$=CHR$(27)+"p":NV$=CHR$(27)+"q":LINE(0,10)-(238,28),1,BF:PRINT@90,RV$"CHECKSUM A .DO FILE"NV$:PRINT 290 INPUT"FILE";F$:IF F$="?" THEN FILES:GOTO 290 300 GOSUB 440:FL$=F$:OPENF$FORINPUTAS1:CLS 310 IFEOF(1)THENPRINT"CHECKSUM";O:GOSUB 460:FORT=0TO4999:NEXT:CLOSE :GOTO 20ELSEL=L+1:LINEINPUT#1,A$:N=LEN(A$):IFN>WTHENW=N 320 PRINT@121,L"lines, width"W;:IFN=0THEN310ELSEFORI=1TON:O=O+ASC(MID$(A$,I,1)):NEXTI:GOTO310 330 CLS:RV$=CHR$(27)+"p":NV$=CHR$(27)+"q":LINE(0,10)-(238,28),1,BF:PRINT@90,RV$"RENUMBER A .DO FILE"NV$:DEFSTRD-I:PRINT 340 INPUT"FILE ";F$:IF F$="?" THEN FILES:GOTO 340 350 GOSUB 440:FL$=F$:GOSUB430 360 LINEINPUT#1,E:IFNOTEOF(1)THENZ=Z+1:GOTO360 370 DIMA(Z):GOSUB430:INPUT"FIRST NUMBER (10)";M$:IF M$="" THEN M=10 ELSE M=VAL(M$) 380 INPUT"STEP (10)";K$:IF K$="" THEN K=10 ELSE K=VAL(K$) 390 FORY=0TOZ:LINEINPUT#1,E:A(Y)=VAL(E):NEXTY:GOSUB430:OPEN"X"FOROUTPUTAS#2:FORY=0TOZ:LINEINPUT#1,E:E=MID$(STR$(M+K*Y),2)+MID$(E,LEN(STR$(VAL(E)))):RESTORE:FORS=1TO6:J=1:READD 400 J=INSTR(J,E,D):IFJTHENJ=J+LEN(D)ELSENEXT:PRINT#2,E:NEXT:CLOSE:KILLF$:NAME"X.DO"ASF$:GOTO 20 410 H=MID$(E,J,1):IFH=" "ORH=","THENJ=J+1:GOTO410ELSEIFH<"0"ORH>"9"THEN400ELSEV=VAL(MID$(E,J)):W=LEN(STR$(V))-1:O=-1 420 O=O+1:IFO>ZTHENPRINTETAB(J-1)"BAD#":ENDELSEIFV=A(O)THENG=STR$(M+K*O):E=LEFT$(E,J-1)+MID$(G,2)+MID$(E,J+W):J=J+LEN(G):GOTO410ELSE420 430 CLOSE:OPENF$FORINPUTAS1:RETURN:DATAGOTO,GOSUB,THEN,ELSE,RESTORE,RESUME 440 IF RIGHT$(F$,3)=".do" OR RIGHT$(F$,3)=".DO" THEN RETURN 450 IF INSTR(1,F$,".")=0 THEN F$=F$+".do":RETURN ELSE F$=LEFT$(F$,LEN(F$)-1):GOTO 450 460 OPEN "cksum.do" FOR APPEND AS #2:PRINT#2,"Checksum for file "+FL$+" =";O:CLOSE #2:RETURN 470 END