home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / PNL Libraries / Assembly / CalcCRC.p < prev    next >
Encoding:
Text File  |  1993-12-11  |  681 b   |  36 lines  |  [TEXT/PJMM]

  1. unit CalcCRC;
  2.  
  3. interface
  4.  
  5.     type
  6.         magicArray = array[0..255] of integer;
  7.         magicPtr = ^magicArray;
  8.  
  9.     procedure CalcCRC (var crc: integer; v: integer);
  10.     procedure CalcCRCBlock (p: univ ptr; len: longInt; var crc: integer);
  11.     procedure CalcMBCRC (var crc: integer; v: integer);
  12.     procedure CalcMBCRCBlock (p: univ ptr; len: longInt; var crc: integer);
  13.     function GetMagic: magicPtr;
  14.  
  15. implementation
  16.  
  17. end.
  18.  
  19. procedure CalcCRC (v: integer);
  20.     var
  21.         temp: boolean;
  22.         i: integer;
  23. begin
  24. {$PUSH}
  25. {$V-}
  26.     for i := 1 to 8 do begin
  27.         temp := BAND(crc, $8000) <> 0;
  28.         crc := BOR(BSL(crc, 1), BSR(v, 7));
  29.         if temp then
  30.             crc := BXOR(crc, $1021);
  31.         v := BAND(BSL(v, 1), $FF);
  32.     end;
  33. {$POP}
  34. end;
  35.  
  36. end.