0 CLS:PRINT:PRINT"CHECKALL 1.1 by James Main Kenney 1996":PRINT:PRINT"Calculates for named files or for files on a named list:":PRINT"sizes, full checksums, cyclically weighted sums with mnemonics":PRINT:DEFINT A-R,T-Z:ON ERROR GOTO 10:GOTO 12 1 WHILE NOT EOF(3):B=ASC(INPUT$(1,3)):N=N+1:S=S+B:M=(M+B*(1+(N AND 63)))AND 16383:IF B>126 THEN H=H+1 2 WEND:Y=Y+1:K=M MOD 95+32:Q$=SPACE$(6-LEN(STR$(N)))+STR$(N)+SPACE$(8-LEN(STR$(S)))+STR$(S)+SPACE$(7-LEN(STR$(M)))+STR$(M)+SPACE$(4-LEN(STR$(K)))+STR$(K)+" "+CHR$(K):PRINT Q$:IF H THEN PRINT,,,H;W$ 3 IF D$=""THEN 5 ELSE Q$=N$+SPACE$(12-LEN(N$))+Q$:CLOSE 1:OPEN D$ FOR INPUT AS 1 4 IF NOT EOF(1)THEN LINE INPUT#1,R$:IF R$<>Q$ THEN 4 ELSE PRINT,,"(duplicate line)"ELSE CLOSE 1:OPEN D$ FOR APPEND AS 1:PRINT#1,Q$:Z=Z+1:IF H THEN PRINT#1,,H;W$ 5 IF A THEN 7 ELSE IF EOF(2)THEN 21 ELSE C$=INPUT$(1,2):C=ASC(C$):IF C<33 OR C=34 OR C>122 OR INSTR("()[]<>\/`'.,;:",C$)THEN IF P THEN W=W+1:GOTO 8 ELSE IF N$=""OR C$<>"."THEN N$="":GOTO 5 6 N$=N$+C$:P=INSTR(N$,"."):IF P=0 THEN 5 ELSE E$=RIGHT$(N$,LEN(N$)-P):IF P>9 OR LEN(E$)>3 THEN N$=E$:P=0:GOTO 5 ELSE 5 7 IF J=1 OR(J=0 AND E=0)THEN 9 ELSE READ A$:IF A$="*"THEN 9 ELSE IF A$=E$ THEN 7 ELSE N$=LEFT$(N$,P)+A$ 8 A=1:H=0:M=0:N=0:S=0:X=X+1:PRINT,,USING"\ \";N$;:CLOSE 3:OPEN P$+N$ FOR INPUT AS 3:GOTO 1 9 A=0:E=0:P=0:N$="":E$="":RESTORE:IF L$>""THEN 5 ELSE 20 10 IF ERR=53 OR ERR=76 THEN PRINT" (file not in path)"ELSE IF ERR=52 OR ERR=64 THEN PRINT" (bad filename)"ELSE IF ERR=55 THEN PRINT" (file already open)"ELSE IF ERR=5 OR ERR=6 THEN PRINT" (overflow)":STOP ELSE PRINT" (error"ERR") 11 IF ERL=14 THEN RESUME 13 ELSE IF ERL=16 THEN RESUME 15 ELSE E=1:RESUME 7 12 W$="bytes > 126":PRINT"At prompts press only ENTER (null entry) for default":DATA DO,BA,CO,CA,100,200,NEC,BAS,EXE,ICO,DOC,,* 13 PRINT:INPUT"File to append filenames and data to (null entry for none)";D$ 14 IF D$>""THEN CLOSE 1:OPEN D$ FOR APPEND AS 1 15 IF R<>2 THEN CLS:FILES:PRINT"File listing files to check (null entry for direct entry of filenames later)?":LINE INPUT L$ 16 IF L$>""THEN CLOSE 2:OPEN L$ FOR INPUT AS 2 17 IF R<3 THEN INPUT"Path of files to check (null entry for current)";P$:IF P$>""THEN IF RIGHT$(P$,1)<>"\"THEN P$=P$+"\ 18 PRINT:PRINT"Try alternative extensions:":PRINT,"(N)ever, (A)lways, or (O)nly if file not found (default)?":J=INSTR("NA=na",INPUT$(1))MOD 3 19 H$="Filename Bytes Chksum Wtdsm Mnems":G$=STRING$(39,"-"):PRINT:PRINT,,H$:PRINT,,G$:IF D$>""THEN PRINT#1,G$:PRINT#1,DATE$,TIME$:PRINT#1,"List: "L$:PRINT#1,"Path: "P$:PRINT#1,H$:PRINT#1,G$ 20 IF L$>""THEN 9 ELSE INPUT"File to check";N$:IF N$=""THEN SYSTEM ELSE P=INSTR(N$,"."):IF P THEN E$=RIGHT$(N$,LEN(N$)-P):GOTO 8 ELSE N$=N$+".":P=LEN(N$):GOTO 8 21 BEEP:PRINT:PRINT"Search complete for"W"possible filename(s) found in "L$:PRINT X"filename(s) tried with all selected extensions":PRINT Y"file(s) found and checked in path "P$:IF D$>""THEN PRINT"New data for"Z"file(s) appended to "D$ 22 PRINT:PRINT"Rerun with new filename (L)ist or new (P)ath or (B)oth,":PRINT,,"or (E)xit CHECKALL (default)?":W=0:X=0:Y=0:Z=0:R=INSTR("BPL=bpl",INPUT$(1))MOD 4:IF R THEN 14 ELSE SYSTEM .