anchor.diff:      CellInfo := Self.FInfo.CellArray[Width * Y + X].NodePtr;
       if (CellInfo and NODEPTR_FLAG_ALLOCATED <> 0) then
       begin
  +      {$ifdef LARGEINT}
  +      NodeBuffers := Pointer(@FInfo.NodeAllocator.Buffers);
  +      {$endif}
         Result := PCPFNode(
  -                {$ifdef LARGEINT}FInfo.NodeAllocator.Buffers[CellInfo shr LARGE_NODEPTR_OFFSET] +{$endif}
  +                {$ifdef LARGEINT}NodeBuffers[CellInfo shr LARGE_NODEPTR_OFFSET] +{$endif}
                   CellInfo and NODEPTR_CLEAN_MASK
                    ).Tile;
       end else
  
positive.code: 
  procedure TTileMap.Update(const ATiles: PByte; const X, Y, AWidth,
    AHeight: Word; const Pitch: NativeInt);
  begin
    {$ifNdef CPFLIB}
      FCallAddress := ReturnAddress;
    {$endif}
  
  end;
  
  procedure TTileMap.GrowNodeAllocator(var Buffer: TCPFInfo);
  
negative.code:   _X, _Y: Word;
    _Self: Pointer;
    CellInfo: NativeUInt;
  
    {$ifdef LARGEINT}
      NodeBuffers: PCPFNodeBuffers;
    {$endif}
  begin
    if (X >= Width) or (Y >= Height)  then
    begin
  