0 SCREEN,0:PRINT:PRINT" CHKALL 1.1 by James Main Kenney 1996":PRINT:PRINT"Calculates for named files or for files on a named list: sizes, checksums, and cyclically weighted sums w/mnemonics":MAXFILES=3:CLEAR322:DEFINTA-R:ONERRORGOTO7:GOTO9 1 IFNOTEOF(3)THENB=ASC(INPUT$(1,3)):N=N+1:S=S+B:M=(M+B*(1+(NAND63)))AND16383:IFB<127THEN1ELSEH=H+1:GOTO1 2 K=MMOD95+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):PRINTQ$:Q$=N$+SPACE$(12-LEN(N$))+Q$:N=0:S=0:M=0:N$="":IFHTHENBEEP:PRINT,H;W$ 3 IFD$=""THEN5ELSECLOSE1:OPEND$FORINPUTAS1 4 IFNOTEOF(1)THENLINEINPUT#1,R$:IFR$<>Q$THEN4ELSEPRINT"(duplicate line)"ELSECLOSE1:OPEND$FORAPPENDAS1:PRINT#1,Q$:IFHTHENPRINT#1,,H;W$ 5 IFL$=""THENBEEP:GOTO13ELSEIFEOF(2)THENBEEP:MENUELSEC$=INPUT$(1,2):IFASC(C$)<33ORASC(C$)=34ORASC(C$)>122ORINSTR("()[]<>\/`',;:",C$)THENN$="":GOTO5ELSEIFC$<>"."THENN$=N$+C$:GOTO5ELSEIFN$=""ORLEN(N$)>6THENN$="":GOTO5 6 N$=N$+".DO":PRINTN$;SPACE$(12-LEN(N$));:CLOSE3:OPENP$+N$FORINPUTAS3:H=0:GOTO1 7 IFERR=52THENPRINT" (file not in path)"ELSEIFERR=53THENPRINT" (file already open)"ELSEIFERR=51ORERR=55THENPRINT" (bad filename)"ELSEIFERR=7THENPRINT" (out of memory)":ENDELSEPRINT" (error"ERR") 8 IFERL=9THENRESUME9ELSEIFERL=10THENRESUME10ELSERESUME5 9 W$="bytes > 126":D$="":INPUT"File to append filenames and data to (null entry for none)";D$:IFD$>""THENOPEND$FORAPPENDAS1 10 CLS:FILES:L$="":INPUT"File listing files to check (null entry for direct entry of names later)";L$:IFL$>""THENOPENL$FORINPUTAS2 11 CLS:PRINT:INPUT"Path of files to check (null entry for computer RAM; R for Booster Pak RAM; CASfor tape; 0 or 1 for TPDD2; 0 for TPDD1)";P$:IFP$>""THENIFINSTR(P$,":")=0THENP$=P$+": 12 PRINT:H$="Filename Bytes Chksum Wtdsm Mnems ":G$=STRING$(39,"-"):PRINT:PRINTH$;G$:IFD$>""THENPRINT#1,G$;DATE$" "TIME$:PRINT#1,"List: "L$:PRINT#1,"Path: "P$:PRINT#1,H$;G$ 13 IFL$>""THEN5ELSEN$="Menu":INPUT"File to check";N$:IFN$="Menu"THENMENUELSEP=INSTR(N$,"."):IFPTHENN$=LEFT$(N$,P-1):GOTO6ELSE6