[Back to CRC SWAG index] [Back to Main SWAG index] [Original]
{
>I'm looking For code to calculate the CRC32 of a series of Characters.
...Unless you're CRCing a very large amount of data, this CRC-16
routine should do.
NOTE: This routine requires either TP6 or TP7 to compile.
}
{ Return a 16-bit CRC number For binary data. }
Function Crc16(Var Data; wo_Size : Word) : Word; Assembler;
Asm
push ds
xor dx, dx
lds si, Data
mov bx, wo_Size
@L1:
xor ah, ah
lodsb
mov cx, 8
shl ax, cl
xor dx, ax
mov cx, 8
@L2:
shl dx, 1
jnc @L3
xor dx, $1021
@L3:
loop @L2
dec bx
jnz @L1
pop ds
mov ax, dx
end; { Crc16. }
[Back to CRC SWAG index] [Back to Main SWAG index] [Original]