Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!bsu-cs!ibmbin From: hslrswi!naz@mcvax.cwi.nl (Norman H. Azadian) Newsgroups: comp.binaries.ibm.pc Subject: v01i144: chksum, 32-bit file checksumming program Summary: chksum.arc, 32-bit file checksumming program Message-ID: <5738@bsu-cs.UUCP> Date: 16 Feb 89 18:12:05 GMT Sender: ibmbin@bsu-cs.UUCP Followup-To: comp.binaries.ibm.pc.d Lines: 246 Approved: dhesi@bsu-cs.UUCP Posting-number: Volume 01 Issue 144 Originally-from: Norman H. Azadian Submitted-by: Norman H. Azadian Archive-name: chksum/chksum.uue [ Source is in comp.sources.misc. -- R.D. ] Chksum is a little program that I've developed and used a lot over the years. The prime difference between it and the ones that it copies, is that it can read a list of pathnames from stdin. This turns out to be very handy indeed. Also, it uses a 32-bit CRC, which means that a false match is 2**16 times less likely than with the 16-bit brands. It produces identical results on both PCs and VAXen. Performance on an AT-03 with disk caching is just over 1 MByte/minute. The maximum rate at which I can read the disk, with DOS calls, is about 1.5 MByte/minute. The 32-bit CRC routine was donated by kind souls on the net. I have tweaked it for my use, principally by adding inline optimized assembly code for my PC. I don't pretend to know what is going on inside, and I regard it as a minor miracle that it actually produces the same numbers on PCs as on VAXen. Perhaps somebody will tell me if it produces the "right" numbers. I hereby donate this program to the Public Domain for any and all purposes. Enjoy. PAPER: Norman Azadian; Hasler AG; Belpstrasse 23; 3000 Berne 14; Switzerland X.400: naz@hslrswi.hasler UUCP: ...{uunet,ukc,mcvax,...}!cernvax!hslrswi!azadian VOICE: +41 31 63 2178 BITNET: naz%hslrswi.UUCP@cernvax.BITNET [ Will also give byte counts, and total checksum for all files. Doesn't take wildcards on command line, but "stuff . | chksum -v --" worked well for me. Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 15050 11895 this uuencoded posting checksum size (bytes) file 9977 8611 chksum.arc -- R.D. ] BEGIN--cut here--cut here begin 644 chksum.arc M&@A#2$M354TN15A%`"4EA"$``%`2PXX<-YXK```,3;1X"F`!@!\`0`!0(?#O MG[$`?*```+``P)D`(`!`.J!A(@`?'M%X;.3QG<<%`29N2`F@"DLX+)6Q],;R M'DL)`B;"R`E@",\H/-GPY,.3$4]./%GQY,63&4]N/-GQY,>3P8")%JX"<*,5 MFE9X6@40F$AB+(`;9J>8A64VFEE\9B<4F!AB[EF[2NQBLS>LJO, M[CB[\>SVL\L!`!@`'@"D`9#Q#8`3`"P'R4P9P!P`%0#D`;`!@!X`60#\`6!' M-8`,`")UEGT!P*37`"H!J)$;0`X`F``,`@Y`'/%ZQ"4$"/YB.0`AS@TY9^9< MB8#@:ZX#"`.@F,:)WDDI>(AJ?``*`*(]3\^:O2+VP=5[8\\H@'I.]KOG#R1` M?:S^`.P#H#L#J"<"`>I]`$`4`4C$8&L,OL<@+@L&$$R%#%@4@`(!7!1!AP'X M`"(ZYBFX1P`L`'#B;R>Q(C"CH^!&J`MQ,) MJNU$I2(`0!T$E&H`J@D0XX4!)@#RP[\:,#H,`!8T8H0I4&B2T628@K)``IAH MZL\Z9$"*`*0&1#QQQ1<[BX`:`(A,LB8H5,BG`1YW"D`?-!QC!"DI_6.`$PL( M2FB^!B#*KP]85$2'!2Y'RB@]D*&!0@*:I&09GPRL4X#.I/!KZLT#I'-'RW;X MHTEC$V51"#!UF,#U1#Y#L8"OP*)*P2*Z+A`*HKE*JZR@=; M6JBO2:/*M!TC.XV&CHQ.735G6&O,\0Z;TI'`JIJD9FD6OEH1K!NOQFH#HHQN M$8`F=\J&J:]:*$W!J]Z^JBVC8;P>N\J^4J&T"J5V3<<$)E/,:!J^QZ;R.MQ* MK#P:@30O.S$(,#I!`FHHH,E$NLT\*KQ\^H/.)_TPVDD`E5-MMUT0=I2%\>DI$,30QS[^Q`]!U8YH MC3.4`4Q'-.$1#5@I$93]R0K^ MT!0_2G4J@)6*'_\Z@#$,L8]]M&`="W"$,!:!#1,HX@"((.,^_N$$`PS""`@@ M0#I68C`$F(`8'W#C`70@1SJ$#1X`<.,1EI,.]=@0)0!(QXP$E;24I(,:`-`$ M%GB2#F;HT'26?)B@A&=)*47,$/S81\44X!DK+@`:=(#`*5-9L5QXA$\$6(T#(!"`1Q+!010!0%&?<*$#E09($P`S'.L(PXL8YDF;,DO8N1R#'TTP3_N M(`!MWH!1Q4`F!8F1M2-,I`4]`4`1`(`$A0#`"@`8`P#*``"1T*$],"#`.0:P MBP$08P#-&$`U!N`-?OH3H`(EZ`!\0`!&),,1P;C"+[1`@%PT``#\D,&(XN]FYX,;TN%V-CC7J\C%J'W" MSGD5W%[WOM>;F:6C&<+Q`0_KT`)&O4.J8+4F[93&`$;A`Z[76Q0:Q.H]\#G+ M`$Q-U@(850`"?/5Z")BKW5ZE51MP%0T+,.Q4L1<\I55!L720P*ODICW)QM4` MZX#`9@>+AGP>]J^^`EH`ZN``1C'!LWE=QP52BQ([B-8&0&,4&F#[5^UQKZ]E M)09@<;NL%9ZHA.D#'9;XAR*\H``9'.R]\8WO(OI+@$4$^+]&.(`, MK)``+28"B^3U1[7X,2KEDLE,:%*3=-T$)SG1R4YXTA.?[/&G?RA8O"?.HA'X M05X&5`M75M"'IO!A,'S\PPCX$*3!^/%D?I@`$0<@!##H((!UH./'1C!`@\%, M,PMXX0&CX,(#3.8`*$"*`9!2`"Y@``!=6$8*%9/G!RY%3CIU81GP>M697Z7F ME_EU9GX&M(YC:`4R!UF+FF#E:!8!CT488ZG_B.4@_*$`.BQ@RE<^0)77(0Y0 M&^-.F_Y''3:0XA7OH+QU&`#G#%"'!;!+2@#P0J+)O(YYP,L#N/`'`BKF`--8 M,='PLD+3).6OU>"2TI;&-!U6,`(#\&/!E3;&2`V&,$`\@0$(P$5#=%V./Z^C M&3:C0SYZ<%$ZT*,'':'#-RR]#G,DF]L$)WK(CO;3Y`FW=0`,S]J(@C-``3%:.4I3`%[4M/Y`\AP,4P"V&/6./"7U#` M=\TAO@AD)"T85SX"`\3]CW50`M^+.((?%W$%F2>"WR9(Q`$&8`Q\?QUAB3@" M`;"N;ZZ?]`!J9*,@,5$"+Z5#"__XM16NP`]N.\(#PE#`WU.T`GNP0LMT,,$* M_L&#'C!0!<`P@8[JP`#$/^`(AV?;.DB=^3KL8QW;8(0VZ$V`%0!C!=+X@A<^ M\&=XF4P!;H80W(P-3#79W&]AV^`\`<9$FOI@`>)M'01-Q:Q1'50<'+W MEW_%!P]*9W,X%SJ5$@!9L`!,Z'!"F`HY$4LP)W/;Q%.=@"`L9X52%W$900!.(@$0'7K MT`FE4G]LI8,9MP^VJ(=\.!%^F(<.=W9AIW;LD@YJ\`\Q@`$P'\*P&W_5WX!J$UPMT8$:(#R M=U;^L(`-^(!8I$6@MH,9,FT66`&M-F0?&((C.'HFB((JR()R-A&XEFCKL`PI MR0_K(`\+V(3L.#"S((5K0PYF5A^P)ERT&48T)F?N9:A*2E7 M\0J[MPYR0%[V4"WT4`!7,0C2D![J$`W8$`W=B0V9F9B.9@7NH"GLD),G)@^: M`@_K(`,&PPZAR&\&`P_^V$UB=T?L0`!S4`"!8`3N```0<$?PP)_^:03R(*!W MQ)F#<)C_4"K`Z47%^2]K9`%F\`"A0`8/@)NZ&69R8`2OI@\=B@]SP`-X(P88 M"@8/\('+]BH7^BH:2E:$B2G,F9=VP`^C"0"EB2D#B(+W&78'D),O*%YJ63&O M:8?6]()\X@Y7T&A):0`%@&K;"9[>2:7?"0[1(`W1@*72<&*9$F:^9L6(!X`LP,&((*&E`X'<"E_>BE6D*"EDJ!\D)L)4"KP$`!0E`X! M*H,0\`L3T7T#LR56F61+-@CZH&H#8'U31Y,3X05?D&BX,!:X5J.0@J.D69@A M.J)T``/DI0_5PF1>8&5?AY\'`&IQFA)SRA.#8`Q;=`T^EF3%>I5-NBJ[FJ,[ MBCVG"67#6JR@EJQ`B@MH*GI-]J,`Z051UJR)%`AT.A'A"F6Y(AZC(((&0P_S M*0!XJ9=\^0^OY@\=R@\EQPAV>I6@=@_+F(TF<`^1&H_I8"4&NPAW>IB)"6H4 MZ7;]NI=]J:I0]J8*RQ,@U[`/6PI7I\`K]D`[]T`\+2&8%0&57";(+.[(.:U0'0'47 M%P@GD)=P>@8"T!#J*:APRR[K\`U,P`9H8`1.\`9X@`5U0`9I,`=C``=N4`9% M8`9G<`0E\"$8$``<$`![=KLF$`#-L0(!0`,!D`/!&P!;(`!Z(`"=(`"@(`#6 M003,^[S.&P@```,Q(`,S0`,U8`,W@`,Y$`9B,`9D4`9F``(MP`9M``)FD`9R M,`?W!"^!P`Y4$`!-R@A>8`_\4`QVH``ZM^@\!W`)U8`"`X`3U4);UP`,KT,$4 MO`*;QP,@0'F`X`<)6@?A0,$@`'H\,`(=_,'U``'K$`T\``,@%\$PP`KHH`$" M4`C2D`<&<`_:@,.&R0\\X`*/*<0%X+9)Q@C/X`C'\`NUEPNA(0^N$`COP$K1 M<`XN\`^E$!DX'`"L4&\X+`!K_`TX3`!KC`VYX"_0@\,@D`O#M`X(D`NLM`X# MX,?6Z`<.P%$%,`C'(`#V\+\"0`=;5P&(W&4'@'J$T`YTH`&94,D$K`AN(`^( MX`;S8,1Y<"1&,`\MH,3W@`V#H`T`D`B$7"KZ<#-;8P3ZD!*U0$77@,6-X`O` MX`]&##!#.0(KL`T[H`QWT&:+(`RH=P_QP$98P,SK(`#,?`C3X`**\`GM]`17 MU@'K4`V+G,,$#`CYT&D0(,X08,*EC`=:H\W&4``PT`B.T,LK\`S5H@\K$`R: MH@\SE0)#E@A.@`\M?,%TP``!C0>Q1D=4Y@3\D`(*[0<:\,VY20$M3`\^/`#H ML`H`P'_T@`Z[T#(*_0?U@`Z=X-'Z@`<'``LP@`ZIT"Z<^<]XD`!N5`!'@`X+ MMY,(;=*P``+H\`@LG0XTX`]X3``@<$<.X(#($,^_@`7"X0;\H`#KP`SHLX`^Y MD!*,``WQO,MO3=83D0Y'\`_I@`W]@`Y.P'";$G8%\,V-C##'4`2MIR=- MN@A^H`"!<`X7'`C/```]<`_U"`"-/`"DR@/L$MXD!P!=,+399GTA0-^L M%`!T@`'[O6RXP`/S]]\!SG/NV0$&WI5+TWVB(X6"X@H*,`$`@'VUVGN;!@!\ M<`(5C@`$C`LY`06VB&?=%P?NB`"F"@!!F06(0`@@\"W:I@QH&6:$0`X,9`C@ M``A-+0X,'\<`0[563X6Y;CY00,4`SEU0PA8+`'\`%S@`"CP.&0"PU> M\&<*9N7R=][IB4`0"]\!"%T`X@!PN! MRP`!X`*,X`&UYPC%8`*A'GB]P`<#6@P/$`W=$`L#,`WM$`CE\`\?8+`#H`X< MY0'@H`#30)D[X`'>T"8AMPC"SM[[(*!RP$\"N@C3$`L$,`WCH`^.4`V+,`[[ M(%!"$'86P`HR)RBJP$J)E"NV\.T&0`OBONOB(',X0*/8/&??O8W\@&:4`0@ M(O8L(+]6X'OLHJ0QM-^:`)12*`HY?HX5H_=9(`HA8&LKGO4/GJ&J1.@"L.P`:M'@[1$`YX,_FA4/D' MB;`,^0.=W6T_D``@]V2@Q0XZN#`^"`=(N6#]=ZR=;X$,80"B?ZL/?JI2R*JN M:GT?@`O%!@7`M@ZPI^(/SHJ%B0O(\.`_=1%90/NW[SB"I,(BSP.R#].GIMF@ MU67>D`YPD(]6EHO,N(MP8P.3_RJ5_RJBKPD;H!4S@_?&)84O^`\>4(DOD_W^ MWWOX0/=,XORXH`_17_C4CRFX0`;8#R)9\(*T\`,-!UHN`"^T``0-!Q`&UI&H MLH@=K1_K"A`T"&21%P.`?H%8`(".@RZ`^/V@0^"?"QP+/-)8X*&8%02+G#!H M%N+#'`.C7"G`]>]?EV4+:?EP:(#E'`0Q9]:\N0+8S9Q"%!EAL.AD2@4\?0*5 M2?/?(FA'"WJ@%<1DSY8_@U8E:A1GP2M;K7@EYD7SH/`/&*\T!!'01.0/%8 M@(@0Y\,/&&E+9`$/A%%V("3:"V&''09^!BRZ??F"E<4*%B/X9\,U\=B:!@!X M)9F8@@`V8J>@OXG>&,:7(!9,TA@$L``!2&2P\+\-?8@)%-AM)X^/$CG@+E MH62,$X4`4X'14H!\"_/D'X(,$2H@?`]=E9Q8[G/!C!5K% M,,865$XXP`@PJNT@3!T7[.`/'1_($4$_`^0S0#Q/.&%/,`'0$0`I5:YCP)59 M;AE-.G0(,$\I_,#E12=W\80+`$2PA)@]P@!"AP)T#D!'`0<"0-9=5U@1BBI0 M6<`*5/`LHD\N!``PC3"+:!/(./#\$X@X#P`PP#"#2`,`3X/L`T`?"JS`J38` MX#%#.A1MVBD`]PA3:1TE3*/,(MB4D.DTZTSZSP,+3",%%)K(`4`MS1'0X6?5 M+7*-%U_(02[[A(ZAP[FVJ*`'$'@:P`M_^8`1:0=:CG$(,/\,"DP_Q@PQ2(. M"*.`(\&LD`TM2K"TQ0%8R'%!(AZ@>\R["@``P"B$LG9H4=#>=+),[E758!O=OR,%UTI<#8'7;6T_O1O77 M9[^]""7,(0+XXB.M-.B[M^$\\/%'7X8<<@C?^.XG-NYY#W-7:\/6_A?`^I$/ M=`;\'0C@)[^4Y4YN```!"$H0`QBPH0X9U&#\-$A"%9@0!$60@A2>(`40F%`% M(=S@')C'.^]M;GQ>`YO8$-@V$!1/>F%@PQCJP(:G?6\&,FB!&%8G/32480P) MI%\$@2<\NAF.#G"H@_7H\`:F(>^**:O"',)PAC+H(`'G"QH)M]"",90!#72P M0Q=("((]=.]W?"A>'OO@@CZFK(T)*-SAK!>XP M&?`PN+R586E%`*``D0:'\-'AD&_87M/(P,`_HB$!2"@#&^"P@[I!\GNL2\,A MG;A*$+2A#',88QD1F3<03')U?Z1#`JCP!J>QX7IN8$,>6DF&4+*/#;*T7@_- M(,"D]6R*?[1#`JSP/S&\80YE:"4TFS9%-X3AEH<,8BC'ICK6-?&)"9S#'UN0 M`*>MX7MWU-XY<:E,,AM3<&R@T.:61@*0"F<(4D4&$(2`B"%`"PT;#= M$)%C`$$/-L@X#:H@#';0*@A.$+\3\#!H"PSJ``,ZMICF+0QR6%K8LG@G\V4. MK2`XW!K<\(8[;.^D*=V>#"T8.SR$D(,>!&$/(($``"R6`0"XH&%%V,$/QO`( MM5L:,8UY2&J*KP1UF.(,28C9QX%@LT&4(FA%&\,7GA`.'SPD05.XPA:Z%H8E M="U"8[O!T-*6A:B[K5T3R+DRY!""H-69`2P!@P/<@05A<(`[=!&%!&0B`\1H MPP$>00\UP*$&I1A#.D91"3)X0@:(V(8#2($+;N3!`^FH!C@0D0UI7&(%3+!% M`GK!AUCXX0`MP,4Y(M&!7T`"`&2`P"TZ(`\0P$(-2(A#+N;AC2#X@A!]H(8V M-+`.RT(-HK((5,,B&"70``&]$`1!1N`8R+!`&:/RB%O2@10A&0(Q9 M6"$3E=#%,QY0BE[@PA.X$``*$("(`GQ!%ME@@#%(P*I8'((/;WA!!)B`!BRL MH@-A"$8/6F`&6QPX"-Q@3!RV$0!>@$`:F%`!!*KQCD04(A9Q^$`M;&&`4I#C M%Y^8`35P@0Y1).,`>*!!/@#P`$>@(@&6P``F'!".731`#7]H00_:@(!++"X2 M`>#"&,Q!CRBL80UB""('L`&#,A3""0`0@SS:40D#L&$/I0C`!H)!#P0(X@K$ M>$`]C)$-6)0!"NFXA034@0M?+((/B,@%/[[1@6Z((0DMT$8%YL&':3"B#$R@ MQCZP$`99-,$9(=8!'0#`BU&(`P:[H$802O$-)5RC$MC8-S&B08I]T,,:TU!# M.M(P!'YDPPTT,`(BSM`*:.`"#-J80PL(0(1R=&``,_@"$Q2@BF3PH0'=X$$< M"@`%501!`">```06X`M#@(`!R2A!+=!PA5D4HHL)H(89\ M@(ED9",%(L`$-&!!"U1@?E6 MY=L95.\U<>,3XMNV!=1(,XTA0HA#33SXS-(-&FX,HLT'S5C@ M2R!;F)"+/>'<`(BC`"CN2-/`-50,0H`3PLPR0`YAF'#&*?=8``8T31R1 M1A+;W.&&#TJH$8TKW&AA339F+/`-$/#L@,T-4[C"2RK%>+*+-W\\(\L1Z?Q3 M"PPBT(*.H`@1QETU"&'&VFX<8:SRU9[ M+;$Q)+MLM"/`(`,>U%HK++O;=OMMN..6>ZZRS`$`P!\`0-)```(C#$D$`2"L M,,,"`/!P``-(7###!%@,R3\%!X'&`\8$\''(?$#P#\>02'"RP#C`@,,-+[0L MP\L@I#&'MV7$44<:WY(10@,*D`!`Q!DC#``"`.R!,!5OO`%"&V&XD0<(8