{***********************************************************************}
{									}
{ __NPtrSup   Normalize a pointer					}
{									}
{ function  __NPtrSup(ThisPtr : pointer) : pointer;			}
{									}
{	      ThisPtr	Pointer to normalize.  A pointer is normalized	}
{			if the offset portion is between 0 and 15.	}
{									}
{ Description __NPtrSup accepts a general pointer parameter and returns }
{	      an equivalent normalized pointer as the function value.	}
{	      The advantage of using normalized pointers is that they	}
{	      may be safely converted to long integers and also com-	}
{	      pared.  Turbo Pascal always returns normalized pointers	}
{	      when working with the heap.				}
{									}
{	      A pointer is normalized by adding to the segment value	}
{	      the number of paragraphs represented by the offset (the	}
{	      high order 12 bits).  The new offset is just the low	}
{	      order 4 bits of the offset (the address in excess of the	}
{	      paragraphs).						}
{									}
{ Version     4.00 (C)Copyright Blaise Computing Inc.  1987		}
{_______________________________________________________________________}

function __NPtrSup(ThisPtr : pointer) : pointer;

  begin {__NPtrSup}

    __NPtrSup := Ptr(_VectorAddr(ThisPtr)._Seg +
				    (_VectorAddr(ThisPtr)._Ofs shr 4),
		     _VectorAddr(ThisPtr)._Ofs and $F)

  end;	{__NPtrSup}
