>Yes, I seeded it with 0. Here's the code I used:
>
> UInt16 crc16;
> Byte crcMSB, crcLSB;
> Byte *byteP;
>
> crc16 = Crc16CalcBlock(inputStr, StrLen(inputStr), 0);
>
> byteP = (Byte *)(&crc16);
>
> crcLSB = *(byteP);
>
> byteP++;
> crcMSB = *(byteP);
>
>With inputStr pointing at "The", MSB ends up with 0x8e, LSB with 0x3c.
They
>should be 0x3b and 0xae, respectively. Any suggestions? Thanks for your
help...
I don't know about the actual values you're getting from Crc16CalcBlock
(though they match a Crc routine that I once got from another source).
However, your method for getting the individual bytes from crc16 could be
better. Using:
crcLSB = (Byte) crc16;
crcMSB = (Byte) (crc16 >> 8);
protects you from the endian-ness of the processor.
-- Keith Rollin
-- Palm OS Emulator engineer