'(w7anf@qsl.net) (w7anf@qsl.net) REM crc.bas Jim FitzSimons W7ANF 27 March, 2001 INPUT "How many parts to this message"; TotalParts% OPEN "crc.out" FOR OUTPUT AS #2 FOR Part% = 1 TO TotalParts% DO PRINT "Part "; Part%; " file name "; INPUT FileName$ 'Check for valid file. IF (FileName$ = "") OR (FileName$ = CHR$(27)) THEN END IF UCASE$(DIR$(FileName$)) = UCASE$(FileName$) THEN EXIT DO PRINT FileName$; " does not exist. " LOOP OPEN FileName$ FOR INPUT AS #1 'CR and LF are not included in the CRC checksum. crc& = 0 DO IF EOF(1) THEN EXIT DO LINE INPUT #1, message$ PRINT #2, message$ FOR i% = 1 TO LEN(message$) crc& = crc& XOR (ASC(MID$(message$, i%, 1)) * 256&) FOR j% = 0 TO 7 IF (crc& AND &H8000) <> 0 THEN crc& = ((crc& AND &H7FFF) * 2) XOR 4129& ELSE crc& = crc& * 2 END IF NEXT j% NEXT i% LOOP CLOSE #1 PRINT "--- begin"; crc&; " crc part"; Part%; " of "; TotalParts%; crc&; " ---" PRINT "--- end"; crc&; " crc part"; Part%; " of "; TotalParts%; crc&; " ---" PRINT #2, "--- begin"; crc&; " crc part"; Part%; " of "; TotalParts%; crc&; " ---" PRINT #2, "--- end"; crc&; " crc part"; Part%; " of "; TotalParts%; crc&; " ---" NEXT Part% CLOSE #2 END '(w7anf@qsl.net) (w7anf@qsl.net)