anchor.diff:      Helper.CompressionMethod    := Item.CompressionMethod;
       Helper.ShannonFanoTreeCount := Item.ShannonFanoTreeCount;
       Helper.OnProgress           := Archive.OnProgress;
  -    Helper.OnRequestNthDisk     := Archive.OnRequestNthDisk;
  -    Helper.Archive              := Archive;
  -    if Archive.Spanned then
  -      with Archive do begin
  -        Helper.ArchiveName := ArchiveName;
  -        Helper.CurrentDisk := CurrentDisk;
  -        Helper.Spanned := True;
  -        Helper.Mode := Mode;
  -      end;
       Result := Helper.Execute;
     finally
       Helper.Free;
  
positive.code:     FDictionarySize : TAbZipDictionarySize;
      FShannonFanoTreeCount : Byte;
      FOnProgress : TAbProgressEvent;
      FOnRequestNthDisk : TAbRequestNthDiskEvent;
      FCurrentProgress : Byte;
      {spanning variables}
      FSpanned : Boolean;
      FArchiveName : string;
      FArchive : TAbArchive;
      FCurrentDisk : Word;
      FMode : Word;
  
      FOutBuf : PAbByteArray;          {output buffer}
      FOutSent : LongInt;              {number of bytes sent to output buffer}
  
negative.code:     FInEof  : Boolean;               {set when FInLeft = 0}
      FCurByte : Byte;                 {current input byte}
      FBitsLeft : Byte;                {bits left to process in FCurByte}
  
      FZStream : TStream;
    protected
      procedure DoProgress( Progress : Byte; var Abort : Boolean );
        virtual;
      procedure uzFlushOutBuf;
        {-Flushes the output buffer}
  