home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / packery / xpk_source / xpkmaster / checksum.c < prev    next >
C/C++ Source or Header  |  1996-10-19  |  626b  |  39 lines

  1. #ifndef XPKMASTER_CHECKSUM_C
  2. #define XPKMASTER_CHECKSUM_C
  3.  
  4. /* Routinesheader
  5.  
  6.     Name:        checksum.c
  7.     Main:        xpkmaster
  8.     Versionstring:    $VER: checksum.c 1.0 (05.10.96)
  9.     Author:        SDI
  10.     Distribution:    PD
  11.     Description:    Simple checksum routines
  12.  
  13.  1.0   05.10.96 : first real version
  14. */
  15.  
  16. #include <exec/types.h>
  17.  
  18. UBYTE hchecksum(STRPTR ptr, ULONG count)
  19. {
  20.   register UBYTE sum = 0;
  21.  
  22.   while(count-- > 0)
  23.     sum ^= *ptr++;
  24.  
  25.   return sum;
  26. }
  27.  
  28. UWORD cchecksum(ULONG *ptr, ULONG count)
  29. {
  30.   register ULONG sum = 0;
  31.  
  32.   while(count-- > 0)
  33.     sum ^= *ptr++;
  34.  
  35.   return (UWORD) ((sum ^ (sum >> 16)) & 0xffff);
  36. }
  37.  
  38. #endif /* XPKMASTER_CHECKSUM_C */
  39.