12345678910111213141516171819202122232425262728293031323334353637 |
- #include "data.h"
- word crc_update(char far * data, word size)
- {
- word i;
- word j;
- word crc = 0;
- for (j = 0; j < size; j++) {
- crc = crc ^ ((word) data[j] << 8);
- for (i = 0; i < 8; i++) {
- if (crc & 0x8000)
- crc = (crc << 1) ^ 0x1021;
- else
- crc <<= 1;
- }
- }
- return crc;
- }
- word crc_update_mem(unsigned long addr, word size)
- {
- word i;
- word j;
- word crc = 0;
- for (j = 0; j < size; j++) {
- crc = crc ^ ((word) * (byte *) (addr + j) << 8);
- for (i = 0; i < 8; i++) {
- if (crc & 0x8000)
- crc = (crc << 1) ^ 0x1021;
- else
- crc <<= 1;
- }
- }
- return crc;
- }
|