[Back to CRC SWAG index] [Back to Main SWAG index] [Original]

    (* ===========================================================================
    Date: 09-29-93 (11:16)
    From: HELGE HELGESEN
    Subj: Checksums?

           How does one compute simple checksums? For example for a byte
           sequence $8A $05 $7E $1C, what would the checksum be? Where
           could I get some info on this?

    Here's one that simply adds each byte together and sends back the
    result:
    ===========================================================================*)

    function MakeCheckSum(p: pointer; length: word): byte; assembler;
    asm
      cld
      push ds
      xor  ah, ah
      mov  cx, length
      jcxz @x
      lds  si, p
    @1:
      lodsb
      add  ah, al
      loop @1
    @x:
      pop  ds
      mov  al, ah
    end;

    So you call this like this:

    x:=MakeCheckSum(@myvar, length_of_var);

[Back to CRC SWAG index] [Back to Main SWAG index] [Original]