anchor.diff:  
   function CalcTarHeaderChkSum(const TarH : TAbTarHeaderRec): LongInt;
   var
  -  HdrBuffer : PAnsiChar;
  +  HdrBuffer : PByte;
     HdrChkSum : LongInt;
     j : Integer;
   begin
     { prepare for the checksum calculation }
  -  HdrBuffer := PAnsiChar(@TarH);
  +  HdrBuffer := PByte(@TarH);
     HdrChkSum := 0;
   
     {calculate the checksum, a simple sum of the bytes in the header}
  
positive.code:   S := PadString(IntToOctal(Value), SizeOf(Arr8));
    pBytes := TEncoding.ANSI.GetBytes(S);
    for I := 0 to FTarHeaderList.Count - 1 do
      if TAbTarHeaderType(FTarHeaderTypeList.Items[I]) in [FILE_HEADER, META_DATA_HEADER] then
        Move(pBytes[0], PAbTarHeaderRec(FTarHeaderList.Items[I]).Mode, Length(pBytes));
    FTarItem.Dirty := True;
  end;
  
negative.code:       FTarItem.ItemType := SUPPORTED_ITEM;
        if FTarItem.ItemReadOnly then            { Since some of the Headers are read only. }
          FTarItem.ItemType := UNSUPPORTED_ITEM; { This Item is unsupported }
        FTarHeaderTypeList.Add(FILE_HEADER);
      end
      else if CharInSet(Chr(PTarHeader.LinkFlag), AB_UNSUPPORTED_F_HEADERS) then
      begin { This Header type is in the Set of unsupported File type Headers }
        FoundItem := True; { Exit Criterion }
        FTarItem.ItemType := UNSUPPORTED_ITEM;
        FTarHeaderTypeList.Add(FILE_HEADER);
      end
      else { These are unknown header types }
      begin { Note: Some of these unknown types could have known Meta-data headers }
        FoundItem := True;
        FTarItem.ItemType := UNKNOWN_ITEM;
        FTarHeaderTypeList.Add(UNKNOWN_HEADER);
      end;{ end LinkFlag parsing }
    end; { end Found Item While }
    { PTarHeader points to FTarHeaderList.Items[FTarHeaderList.Count-1]; }
  