procedure AddChecksum(var data; position: Word); var i,k:Word; dt: array[0..0] of Byte absolute data; begin k := (position div 4)-1; for i := 0 to k do PCardinal(@dt[position])^:=PCardinal(@dt[position])^ xor PCardinal(@dt[i*4])^; end;