Should it be 0 to dataLength – 1 ? And 0 to 7 ? From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of James Sugrue I have the following code. I have tried to convert
into #define CRCDIV 0x8005 unsigned int computeCRC (unsigned char *data,
unsigned int dataLength) { unsigned int accum; unsigned int currByte; unsigned int currBit; unsigned int dataStore; accum = 0; // repeat for all bytes in message from the header
to the data for (currByte = 0; currByte < dataLength;
currByte++) { dataStore = ((unsigned int) data[currByte])
<< 8; for (currBit = 0; currBit < 8; currBit++) { if ((dataStore ^ accum) & 0x8000) { accum = (accum << 1) ^ CRCDIV; } else { accum <<= 1; } dataStore <<= 1; } } return (accum); } function computeCRC (data : PChar; dataLength :
Integer) : Integer; const CRCDIV = $8005; var accum : Integer; currByte : Integer; currBit : Integer; dataStore : Integer; begin accum := 0; // repeat for all bytes in message from the header
to the data for currByte := 1 to dataLength do begin dataStore := Integer(data[currByte]) shl 8; for currBit := 1 to 8 do begin if ((dataStore or accum) and $8000) > 0 then begin accum := (accum shl 1) or CRCDIV; end else begin accum := accum shl 1; end; dataStore := dataStore shl 1; end; end; result := accum; end; James Sugrue Software Developer WA Systems Timaru Phone 03 688-1131 |
- [DUG]: C Conversion James Sugrue
- Re: [DUG]: C Conversion gajo
- Re: [DUG]: C Conversion Dennis Chuah
- RE: [DUG]: C Conversion James Sugrue
- Re: [DUG]: C Conversion Pedrocelli
- Re: [DUG]: C Conversion Bevan Edwards
- RE: [DUG]: C Conversion Jason Coley
- RE: [DUG]: C Conversion James Sugrue
- RE: [DUG]: C Conversion Paul Heinz
- RE: [DUG]: C Conversion James Sugrue