anchor.diff:    end;
   
     // test finish point coordinates
  -  // todo? finishX/finishY?
  -  S := @Params.Finish;
  -  if (Cardinal(S.X) >= MapWidth) or (Cardinal(S.Y) >= MapHeight) then
  -  begin
  -    with S^ do
  -    RaiseCoordinates(X, Y, 'finish');
  -    Exit;
  -  end;
  -
  -  // pathless finish tile
     FinishX := Params.Finish.X;
     {$ifNdef CPUX86}
     FinishY := Params.Finish.Y;
     {$endif}
  +  if (Cardinal(FinishX) >= MapWidth) or (Cardinal({$ifdef CPUX86}Params.Finish.Y{$else}FinishY{$endif}) >= MapHeight) then
  +  begin
  +    RaiseCoordinates(Params.Finish.X, Params.Finish.Y, 'finish');
  +    Exit;
  +  end;
  +
  +  // pathless finish tile
     Cell := @FInfo.CellArray[Integer(MapWidth) * {$ifdef CPUX86}Params.Finish.Y{$else}FinishY{$endif} + FinishX];
     CellInfo := Cell.NodePtr;
     if (CellInfo and NODEPTR_FLAG_ALLOCATED <> 0) then
  
positive.code:   begin
      if (Cardinal(S.X) >= MapWidth) or (Cardinal(S.Y) >= MapHeight) then
      begin
        with S^ do
        RaiseCoordinates(X, Y, 'start');
        Exit;
      end;
  
  
negative.code:   begin
      if (Cardinal(S.X) >= MapWidth) or (Cardinal(S.Y) >= MapHeight) then
      begin
        RaiseCoordinates(S.X, S.Y, 'excluded');
        Exit;
      end;
  
  