home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / proglc / zoo141_c.lzh / ADDBFCRC.C next >
C/C++ Source or Header  |  1987-02-07  |  821b  |  36 lines

  1. /* adbfcrc.c */
  2.  
  3. #include "options.h"
  4. /*
  5. addbfcrc() accepts a buffer address and a count and adds the CRC for
  6. all bytes in the buffer to the global variable crccode using
  7. CRC-16.
  8.  
  9. CRC computation algorithm taken from source code for ARC 5.12, which
  10. in turn took it from an article by David Schwaderer in the April 1985
  11. issue of PC Tech Journal.
  12.  
  13. I claim no copyright over the contents of this file.
  14.  
  15.                                     -- Rahul Dhesi 1986/12/31
  16.  
  17. */
  18.  
  19. extern unsigned int crccode;
  20. extern unsigned crctab[];
  21.  
  22. void addbfcrc(buffer,count)
  23. char *buffer;
  24. int count;
  25.  
  26. {
  27.    register unsigned int localcrc;
  28.    register int i;
  29.    localcrc = crccode;
  30.  
  31.    for (i=0; i<count; i++)
  32.       localcrc = (localcrc>>8) ^ crctab[(localcrc ^ (buffer[i])) & 0x00ff];
  33.    crccode = localcrc;
  34. }
  35.  
  36.