home *** CD-ROM | disk | FTP | other *** search
- procedure CRC (var CRCreg : Word; var Buff : Buffer; Count : Integer);
- {------------------------------------------------------------
- File : CRC.PAS Vers. 1.0
- Last Edit : 16.10.88
- Autor : (c) G. Born
- Progr. Spr.: Turbo Pascal 4.0 / 5.0
-
- Hilfprogramm zur Berechnung der CRC - Summe in Turbo Pascal.
- Es wird das Polynom y = x^16 + x^15 + x^2 + 1 verwendet
- Der Aufruf der Routine erfolgt mit:
-
- CRC (CRCreg, Buff, Count)
-
- CRCreg = Word mit dem CRC Ergebnis
- Buff = Feld mit den Ausgabebytes
- Count = Integer * 2 Variable mit der Zahl der Zeichen
-
- Die Berechnung erfolgt über successive Polynomdivision.
- ------------------------------------------------------------}
- CONST Poly = $A001; { Generator - Polynom }
-
- VAR i,j : Integer;
- bytes : Byte;
- carry : Byte;
- begin
-
- for i := 1 TO Count do { lese alle Zeichen }
- begin
- bytes := Buff[i]; { hole Zeichen }
- for j := 1 TO 8 do { bearbeite 8 Bit }
- begin
- carry := (CRCreg XOR bytes) AND 1; { XOR low Bit }
- bytes := bytes div 2; { shift right }
- CRCreg := CRCreg div 2; { schiebe rechts }
-
- IF carry = 1 THEN { Übertrag ? }
- CRCreg := CRCreg XOR poly; { xor Polynom }
- end;
- end;
-
- end;{ crc }
-