anchor.diff:    end;
   end;
   { -------------------------------------------------------------------------- }
  -function FCI_GetTempFile(lpTempName: PChar; TempNameSize: Integer;
  +function FCI_GetTempFile(lpTempName: PAnsiChar; TempNameSize: Integer;
                            Archive: TAbCabArchive) : Integer; cdecl;
     {obtain temporary filename}
   var
  -  TempPath : array[0..255] of Char;
  -  Prefix : array[0..10] of Char;
  +  TempPath : array[0..255] of AnsiChar;
   begin
     Archive.FTempFileID := Archive.FTempFileID + 1;
  -  StrPCopy(Prefix, 'VMS');
     if (Archive.TempDirectory <> '') then
  -    StrPCopy(TempPath, Archive.TempDirectory)                            {!!.02}
  +    StrPLCopy(TempPath, AnsiString(Archive.TempDirectory), Length(TempPath)){!!.02}
     else
  -    GetTempPath(255, TempPath);                                          {!!.02}
  -  GetTempFileName(TempPath, Prefix, Archive.FTempFileID, lpTempName);    {!!.02}
  +    GetTempPathA(255, TempPath);                                         {!!.02}
  +  GetTempFileNameA(TempPath, 'VMS', Archive.FTempFileID, lpTempName);    {!!.02}
     Result := 1;
   end;
   
  
positive.code: function VerifyCab(const Fn : string) : TAbArchiveType;
  
  implementation
  uses
    AbExcept;
    
  type
    PWord    = ^Word;
    PInteger = ^Integer;
  
negative.code: procedure TAbCabArchive.Add(aItem : TAbArchiveItem);
    {add a file to the cabinet}
  var
    Confirm, DoExecute : Boolean;
    FP, FN : array[0..255] of AnsiChar;
    FH : HFILE;
    Item : TAbCabItem;
  begin
    if (FMode <> fmOpenWrite) then begin
  