anchor.diff:    BitmapData: PBYTE;
     ptr: PByte;
   begin
  +  BitmapOutputPointer := nil;
  +  BitmapData := nil;
  +  ptr := nil;
  +
     // Allocate memory to store the bitmap
     Bitmapdata := GetMem( TotalSize );
   
     // Copy header to bitmap
  -  MemCopy( _Header, BitmapData, sizeof( _Header ) );
  +  MemCopy( _Header, BitmapData^, sizeof( _Header ) );
   
     // Copy palette into bitmap
     ptr := BitmapData + sizeof( _Header );
  -  MemCopy( _pPalette, ptr, GetPaletteSize );
  +  MemCopy( _pPalette^, ptr^, GetPaletteSize );
   
     BytesWritten := 0;
   
  
positive.code:     case Block._CompressionType of
        0,1: // uncompressed (I'm not sure about 1)
        begin
          MemCopy( Block._Data, BitmapOutputPointer, Block._Size );
          BytesWrittenFromBlock := Block._Size;
          inc( BytesWritten, BytesWrittenFromBlock );
        end;
  
negative.code: 
      // Now read the block
      Block._Data := GetMem( Block._Size );
      FileHandle.Read(Block._Data^, Block._Size);
  
      inc( BytesRead, Block._Size  );
      Blocks.Add( Block );
  