anchor.diff:      function FindWhiteCode: Integer;
       function Find2DCode:    Integer;
       function NextBit: Boolean;
  +
  +    //2D decompression routines
  +    procedure UpdateChangingElem;
     public
       constructor Create(Options: Integer; SwapBits, WordAligned: Boolean; Width: Cardinal);
     end;
  
positive.code: var
    RunLength: Integer;
    EOLCount: Integer;
    ChangingElems: array [Boolean] of array of Integer;  //coordinates of these pixels on prev. row
    curChangingElem: Integer; //even (0,2,...) means changing from white to black,
                              //odd (1,3,...) are black to white
    prevChangingElem: Integer;
    BitPos: Integer;
  
    RowUsed: Boolean;
    RowCount: Integer;
    //--------------- local functions -------------------------------------------
  
  
negative.code:     FTarget: PByte;
      FFreeTargetBits: Byte;
      FWordAligned: Boolean;
  
      //some fields for 2D compression. Will be used in Fax3 (T4) as well as Fax4 (T6) decoders
      fChangingElems: array [Boolean] of array of Integer;  //coordinates of these pixels on prev. row
      fcurChangingElem: Integer; //even (0,2,...) means changing from white to black,
                              //odd (1,3,...) are black to white
      fprevChangingElem: Integer;
      fRowUsed: Boolean;
      fBitPos: Integer;
  
      procedure MakeStates;
    protected
      procedure ReverseBits(Source: Pointer; PackedSize: Integer);
  