home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / stg_v4.lzh / crc.c < prev    next >
C/C++ Source or Header  |  1994-11-11  |  556b  |  35 lines

  1. /* OS9 Standard CRC function */
  2.  
  3. #include "stglib.h"
  4.  
  5. #ifndef _OS9
  6. crc(start,size,sum)
  7. unsigned char *start,*sum;
  8. int size;
  9. {
  10.     if (!start) crcfb(0,sum);
  11.     else
  12.     while (size--) crcfb(*(start++),sum);
  13. }
  14.  
  15. crcfb(byt,sum)
  16. unsigned char byt;
  17. int *sum;
  18. {
  19.     register unsigned char sav;
  20.  
  21.     sav=byt^((*sum>>16)&0xff);
  22.     *sum<<=8;
  23.     *sum&=0xffff00;
  24.     *sum^=sav<<1;
  25.     *sum^=sav<<6;
  26.  
  27.     if ( (sav>>7)&1 ^ (sav>>6)&1 ^ (sav>>5)&1 ^ (sav>>4)&1
  28.        ^ (sav>>3)&1 ^ (sav>>2)&1 ^ (sav>>1)&1 ^ sav&1 )
  29.         *sum^=0x800021;
  30.     *sum|=0xff000000;
  31.  
  32. }    
  33.  
  34. #endif
  35.