From: MagerValp (MagerValp_at_cling.gu.se)
Date: 2003-09-22 16:04:36
>>>>> "ST" == Spiro Trikaliotis <trik-news_at_gmx.de> writes:
UvB> Well, I had the same problems as Magervalp (crc 32 functions that
UvB> do not work together). And, checking the polynomial mentioned in
UvB> the source code available from 6502.org doesn't match the one
UvB> I've used for years in my own code.
ST> I don't know your exact code. Normally, CRC32 are calculated with
ST> MSB first. Anyway, to optimize the code, depending on
ST> big-/low-endianness, some algorithms in fact need a reversed
ST> polynomial. Have you checked if this is the case in the polynomial
ST> you used?
Yes, there does indeed seem to be a fair bit of confusion about
CRC-32, both wrt the polynomial and the starting seed. However, it
turned out that I just wasn't reading the docs on 6502.org correctly.
The polynomial used is (binary) reversed for performance reasons, and
the result needs to be inverted (result =^ 0xffffffff). After doing
this, it gives me the same result as zip does. However, perl is still
fux0red. The source code for String::CRC lists the following as the
(64-bit) polynomial and the init:
#define HINIT1 0xFAC432B1UL
#define HINIT2 0x0CD5E44AUL
#define POLY1 0x00600340UL
#define POLY2 0x00F0D50BUL
The polynomial is simply shifted one bit for every size down to
CRC-16. I have no idea where they got them from.
--
Wildstar delenda est
___ . . . . . + . . o
_|___|_ + . + . + . Per Olofsson, arkadspelare
o-o . . . o + MagerValp_at_cling.gu.se
- + + . http://www.cling.gu.se/~cl3polof/
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-09-22 16:09:38 CEST