浏览代码

+ Updates for missing identifiers

michael 20 年之前
父节点
当前提交
46de50bee4
共有 7 个文件被更改,包括 8404 次插入510 次删除
  1. 402 6
      docs/baseunix.xml
  2. 510 73
      docs/math.xml
  3. 55 0
      docs/sockets.xml
  4. 7428 0
      docs/system.xml
  5. 6 4
      docs/sysutils.xml
  6. 3 416
      docs/unix.xml
  7. 0 11
      docs/unixutil.xml

+ 402 - 6
docs/baseunix.xml

@@ -1124,6 +1124,50 @@ implement the functionality in this unit for the new platform.
 <short>Pointer to <link id="TOff64"/> type.</short>
 <short>Pointer to <link id="TOff64"/> type.</short>
 </element>
 </element>
 
 
+<element name="MAP_PRIVATE">
+<short><link id="FpMMap"/> map type: Changes are private</short>
+</element>
+<element name="MAP_ANONYMOUS">
+<short><link id="FpMMap"/> map type: Don't use a file</short>
+</element>
+<element name="MAP_GROWSDOWN">
+<short><link id="FpMMap"/> option: Memory grows downward (like a stack)</short>
+</element>
+<element name="MAP_DENYWRITE">
+<short><link id="FpMMap"/> option: Ignored.</short>
+</element>
+<element name="MAP_EXECUTABLE">
+<short><link id="FpMMap"/> option: Ignored.</short>
+</element>
+<element name="MAP_LOCKED">
+<short><link id="FpMMap"/> option: lock the pages in memory.</short>
+</element>
+<element name="MAP_NORESERVE">
+<short><link id="FpMMap"/> option: Do not reserve swap pages for this memory.</short>
+</element>
+<element name="MAP_SHARED">
+<short><link id="FpMMap"/> map type: Share changes</short>
+</element>
+<element name="MAP_TYPE">
+<short><link id="FpMMap"/> map type: Bitmask for type of mapping</short>
+</element>
+<element name="MAP_FIXED">
+<short><link id="FpMMap"/> map type: Interpret addr exactly</short>
+</element>
+
+<element name="PROT_READ">
+<short><link id="FpMMap"/> memory access: page can be read</short>
+</element>
+<element name="PROT_WRITE">
+<short><link id="FpMMap"/> memory access: page can be written</short>
+</element>
+<element name="PROT_EXEC">
+<short><link id="FpMMap"/> memory access: page can be executed</short>
+</element>
+<element name="PROT_NONE">
+<short><link id="FpMMap"/> memory access: page can not be accessed</short>
+</element>
+
 <element name="utsname">
 <element name="utsname">
 <short>Record used to return kernel information in <link id="fpUName"/> function.</short>
 <short>Record used to return kernel information in <link id="fpUName"/> function.</short>
 <descr>
 <descr>
@@ -1536,12 +1580,12 @@ directly.
 
 
 <!-- constant Visibility: default -->
 <!-- constant Visibility: default -->
 <element name="WNOHANG">
 <element name="WNOHANG">
-<short><link id="fpWaitpid"/> option: Do not wait for processes to terminate.</short>
+<short><link id="#rtl.baseunix.fpWaitpid"/> option: Do not wait for processes to terminate.</short>
 </element>
 </element>
 
 
 <!-- constant Visibility: default -->
 <!-- constant Visibility: default -->
 <element name="WUNTRACED">
 <element name="WUNTRACED">
-<short><link id="fpWaitpid"/> option: Also report children wich were stopped but not yet reported</short>
+<short><link id="#rtl.baseunix.fpWaitpid"/> option: Also report children wich were stopped but not yet reported</short>
 </element>
 </element>
 
 
 <element name="F_GetFd">
 <element name="F_GetFd">
@@ -2043,7 +2087,7 @@ entry.</dd>
 </dl>
 </dl>
 </errors>
 </errors>
 <seealso>
 <seealso>
-<link id="#rtl.unix.fpSymLink"/>
+<link id="fpSymLink"/>
 <link id="fpUnLink"/>
 <link id="fpUnLink"/>
 </seealso>
 </seealso>
 <example file="bunixex/ex21"/>
 <example file="bunixex/ex21"/>
@@ -3159,7 +3203,7 @@ directory containing it.</dd>
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="FpLink"/>
 <link id="FpLink"/>
-<link id="#rtl.unix.FpSymLink"/>
+<link id="FpSymLink"/>
 </seealso>
 </seealso>
 </element>
 </element>
 
 
@@ -3274,7 +3318,7 @@ Extended error information can be retrieved using <link id="fpGetErrno"/>.
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="FpStat"/>
 <link id="FpStat"/>
-<link id="#rtl.unix.FpLStat"/>
+<link id="FpLStat"/>
 </seealso>
 </seealso>
 <example file="bunixex/ex28"/>
 <example file="bunixex/ex28"/>
 </element>
 </element>
@@ -3301,7 +3345,7 @@ Extended error information can be retrieved using <link id="fpGetErrno"/>.
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="FpStat"/>
 <link id="FpStat"/>
-<link id="#rtl.unix.FpLStat"/>
+<link id="FpLStat"/>
 </seealso>
 </seealso>
 <example file="bunixex/ex28"/>
 <example file="bunixex/ex28"/>
 </element>
 </element>
@@ -4224,6 +4268,358 @@ call this function.
 </seealso>
 </seealso>
 </element>
 </element>
 
 
+<!-- function Visibility: default -->
+<element name="FpMMap">
+<short>Create memory map of a file</short>
+<descr>
+<p>
+<var>FpMMap</var> maps or unmaps files or devices into memory. The different
+arguments determine what and how the file is mapped:
+</p>
+<dl>
+<dt>adr</dt>
+<dd> Address where to mmap the device. This address is a hint,
+and may not be followed.</dd>
+<dt>len</dt><dd> Size (in bytes) of area to be mapped.</dd>
+<dt>prot</dt>
+<dd>
+<p> Protection of mapped memory. This is a OR-ed combination of the
+following constants:</p>
+<dl>
+<dt>PROT_EXEC</dt><dd> The memory can be executed.</dd>
+<dt>PROT_READ</dt><dd> The memory can be read.</dd>
+<dt>PROT_WRITE</dt><dd> The memory can be written.</dd>
+<dt>PROT_NONE</dt><dd> The memory can not be accessed.</dd>
+</dl>
+</dd>
+<dt>flags</dt><dd><p>Contains some options for the mmap call. It is an OR-ed
+combination of the following constants:</p>
+<dl>
+<dt>MAP_FIXED</dt>
+<dd> Do not map at another address than the given address. If the
+address cannot be used, <var>MMap</var> will fail.</dd>
+<dt>MAP_SHARED</dt>
+<dd> Share this map with other processes that map this object.</dd>
+<dt>MAP_PRIVATE</dt>
+<dd> Create a private map with copy-on-write semantics.</dd>
+<dt>MAP_ANONYMOUS</dt>
+<dd> <var>fd</var> does not have to be a file descriptor.</dd>
+</dl>
+<p>
+One of the options <var>MAP_SHARED</var> and <var>MAP_PRIVATE</var> must be present,
+but not both at the same time.
+</p>
+</dd>
+<dt>fd</dt><dd> File descriptor from which to map.</dd>
+<dt>off</dt><dd> Offset to be used in file descriptor <var>fd</var>.</dd>
+</dl>
+<p>
+The function returns a pointer to the mapped memory, or a -1 in case of en
+error.
+</p>
+</descr>
+<errors>
+<p>
+On error, -1 is returned and extended error information is returned by the <link id="fpGetErrno">FpGetErrno</link> function. 
+</p>
+<dl>
+<dt>Sys_EBADF</dt>
+<dd> <var>fd</var> is not a valid file descriptor and 
+<var>MAP_ANONYMOUS</var> was not specified.</dd>
+<dt>Sys_EACCES</dt>
+<dd><var>MAP_PRIVATE</var> was specified, but <var>fd</var> is not open for
+reading. Or <var>MAP_SHARED</var> was asked and <var>PROT_WRITE</var> is  set, fd
+is not open for writing</dd>
+<dt>Sys_EINVAL</dt>
+<dd> One of the record fields <var>Start</var>, <var>length</var> or
+<var>offset</var> is invalid.</dd>
+<dt>Sys_ETXTBUSY</dt>
+<dd><var>MAP_DENYWRITE</var> was set but the object specified
+by fd is open for writing.</dd>
+<dt>Sys_EAGAIN</dt>
+<dd><var>fd</var> is locked, or too much memory is locked.</dd>
+<dt>Sys_ENOMEM</dt>
+<dd> Not enough memory for this operation.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpMUnMap"/>
+</seealso>
+<example file="unixex/ex66"/>
+</element>
+
+<!-- function Visibility: default -->
+<element name="Fpmunmap">
+<short>Unmap previously mapped memory block</short>
+<descr>
+<p>
+<var>FpMUnMap</var> unmaps the memory block of size <var>Len</var>, pointed to by 
+<var>Adr</var>, which was previously allocated with <link id="FpMMap"/>.
+</p>
+<p>
+The function returns <var>True</var> if successful, <var>False</var> otherwise.
+</p>
+<p>
+For an example, see <link id="FpMMap"/>.
+</p>
+</descr>
+<errors>
+In case of error the function returns a nonzero value, 
+extended error information is returned by the <link id="fpGetErrno">FpGetErrno</link> function. 
+See <link id="FpMMap"/> for possible error values.
+</errors>
+<seealso>
+<link id="FpMMap"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="fpLstat">
+<short>Return information about symbolic link. Do not follow the link</short>
+<descr>
+<var>FpLstat</var> gets information about the link specified in <var>Path</var>
+(or <var>FileName</var>, and stores it in <var>Info</var>, which points to a
+record of  type <var>TStat</var>. Contrary to <link id="FpFStat">FpFstat</link>, it stores
+information about the link, not about the file the link points to.
+The function returns zero if the call was succesful, a nonzero return value
+indicates failure.
+failed.
+</descr>
+<errors>
+<p>
+Extended error information is returned  by the <link id="fpGetErrno">FpGetErrno</link>
+function.
+</p>
+<dl>
+<dt>sys_enoent</dt><dd> <var>Path</var> does not exist.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpFStat"/>
+<link id="#rtl.unix.StatFS"/>
+</seealso>
+<example file="unixex/ex29"/>
+</element>
+
+
+<!-- function Visibility: default -->
+<element name="fpNice">
+<short>Set process priority</short>
+<descr>
+<p>
+<var>Nice</var> adds <var>-N</var> to the priority of the running process. The lower the
+priority numerically, the less the process is favored.
+Only the superuser can specify a negative <var>N</var>, i.e. increase the rate at
+which the process is run.
+</p>
+<p>
+If the function is succesful, zero is returned. On error, a nonzero value is returned. 
+</p>
+</descr>
+<errors>
+<p>
+Extended error information is returned by the <link id="fpGetErrno">FpGetErrno</link> function. 
+</p>
+<dl>
+<dt>sys_eperm</dt><dd> A non-superuser tried to specify a negative <var>N</var>, i.e.
+do a priority increase.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpGetPriority"/>
+<link id="FpSetPriority"/>
+</seealso>
+<example file="unixex/ex15"/>
+</element>
+
+<!-- function Visibility: default -->
+<element name="fpGetPriority">
+<short>Return process priority</short>
+<descr>
+<p>
+GetPriority returns the priority with which a process is running.
+Which process(es) is determined by the <var>Which</var> and <var>Who</var> variables.
+<var>Which</var> can be one of the pre-defined <var>Prio_Process</var>,
+<var>Prio_PGrp</var>, <var>Prio_User</var>, in which case <var>Who</var> is the process ID, Process group ID or
+User ID, respectively.
+</p>
+<p>
+For an example, see <link id="FpNice"/>.
+</p>
+</descr>
+<errors>
+<p>
+Error information is returned solely by the <link id="fpGetErrno">FpGetErrno</link>
+function:  a priority can be a positive or negative value.
+</p>
+<dl>
+<dt>sys_esrch</dt>
+<dd> No process found using <var>which</var> and <var>who</var>. </dd>
+<dt>sys_einval</dt>
+<dd> <var>Which</var> was not one of <var>Prio_Process</var>,
+<var>Prio_Grp</var> or <var>Prio_User</var>.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpSetPriority"/>
+<link id="FpNice"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="fpSetPriority">
+<short>Set process priority</short>
+<descr>
+<p>
+<var>fpSetPriority</var> sets the priority with which a process is running.
+Which process(es) is determined by the <var>Which</var> and <var>Who</var> variables.
+<var>Which</var> can be one of the pre-defined constants:
+</p>
+<dl>
+<dt>Prio_Process</dt><dd><var>Who</var> is interpreted as process ID</dd>
+<dt>Prio_PGrp</dt><dd><var>Who</var> is interpreted as process group ID</dd>
+<dt>Prio_User</dt><dd><var>Who</var> is interpreted as user ID</dd>
+</dl>
+<p>
+<var>Prio</var> is a value in the range -20 to 20.
+</p>
+<p>
+For an example, see <link id="FpNice"/>.
+</p>
+<p>
+The function returns zero on success, -1 on failure
+</p>
+</descr>
+<errors>
+<p>
+Extended error information is returned  by the <link id="fpGetErrno">FpGetErrno</link>
+function.
+</p>
+<dl>
+<dt>sys_esrch</dt>
+<dd>No process found using <var>which</var> and <var>who</var>.</dd>
+<dt>sys_einval</dt>
+<dd> <var>Which</var> was not one of <var>Prio_Process</var>,
+<var>Prio_Grp</var> or <var>Prio_User</var>.</dd>
+<dt>sys_eperm</dt>
+<dd>A process was found, but neither its effective or real
+user ID match the effective user ID of the caller.</dd>
+<dt>sys_eacces</dt>
+<dd>A non-superuser tried to a priority increase.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpGetPriority"/>
+<link id="FpNice"/>
+</seealso>
+</element>
+
+
+
+<!-- function Visibility: default -->
+<element name="fpSymlink">
+<short>Create a symbolic link</short>
+<descr>
+<p>
+<var>SymLink</var> makes <var>NewName</var> point to the file in
+<var>OldName</var>, which doesn't necessarily exist. The two files 
+DO NOT have the same inode number. This is known as a 'soft' link.
+</p>
+<p>The permissions of the link are irrelevant, as they are not used when
+following the link. Ownership of the file is only checked in case of removal
+or renaming of the link.
+</p>
+<p>
+The function returns zero if the call was succesful, a nonzero value if the call
+failed.
+</p>
+</descr>
+<errors>
+<p>
+Extended error information is returned  by the <link id="fpGetErrno">FpGetErrno</link>
+function.
+</p>
+<dl>
+<dt>sys_eperm</dt>
+<dd>The filesystem containing oldpath and newpath does not
+support linking files.</dd>
+<dt>sys_eaccess</dt>
+<dd>Write access for the directory containing <var>Newpath</var>
+is disallowed, or one of the directories in <var>OldPath</var> or
+<var>NewPath</var> has no search (=execute) permission.</dd>
+<dt>sys_enoent</dt>
+<dd>A directory entry in <var>OldPath</var> or <var>NewPath</var> does
+not exist or is a symbolic link pointing to a non-existent directory.</dd>
+<dt>sys_enotdir</dt>
+<dd>A directory entry in <var>OldPath</var> or <var>NewPath</var> is
+nor a directory.</dd>
+<dt>sys_enomem</dt><dd>Insufficient kernel memory.</dd>
+<dt>sys_erofs</dt><dd>The files are on a read-only filesystem.</dd>
+<dt>sys_eexist</dt><dd><var>NewPath</var> already exists.</dd>
+<dt>sys_eloop</dt>
+<dd> <var>OldPath</var> or <var>NewPath</var> has a reference to a circular
+symbolic link, i.e. a symbolic link, whose expansion points to itself.
+</dd>
+<dt>sys_enospc</dt>
+<dd>The device containing <var>NewPath</var> has no room for another entry.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpLink"/>
+<link id="FpUnLink"/>
+<link id="FpReadLink"/>
+</seealso>
+<example file="unixex/ex22"/>
+</element>
+
+<!-- function Visibility: default -->
+<element name="fpReadLink">
+<short>Read destination of symbolic link</short>
+<descr>
+<p>
+<var>FpReadLink</var> returns the file the symbolic link <var>name</var> is pointing
+to. The first form of this function accepts a buffer <var>linkname</var> of
+length <var>maxlen</var> where the filename will be stored. It returns the
+actual number of characters stored in the buffer.
+</p>
+<p>
+The second form of the function returns simply the name of the file.
+</p>
+</descr>
+<errors>
+<p>
+On error, the first form of the function returns -1; the second one returns
+an empty string.
+Extended error information is returned  by the <link id="fpGetErrno">FpGetErrno</link>
+function.
+</p>
+<dl>
+<dt>SYS_ENOTDIR</dt>
+<dd>A part of the path in <var>Name</var> is not a directory.</dd>
+<dt>SYS_EINVAL</dt>
+<dd>maxlen is not positive, or the  file is not a symbolic link.</dd>
+<dt>SYS_ENAMETOOLONG</dt>
+<dd>A pathname, or a component of a pathname, was too long.</dd>
+<dt>SYS_ENOENT</dt>
+<dd>the link <var>name</var> does not exist.</dd>
+<dt>SYS_EACCES</dt>
+<dd>No permission to search a directory in the path</dd>
+<dt>SYS_ELOOP</dt>
+<dd>Too many symbolic links were encountered in  translating the pathname.</dd>
+<dt>SYS_EIO</dt>
+<dd>An I/O error occurred while reading from the file system.</dd>
+<dt>SYS_EFAULT</dt>
+<dd>The buffer is not part of the the process's memory space.</dd>
+<dt>SYS_ENOMEM</dt>
+<dd>Not enough kernel memory was available.</dd>
+</dl>
+</errors>
+<seealso>
+<link id="FpSymLink"/>
+</seealso>
+<example file="unixex/ex62"/>
+</element>
+
 </module> <!-- BaseUnix -->
 </module> <!-- BaseUnix -->
 </package>
 </package>
 </fpdoc-descriptions>
 </fpdoc-descriptions>

+ 510 - 73
docs/math.xml

@@ -209,7 +209,7 @@ is used in functions that accept an array of values of arbitrary length.
 </element>
 </element>
 
 
 <element name="arccos">
 <element name="arccos">
-<short></short>
+<short>Return inverse cosine</short>
 <descr>
 <descr>
 <var>Arccos</var> returns the inverse cosine of its argument <var>x</var>. The
 <var>Arccos</var> returns the inverse cosine of its argument <var>x</var>. The
 argument <var>x</var> should lie between -1 and 1 (borders included). 
 argument <var>x</var> should lie between -1 and 1 (borders included). 
@@ -228,7 +228,7 @@ If the argument <var>x</var> is not in the allowed range, an
 </element>
 </element>
 
 
 <element name="arcosh">
 <element name="arcosh">
-<short></short>
+<short>Return inverse hyperbolic cosine</short>
 <descr>
 <descr>
 <var>Arcosh</var> returns the inverse hyperbolic cosine of its argument <var>x</var>. 
 <var>Arcosh</var> returns the inverse hyperbolic cosine of its argument <var>x</var>. 
 The argument <var>x</var> should be larger than 1. 
 The argument <var>x</var> should be larger than 1. 
@@ -252,7 +252,7 @@ exception is raised.
 </element>
 </element>
 
 
 <element name="arcsin">
 <element name="arcsin">
-<short></short>
+<short>Return inverse sine</short>
 <descr>
 <descr>
 <var>Arcsin</var> returns the inverse sine of its argument <var>x</var>. The
 <var>Arcsin</var> returns the inverse sine of its argument <var>x</var>. The
 argument <var>x</var> should lie between -1 and 1. 
 argument <var>x</var> should lie between -1 and 1. 
@@ -272,7 +272,7 @@ exception is raised.
 
 
 
 
 <element name="arctan2">
 <element name="arctan2">
-<short></short>
+<short>Return arctangent of (y/x)</short>
 <descr>
 <descr>
 <var>arctan2</var> calculates <var>arctan(y/x)</var>, and returns an angle in the
 <var>arctan2</var> calculates <var>arctan(y/x)</var>, and returns an angle in the
 correct quadrant. The returned angle will be in the range $-\pi$ to
 correct quadrant. The returned angle will be in the range $-\pi$ to
@@ -296,7 +296,7 @@ If <var>x</var> is zero, an overflow error will occur.
 </element>
 </element>
 
 
 <element name="arsinh">
 <element name="arsinh">
-<short></short>
+<short>Return inverse hyperbolic sine</short>
 <descr>
 <descr>
 <var>arsinh</var> returns the inverse hyperbolic sine of its argument <var>x</var>. 
 <var>arsinh</var> returns the inverse hyperbolic sine of its argument <var>x</var>. 
 
 
@@ -317,7 +317,7 @@ None.
 
 
 
 
 <element name="artanh">
 <element name="artanh">
-<short></short>
+<short>Return inverse hyperbolic tangent</short>
 <descr>
 <descr>
 <var>artanh</var> returns the inverse hyperbolic tangent of its argument <var>x</var>,
 <var>artanh</var> returns the inverse hyperbolic tangent of its argument <var>x</var>,
 where <var>x</var> should lie in the interval [-1,1], borders included.
 where <var>x</var> should lie in the interval [-1,1], borders included.
@@ -339,7 +339,7 @@ exception is raised.
 
 
 
 
 <element name="ceil">
 <element name="ceil">
-<short></short>
+<short>Return the lowest integer number greater than or equal to argument</short>
 <descr>
 <descr>
 <var>Ceil</var> returns the lowest integer number greater than or equal to <var>x</var>.
 <var>Ceil</var> returns the lowest integer number greater than or equal to <var>x</var>.
 The absolute value of <var>x</var> should be less than <var>maxint</var>.
 The absolute value of <var>x</var> should be less than <var>maxint</var>.
@@ -355,7 +355,7 @@ occur.
 </element>
 </element>
 
 
 <element name="cosh">
 <element name="cosh">
-<short></short>
+<short>Return hyperbolic cosine</short>
 <descr>
 <descr>
 <var>Cosh</var> returns the hyperbolic cosine of it's argument {x}.
 <var>Cosh</var> returns the hyperbolic cosine of it's argument {x}.
 </descr>
 </descr>
@@ -372,7 +372,7 @@ None.
 
 
 
 
 <element name="cotan">
 <element name="cotan">
-<short></short>
+<short>Return cotangent</short>
 <descr>
 <descr>
 <var>Cotan</var> returns the cotangent of it's argument <var>x</var>. <var>x</var> should
 <var>Cotan</var> returns the cotangent of it's argument <var>x</var>. <var>x</var> should
 be different from zero.
 be different from zero.
@@ -388,7 +388,7 @@ If <var>x</var> is zero then a overflow error will occur.
 
 
 
 
 <element name="cycletorad">
 <element name="cycletorad">
-<short></short>
+<short>Convert cycle angle to radians angle</short>
 <descr>
 <descr>
 <var>Cycletorad</var> transforms it's argument <var>cycle</var>
 <var>Cycletorad</var> transforms it's argument <var>cycle</var>
 (an angle expressed in cycles) to radians.
 (an angle expressed in cycles) to radians.
@@ -409,7 +409,7 @@ None.
 
 
 
 
 <element name="degtograd">
 <element name="degtograd">
-<short></short>
+<short>Convert degree angle to grads angle</short>
 <descr>
 <descr>
 <var>Degtograd</var> transforms it's argument <var>deg</var> (an angle in degrees)
 <var>Degtograd</var> transforms it's argument <var>deg</var> (an angle in degrees)
 to grads.
 to grads.
@@ -431,7 +431,7 @@ None.
 
 
 
 
 <element name="degtorad">
 <element name="degtorad">
-<short></short>
+<short>Convert degree angle to radians angle.</short>
 <descr>
 <descr>
 <var>Degtorad</var> converts it's argument <var>deg</var> (an angle in degrees) to
 <var>Degtorad</var> converts it's argument <var>deg</var> (an angle in degrees) to
 radians.
 radians.
@@ -453,7 +453,7 @@ None.
 
 
 
 
 <element name="floor">
 <element name="floor">
-<short></short>
+<short>Return the largest integer smaller than or equal to argument</short>
 <descr>
 <descr>
 <var>Floor</var> returns the largest integer smaller than or equal to <var>x</var>.
 <var>Floor</var> returns the largest integer smaller than or equal to <var>x</var>.
 The absolute value of <var>x</var> should be less than <var>maxint</var>.
 The absolute value of <var>x</var> should be less than <var>maxint</var>.
@@ -469,7 +469,7 @@ If <var>x</var> is larger than <var>maxint</var>, an overflow will occur.
 
 
 
 
 <element name="frexp">
 <element name="frexp">
-<short></short>
+<short>Return mantissa and exponent.</short>
 <descr>
 <descr>
 <var>Frexp</var> returns the mantissa and exponent of it's argument
 <var>Frexp</var> returns the mantissa and exponent of it's argument
 <var>x</var> in <var>mantissa</var> and <var>exponent</var>.
 <var>x</var> in <var>mantissa</var> and <var>exponent</var>.
@@ -484,7 +484,7 @@ None
 
 
 
 
 <element name="gradtodeg">
 <element name="gradtodeg">
-<short></short>
+<short>Convert grads angle to degrees angle</short>
 <descr>
 <descr>
 <var>Gradtodeg</var> converts its argument <var>grad</var> (an angle in grads)
 <var>Gradtodeg</var> converts its argument <var>grad</var> (an angle in grads)
 to degrees.
 to degrees.
@@ -507,7 +507,7 @@ None.
 
 
 
 
 <element name="gradtorad">
 <element name="gradtorad">
-<short></short>
+<short>Convert grads angle to radians angle</short>
 <descr>
 <descr>
 <var>Gradtorad</var> converts its argument <var>grad</var> (an angle in grads)
 <var>Gradtorad</var> converts its argument <var>grad</var> (an angle in grads)
 to radians.
 to radians.
@@ -530,7 +530,7 @@ None.
 
 
 
 
 <element name="hypot">
 <element name="hypot">
-<short></short>
+<short>Return hypotenuse of triangle</short>
 <descr>
 <descr>
 <var>Hypot</var> returns the hypotenuse of the triangle where the sides
 <var>Hypot</var> returns the hypotenuse of the triangle where the sides
 adjacent to the square angle have lengths <var>x</var> and <var>y</var>.
 adjacent to the square angle have lengths <var>x</var> and <var>y</var>.
@@ -547,7 +547,7 @@ None.
 
 
 
 
 <element name="intpower">
 <element name="intpower">
-<short></short>
+<short>Return integer power.</short>
 <descr>
 <descr>
 <var>Intpower</var> returns <var>base</var> to the power <var>exponent</var>,
 <var>Intpower</var> returns <var>base</var> to the power <var>exponent</var>,
 where exponent is an integer value.
 where exponent is an integer value.
@@ -564,9 +564,9 @@ overflow error will occur.
 
 
 
 
 <element name="ldexp">
 <element name="ldexp">
-<short></short>
+<short>Return (2 to the power p) times x</short>
 <descr>
 <descr>
-<var>Ldexp</var> returns $2^p x$.
+<var>Ldexp</var> returns (2 to the power <var>p</var>) times <var>x</var>.
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -582,7 +582,7 @@ None.
 
 
 
 
 <element name="lnxp1">
 <element name="lnxp1">
-<short></short>
+<short>Return natural logarithm of 1+X</short>
 <descr>
 <descr>
 <var>Lnxp1</var> returns the natural logarithm of <var>1+X</var>. The result
 <var>Lnxp1</var> returns the natural logarithm of <var>1+X</var>. The result
 is more precise for small values of <var>x</var>. <var>x</var> should be larger
 is more precise for small values of <var>x</var>. <var>x</var> should be larger
@@ -601,7 +601,7 @@ If $x\leq -1$ then an <var>EInvalidArgument</var> exception will be raised.
 </element>
 </element>
 
 
 <element name="log10">
 <element name="log10">
-<short></short>
+<short>Return 10-Based logarithm.</short>
 <descr>
 <descr>
 <var>Log10</var> returns the 10-base logarithm of <var>X</var>.
 <var>Log10</var> returns the 10-base logarithm of <var>X</var>.
 </descr>
 </descr>
@@ -620,7 +620,7 @@ will occur.
 
 
 
 
 <element name="log2">
 <element name="log2">
-<short></short>
+<short>Return 2-based logarithm</short>
 <descr>
 <descr>
 <var>Log2</var> returns the 2-base logarithm of <var>X</var>.
 <var>Log2</var> returns the 2-base logarithm of <var>X</var>.
 </descr>
 </descr>
@@ -639,7 +639,7 @@ will occur.
 
 
 
 
 <element name="logn">
 <element name="logn">
-<short></short>
+<short>Return N-based logarithm.</short>
 <descr>
 <descr>
 <var>Logn</var> returns the n-base logarithm of <var>X</var>.
 <var>Logn</var> returns the n-base logarithm of <var>X</var>.
 </descr>
 </descr>
@@ -657,7 +657,7 @@ will occur.
 </element>
 </element>
 
 
 <element name="max">
 <element name="max">
-<short></short>
+<short>Return largest of 2 values</short>
 <descr>
 <descr>
 <var>Max</var> returns the maximum of <var>Int1</var> and <var>Int2</var>.
 <var>Max</var> returns the maximum of <var>Int1</var> and <var>Int2</var>.
 </descr>
 </descr>
@@ -673,13 +673,16 @@ None.
 </element>
 </element>
 
 
 <element name="maxIntValue">
 <element name="maxIntValue">
-<short></short>
+<short>Return largest element in integer array</short>
 <descr>
 <descr>
+<p>
 <var>MaxIntValue</var> returns the largest integer out of the <var>Data</var>
 <var>MaxIntValue</var> returns the largest integer out of the <var>Data</var>
 array.
 array.
-
+</p>
+<p>
 This function is provided for Delphi compatibility, use the <link id="maxvalue"/>
 This function is provided for Delphi compatibility, use the <link id="maxvalue"/>
 function instead.
 function instead.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -694,14 +697,17 @@ None.
 
 
 
 
 <element name="maxvalue">
 <element name="maxvalue">
-<short></short>
+<short>Return largest value in array</short>
 <descr>
 <descr>
+<p>
 <var>Maxvalue</var> returns the largest value in the <var>data</var> 
 <var>Maxvalue</var> returns the largest value in the <var>data</var> 
 array with integer or float values. The return value has 
 array with integer or float values. The return value has 
 the same type as the elements of the array.
 the same type as the elements of the array.
-
+</p>
+<p>
 The third and fourth forms accept a pointer to an array of <var>N</var> 
 The third and fourth forms accept a pointer to an array of <var>N</var> 
 integer or float values.
 integer or float values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -715,7 +721,7 @@ None.
 </element>
 </element>
 
 
 <element name="mean">
 <element name="mean">
-<short></short>
+<short>Return mean value of array</short>
 <descr>
 <descr>
 <var>Mean</var> returns the average value of <var>data</var>.
 <var>Mean</var> returns the average value of <var>data</var>.
 
 
@@ -733,7 +739,7 @@ None.
 </element>
 </element>
 
 
 <element name="meanandstddev">
 <element name="meanandstddev">
-<short></short>
+<short>Return mean and standard deviation of array</short>
 <descr>
 <descr>
 <var>meanandstddev</var> calculates the mean and standard deviation of <var>data</var>
 <var>meanandstddev</var> calculates the mean and standard deviation of <var>data</var>
 and returns the result in <var>mean</var> and <var>stddev</var>, respectively.
 and returns the result in <var>mean</var> and <var>stddev</var>, respectively.
@@ -755,7 +761,7 @@ None.
 
 
 
 
 <element name="min">
 <element name="min">
-<short></short>
+<short>Return smallest of two values.</short>
 <descr>
 <descr>
 <var>min</var> returns the smallest value of <var>Int1</var> and <var>Int2</var>;
 <var>min</var> returns the smallest value of <var>Int1</var> and <var>Int2</var>;
 </descr>
 </descr>
@@ -769,12 +775,15 @@ None.
 </element>
 </element>
 
 
 <element name="minIntValue">
 <element name="minIntValue">
-<short></short>
+<short>Return smallest value in integer array</short>
 <descr>
 <descr>
+<p>
 <var>MinIntvalue</var> returns the smallest value in the <var>Data</var> array.
 <var>MinIntvalue</var> returns the smallest value in the <var>Data</var> array.
-
+</p>
+<p>
 This function is provided for Delphi compatibility, use <var>minvalue</var>
 This function is provided for Delphi compatibility, use <var>minvalue</var>
 instead.
 instead.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None
 None
@@ -789,14 +798,17 @@ None
 
 
 
 
 <element name="minvalue">
 <element name="minvalue">
-<short></short>
+<short>Return smallest value in array</short>
 <descr>
 <descr>
+<p>
 <var>Minvalue</var> returns the smallest value in the <var>data</var> 
 <var>Minvalue</var> returns the smallest value in the <var>data</var> 
 array with integer or float values. The return value has 
 array with integer or float values. The return value has 
 the same type as the elements of the array.
 the same type as the elements of the array.
-
+</p>
+<p>
 The third and fourth forms accept a pointer to an array of <var>N</var> 
 The third and fourth forms accept a pointer to an array of <var>N</var> 
 integer or float values.
 integer or float values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -811,7 +823,7 @@ None.
 
 
 
 
 <element name="momentskewkurtosis">
 <element name="momentskewkurtosis">
-<short></short>
+<short>Return 4 first moments of distribution</short>
 <descr>
 <descr>
 <var>momentskewkurtosis</var> calculates the 4 first moments of the distribution
 <var>momentskewkurtosis</var> calculates the 4 first moments of the distribution
 of valuesin <var>data</var> and returns them in <var>m1</var>,<var>m2</var>,<var>m3</var> and
 of valuesin <var>data</var> and returns them in <var>m1</var>,<var>m2</var>,<var>m3</var> and
@@ -828,12 +840,15 @@ None.
 </element>
 </element>
 
 
 <element name="norm">
 <element name="norm">
-<short></short>
+<short>Return Euclidian norm</short>
 <descr>
 <descr>
+<p>
 <var>Norm</var> calculates the Euclidian norm of the array of data.
 <var>Norm</var> calculates the Euclidian norm of the array of data.
 This equals <var>sqrt(sumofsquares(data))</var>.
 This equals <var>sqrt(sumofsquares(data))</var>.
-
+</p>
+<p>
 The second form accepts a pointer to an array of <var>N</var> values.
 The second form accepts a pointer to an array of <var>N</var> values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -846,13 +861,16 @@ None.
 
 
 
 
 <element name="popnstddev">
 <element name="popnstddev">
-<short></short>
+<short>Return population variance</short>
 <descr>
 <descr>
+<p>
 <var>Popnstddev</var> returns the square root of the population variance of
 <var>Popnstddev</var> returns the square root of the population variance of
 the values in the  <var>Data</var> array. It returns zero if there is only one value.
 the values in the  <var>Data</var> array. It returns zero if there is only one value.
-
+</p>
+<p>
 The second form of this function accepts a pointer to an array of <var>N</var>
 The second form of this function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -861,7 +879,7 @@ None.
 <link id="popnvariance"/>
 <link id="popnvariance"/>
 <link id="mean"/>
 <link id="mean"/>
 <link id="meanandstddev"/>
 <link id="meanandstddev"/>
-<link id="stddev"/>,
+<link id="stddev"/>
 <link id="momentskewkurtosis"/>
 <link id="momentskewkurtosis"/>
 </seealso>
 </seealso>
 <example file="mathex/ex35"/>
 <example file="mathex/ex35"/>
@@ -869,13 +887,16 @@ None.
 
 
 
 
 <element name="popnvariance">
 <element name="popnvariance">
-<short></short>
+<short>Return population variance</short>
 <descr>
 <descr>
+<p>
 <var>Popnvariance</var> returns the square root of the population variance of
 <var>Popnvariance</var> returns the square root of the population variance of
 the values in the  <var>Data</var> array. It returns zero if there is only one value.
 the values in the  <var>Data</var> array. It returns zero if there is only one value.
-
+</p>
+<p>
 The second form of this function accepts a pointer to an array of <var>N</var>
 The second form of this function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -892,7 +913,7 @@ None.
 
 
 
 
 <element name="power">
 <element name="power">
-<short></short>
+<short>Return real power.</short>
 <descr>
 <descr>
 <var>power</var> raises <var>base</var> to the power <var>power</var>. This is equivalent
 <var>power</var> raises <var>base</var> to the power <var>power</var>. This is equivalent
 to <var>exp(power*ln(base))</var>. Therefore <var>base</var> should be non-negative.
 to <var>exp(power*ln(base))</var>. Therefore <var>base</var> should be non-negative.
@@ -908,12 +929,15 @@ None.
 
 
 
 
 <element name="radtocycle">
 <element name="radtocycle">
-<short></short>
+<short>Convert radians angle to cycle angle</short>
 <descr>
 <descr>
+<p>
 <var>Radtocycle</var> converts its argument <var>rad</var> (an angle expressed in
 <var>Radtocycle</var> converts its argument <var>rad</var> (an angle expressed in
 radians) to an angle in cycles.
 radians) to an angle in cycles.
-
-(1 cycle equals 2 pi radians)
+</p>
+<p>
+(1 cycle equals 2 <var>pi</var> radians)
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -930,7 +954,7 @@ None.
 
 
 
 
 <element name="radtodeg">
 <element name="radtodeg">
-<short></short>
+<short>Convert radians angle to degrees angle</short>
 <descr>
 <descr>
 <var>Radtodeg</var> converts its argument <var>rad</var> (an angle expressed in
 <var>Radtodeg</var> converts its argument <var>rad</var> (an angle expressed in
 radians) to an angle in degrees.
 radians) to an angle in degrees.
@@ -952,12 +976,15 @@ None.
 
 
 
 
 <element name="radtograd">
 <element name="radtograd">
-<short></short>
+<short>Convert radians angle to grads angle</short>
 <descr>
 <descr>
+<p>
 <var>Radtodeg</var> converts its argument <var>rad</var> (an angle expressed in
 <var>Radtodeg</var> converts its argument <var>rad</var> (an angle expressed in
 radians) to an angle in grads.
 radians) to an angle in grads.
-
+</p>
+<p>
 (200 grads equals pi radians)
 (200 grads equals pi radians)
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -974,7 +1001,7 @@ None.
 
 
 
 
 <element name="randg">
 <element name="randg">
-<short></short>
+<short>Return gaussian distributed random number.</short>
 <descr>
 <descr>
 <var>randg</var> returns a random number which - when produced in large
 <var>randg</var> returns a random number which - when produced in large
 quantities - has a Gaussian distribution with mean <var>mean</var> and 
 quantities - has a Gaussian distribution with mean <var>mean</var> and 
@@ -993,13 +1020,16 @@ None.
 
 
 
 
 <element name="sincos">
 <element name="sincos">
-<short></short>
+<short>Return sine and cosine of argument</short>
 <descr>
 <descr>
+<p>
 <var>Sincos</var> calculates the sine and cosine of the angle <var>theta</var>,
 <var>Sincos</var> calculates the sine and cosine of the angle <var>theta</var>,
 and returns the result in <var>sinus</var> and <var>cosinus</var>.
 and returns the result in <var>sinus</var> and <var>cosinus</var>.
-
+</p>
+<p>
 On Intel hardware, This calculation will be faster than making 2 calls
 On Intel hardware, This calculation will be faster than making 2 calls
-to clculatet he sine and cosine separately.
+to calculate the sine and cosine separately.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1013,7 +1043,7 @@ None.
 
 
 
 
 <element name="sinh">
 <element name="sinh">
-<short></short>
+<short>Return hyperbolic sine</short>
 <descr>
 <descr>
 <var>Sinh</var> returns the hyperbolic sine of its argument <var>x</var>.
 <var>Sinh</var> returns the hyperbolic sine of its argument <var>x</var>.
 </descr>
 </descr>
@@ -1030,13 +1060,16 @@ None.
 
 
 
 
 <element name="stddev">
 <element name="stddev">
-<short></short>
+<short>Return standard deviation of data</short>
 <descr>
 <descr>
+<p>
 <var>Stddev</var> returns the standard deviation of the values in <var>Data</var>.
 <var>Stddev</var> returns the standard deviation of the values in <var>Data</var>.
 It returns zero if there is only one value.
 It returns zero if there is only one value.
-
+</p>
+<p>
 The second form of the function accepts a pointer to an array of <var>N</var>
 The second form of the function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1052,12 +1085,15 @@ None.
 
 
 
 
 <element name="sum">
 <element name="sum">
-<short></short>
+<short>Return sum of values</short>
 <descr>
 <descr>
+<p>
 <var>Sum</var> returns the sum of the values in the <var>data</var> array.
 <var>Sum</var> returns the sum of the values in the <var>data</var> array.
-
+</p>
+<p>
 The second form of the function accepts a pointer to an array of <var>N</var>
 The second form of the function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1066,20 +1102,23 @@ None.
 <link id="sumofsquares"/>
 <link id="sumofsquares"/>
 <link id="sumsandsquares"/>
 <link id="sumsandsquares"/>
 <link id="totalvariance"/>
 <link id="totalvariance"/>
-, <link id="variance"/>
+<link id="variance"/>
 </seealso>
 </seealso>
 <example file="mathex/ex44"/>
 <example file="mathex/ex44"/>
 </element>
 </element>
 
 
 
 
 <element name="sumofsquares">
 <element name="sumofsquares">
-<short></short>
+<short>Return sum of squares of values</short>
 <descr>
 <descr>
+<p>
 <var>Sumofsquares</var> returns the sum of the squares of the values in the <var>data</var> 
 <var>Sumofsquares</var> returns the sum of the squares of the values in the <var>data</var> 
 array.
 array.
-
+</p>
+<p>
 The second form of the function accepts a pointer to an array of <var>N</var>
 The second form of the function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1088,21 +1127,24 @@ None.
 <link id="sum"/>
 <link id="sum"/>
 <link id="sumsandsquares"/>
 <link id="sumsandsquares"/>
 <link id="totalvariance"/>
 <link id="totalvariance"/>
-, <link id="variance"/>
+<link id="variance"/>
 </seealso>
 </seealso>
 <example file="mathex/ex45"/>
 <example file="mathex/ex45"/>
 </element>
 </element>
 
 
 
 
 <element name="sumsandsquares">
 <element name="sumsandsquares">
-<short></short>
+<short>Return sum and sum of squares of values.</short>
 <descr>
 <descr>
+<p>
 <var>sumsandsquares</var> calculates the sum of the values and the sum of 
 <var>sumsandsquares</var> calculates the sum of the values and the sum of 
 the squares of the values in the <var>data</var> array and returns the
 the squares of the values in the <var>data</var> array and returns the
 results in <var>sum</var> and <var>sumofsquares</var>.
 results in <var>sum</var> and <var>sumofsquares</var>.
-
+</p>
+<p>
 The second form of the function accepts a pointer to an array of <var>N</var>
 The second form of the function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1111,14 +1153,14 @@ None.
 <link id="sum"/>
 <link id="sum"/>
 <link id="sumofsquares"/>
 <link id="sumofsquares"/>
 <link id="totalvariance"/>
 <link id="totalvariance"/>
-, <link id="variance"/>
+<link id="variance"/>
 </seealso>
 </seealso>
 <example file="mathex/ex46"/>
 <example file="mathex/ex46"/>
 </element>
 </element>
 
 
 
 
 <element name="tan">
 <element name="tan">
-<short></short>
+<short>Return tangent</short>
 <descr>
 <descr>
 <var>Tan</var> returns the tangent of <var>x</var>.
 <var>Tan</var> returns the tangent of <var>x</var>.
 </descr>
 </descr>
@@ -1136,7 +1178,7 @@ If <var>x</var> (normalized) is pi/2 or 3pi/2 then an overflow will occur.
 
 
 
 
 <element name="tanh">
 <element name="tanh">
-<short></short>
+<short>Return hyperbolic tangent</short>
 <descr>
 <descr>
 <var>Tanh</var> returns the hyperbolic tangent of <var>x</var>.
 <var>Tanh</var> returns the hyperbolic tangent of <var>x</var>.
 </descr>
 </descr>
@@ -1153,13 +1195,16 @@ None.
 
 
 
 
 <element name="totalvariance">
 <element name="totalvariance">
-<short></short>
+<short>Return total varians of values</short>
 <descr>
 <descr>
+<p>
 <var>TotalVariance</var> returns the total variance of the values in the 
 <var>TotalVariance</var> returns the total variance of the values in the 
 <var>data</var> array. It returns zero if there is only one value.
 <var>data</var> array. It returns zero if there is only one value.
-
+</p>
+<p>
 The second form of the function accepts a pointer to an array of <var>N</var>
 The second form of the function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1174,13 +1219,16 @@ None.
 
 
 
 
 <element name="variance">
 <element name="variance">
-<short></short>
+<short>Return variance of values</short>
 <descr>
 <descr>
+<p>
 <var>Variance</var> returns the variance of the values in the 
 <var>Variance</var> returns the variance of the values in the 
 <var>data</var> array. It returns zero if there is only one value.
 <var>data</var> array. It returns zero if there is only one value.
-
+</p>
+<p>
 The second form of the function accepts a pointer to an array of <var>N</var>
 The second form of the function accepts a pointer to an array of <var>N</var>
 values.
 values.
+</p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
@@ -1193,6 +1241,395 @@ None.
 <example file="mathex/ex50"/>
 <example file="mathex/ex50"/>
 </element>
 </element>
 
 
+<!-- unresolved type reference Visibility: default -->
+<element name="sysutils">
+<short>Used for exception definitions.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="MinExtended">
+<short>Minimum value (closest to zero) of extended type</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="MaxExtended">
+<short>Maximum value of extended type</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="MinFloat">
+<short>Minimum value (closest to zero) of float type</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="MaxFloat">
+<short>Maximum value of float type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PInteger">
+<short>Pointer to integer type</short>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="TValueRelationship">
+<short>Type to describe relational order between values</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="EqualsValue">
+<short>Values are the same</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="LessThanValue">
+<short>First value is less than second value</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="GreaterThanValue">
+<short>First values is greater than second value</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="NaN">
+<short>Value is Not a Number</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="Infinity">
+<short>Value is infinity</short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="InRange">
+<short>Check whether value is in range.</short>
+<descr>
+<var>InRange</var> returns <var>True</var> if <var>AValue</var> is in the
+range <var>AMin</var>..<var>AMax</var>. It returns <var>False</var> if
+<var>Value</var> lies outside the specified range.
+</descr>
+<seealso>
+<link id="EnsureRange"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="EnsureRange">
+<short>Change value to it falls in specified range.</short>
+<descr>
+<var>EnsureRange</var> returns <var>Value</var> if <var>AValue</var> is in
+the range <var>AMin</var>..<var>AMax</var>. It returns <var>AMin</var> if
+the value is less than <var>AMin</var>, or <var>AMax</var> if the value is
+larger than <var>AMax</var>.
+</descr>
+<seealso>
+<link id="InRange"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="DivMod">
+<short>Return DIV and MOD of arguments </short>
+<descr>
+<var>DivMod</var> returns <var>Dividend</var> DIV <var>Divisor</var> in
+<var>Result</var>, and <var>Dividend</var> MOD <var>Divisor</var> in
+<var>Remainder</var>
+</descr>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="TValueSign">
+<short>Type indicating sign of a valuea</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="NegativeValue">
+<short>Value is negative</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="ZeroValue">
+<short>Value is zero</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="PositiveValue">
+<short>Value is positive</short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="Sign">
+<short>Return sign of argument</short>
+<descr>
+<var>Sign</var> returns the sign of it's argument, which can be an Integer,
+64 bit integer, or a double. The returned value is an integer which is -1, 0
+or 1, and can be used to do further calculations with.
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="IsZero">
+<short>Check whether value is zero</short>
+<descr>
+<p>
+<var>IsZero</var> checks whether the float value <var>A</var> is zero, up to a 
+precision of <var>Epsilon</var>. It returns <var>True</var> if Abs(<var>A</var>) is
+less than <var>Epsilon</var>.
+</p>
+<p>
+The default value for <var>Epsilon</var> is dependent on the type of the
+arguments, but is <link id="MinFloat"/> for the float type.
+</p>
+</descr>
+<seealso>
+<link id="IsNan"/>
+<link id="IsInfinite"/>
+<link id="SameValue"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="IsNan">
+<short>Check whether value is Not a Number</short>
+<descr>
+<var>IsNan</var> returns <var>True</var> if the double <var>d</var> 
+contains Not A Number (a value which cannot be represented correctly 
+in double format).
+</descr>
+<seealso>
+<link id="IsZero"/>
+<link id="IsInfinite"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="IsInfinite">
+<short>Check whether value is infinite</short>
+<descr>
+<var>IsInfinite</var> returns <var>True</var> if the double <var>d</var> 
+contains the infinite value.
+</descr>
+<seealso>
+<link id="IsZero"/>
+<link id="IsInfinite"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SameValue">
+<short>Check whether 2 float values are the same</short>
+<descr>
+<p>
+<var>SameValue</var> returns <var>True</var> if the floating-point values
+<var>A</var> and <var>B</var> are the same, i.e. whether the absolute value
+of their their difference is smaller than <var>Epsilon</var>. If their
+difference is larger, then <var>False</var> is returned.
+</p>
+<p>
+The default value for <var>Epsilon</var> is dependent on the type of the
+arguments, but is <link id="MinFloat"/> for the float type.
+</p>
+</descr>
+<seealso>
+<link id="MinFloat"/>
+<link id="IsZero"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="arccosh">
+<short>Return inverse hyperbolic cosine</short>
+<descr>
+<p>
+<var>arccosh</var> returns the inverse hyperbolic cosine of it's argument 
+<var>x</var>.
+</p>
+<p>
+This function is an alias for <link id="arcosh"/>, provided for Delphi
+compatibility.
+</p>
+</descr>
+<seealso>
+<link id="arcosh"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="arcsinh">
+<short>Return inverse hyperbolic sine</short>
+<descr>
+<p>
+<var>arcsinh</var> returns the inverse hyperbolic sine of it's argument 
+<var>x</var>.
+</p>
+<p>
+This function is an alias for <link id="arsinh"/>, provided for Delphi
+compatibility.
+</p>
+</descr>
+<seealso>
+<link id="arsinh"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="arctanh">
+<short>Return inverse hyperbolic tangent</short>
+<descr>
+<p>
+<var>arcsinh</var> returns the inverse hyperbolic tangent of it's argument
+<var>x</var>.
+</p>
+<p>
+This function is an alias for <link id="artanh"/>, provided for Delphi
+compatibility.
+</p>
+</descr>
+<seealso>
+<link id="artanh"/>
+</seealso>
+</element>
+
+<!-- enumeration type Visibility: default -->
+<element name="TFPURoundingMode">
+<short>Type describing the rounding mode for the Floating Point processor.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPURoundingMode.rmNearest">
+<short>Round to nearest integer value</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPURoundingMode.rmDown">
+<short>Round to biggest integer smaller than value.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPURoundingMode.rmUp">
+<short>Round to smallest integer larger than value.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPURoundingMode.rmTruncate">
+<short>Cut off fractional part.</short>
+</element>
+
+<!-- enumeration type Visibility: default -->
+<element name="TFPUPrecisionMode">
+<short>Type describing the default precision for the Floating Point processor.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUPrecisionMode.pmSingle">
+<short>Single-type precision</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUPrecisionMode.pmReserved">
+<short>?</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUPrecisionMode.pmDouble">
+<short>Double-type precision</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUPrecisionMode.pmExtended">
+<short>Extended-type precision</short>
+</element>
+
+<!-- enumeration type Visibility: default -->
+<element name="TFPUException">
+<short>Type describing Floating Point processor exceptions.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUException.exInvalidOp">
+<short>Invalid operation error</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUException.exDenormalized">
+<short></short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUException.exZeroDivide">
+<short>Division by zero error.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUException.exOverflow">
+<short>Float overflow error</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUException.exUnderflow">
+<short>Float underflow error</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TFPUException.exPrecision">
+<short>Precision error</short>
+</element>
+
+<!-- set type Visibility: default -->
+<element name="TFPUExceptionMask">
+<short>Type to set the Floating Point Unit exception mask.</short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="GetRoundMode">
+<short>Return the Floating Point Unit rounding mode.</short>
+<descr>
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SetRoundMode">
+<short>Set the Floating Point Unit rounding mode.</short>
+<descr>
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="GetPrecisionMode">
+<short>Return the Floating Point Unit precision mode.</short>
+<descr>
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SetPrecisionMode">
+<short>Set the Floating Point Unit precision mode.</short>
+<descr>
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="GetExceptionMask">
+<short>Get the Floating Point Unit exception mask.</short>
+<descr>
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SetExceptionMask">
+<short>Set the Floating Point Unit exception mask.</short>
+<descr>
+</descr>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="ClearExceptions">
+<short>Clear Floating Point Unit exceptions</short>
+<descr>
+</descr>
+</element>
+
 </module>
 </module>
 </package>
 </package>
 </fpdoc-descriptions>
 </fpdoc-descriptions>

+ 55 - 0
docs/sockets.xml

@@ -1447,6 +1447,61 @@ None.
 </seealso>
 </seealso>
 </element>
 </element>
 
 
+<element name="htonl">
+<short>Convert long integer from host ordered to network ordered</short>
+<descr>
+<var>htonl</var> makes sure that the bytes in <var>host</var> are ordered
+in the correct way for sending over the network and returns the correctly
+ordered result.
+</descr>
+<seealso>
+<link id="htons"/>
+<link id="ntohl"/>
+<link id="ntohs"/>
+</seealso>
+</element>
+
+<element name="htons">
+<short>Convert short integer from host ordered to network ordered</short>
+<descr>
+<var>htons</var> makes sure that the bytes in <var>host</var> are  ordered
+in the correct way for sending over the network and returns the correctly
+ordered result.
+</descr>
+<seealso>
+<link id="htonl"/>
+<link id="ntohl"/>
+<link id="ntohs"/>
+</seealso>
+</element>
+
+<element name="ntohl">
+<short>Convert long integer from network ordered to host ordered</short>
+<descr>
+<var>ntohs</var> makes sure that the bytes in <var>Net</var>, received from
+the network, are ordered in the correct way for handling by the host
+machinen, and returns the correctly ordered result.
+</descr>
+<seealso>
+<link id="htonl"/>
+<link id="htons"/>
+<link id="ntohs"/>
+</seealso>
+</element>
+
+<element name="ntohs">
+<short>Convert short integer from network ordered to host ordered</short>
+<descr>
+<var>ntohs</var> makes sure that the bytes in <var>Net</var>, received from
+the network, are ordered in the correct way for handling by the host
+machinen, and returns the correctly ordered result.
+</descr>
+<seealso>
+<link id="htonl"/>
+<link id="htons"/>
+<link id="ntohl"/>
+</seealso>
+</element>
 
 
 </module>
 </module>
 </package>
 </package>

+ 7428 - 0
docs/system.xml

@@ -0,0 +1,7428 @@
+<?xml version="1.0" encoding="ISO8859-1"?>
+<fpdoc-descriptions>
+<!--  
+
+   $Id$ 
+   This file is part of the FPC documentation. 
+   Copyright (C) 1997, by Michael Van Canneyt 
+ 
+   The FPC documentation is free text; you can redistribute it and/or 
+   modify it under the terms of the GNU Library General Public License as 
+   published by the Free Software Foundation; either version 2 of the 
+   License, or (at your option) any later version. 
+ 
+   The FPC Documentation is distributed in the hope that it will be useful, 
+   but WITHOUT ANY WARRANTY; without even the implied warranty of 
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+   Library General Public License for more details. 
+ 
+   You should have received a copy of the GNU Library General Public 
+   License along with the FPC documentation; see the file COPYING.LIB.  If not, 
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
+   Boston, MA 02111-1307, USA. 
+ -->
+<package name="rtl">
+<module name="system">
+<short>The system unit</short>
+<!-- \FPCexampledir{refex} -->
+<descr>
+<p>
+The system unit contains the standard supported functions of Free Pascal. It is the
+same for all platforms. Basically it is the same as the system unit provided
+with Borland or Turbo Pascal.
+</p>
+<p>
+Functions are listed in alphabetical order. Arguments of functions or
+procedures that are optional are put between square brackets.
+</p>
+<p>
+The pre-defined constants and variables are listed in the first section.
+The second section contains an overview of all functions, grouped by
+functionality, and the last section contains the supported functions
+and procedures.
+</p>
+</descr>
+
+<topic name="integertypes">
+<short>Integer Types</short>
+<descr>
+<p>
+The following integer types are defined in the System unit:
+</p>
+<code>
+Shortint = -128..127;
+SmallInt = -32768..32767;
+Longint  = $80000000..$7fffffff;
+byte     = 0..255;
+word     = 0..65535;
+dword    = longword;
+cardinal = longword;
+Integer  = smallint;
+</code>
+<p>
+The following types are used for the functions that need compiler magic
+such as <link id="Val"/> or <link id="Str"/>:
+</p>
+<code>
+StrLenInt = LongInt;
+ValSInt = Longint;
+ValUInt = Cardinal;
+ValReal = Extended;
+</code>
+<p>
+The <var>Real48</var> type is defined to emulate the old Turbo Pascal <var>Real</var> type:
+</p>
+<code>
+Real48 = Array[0..5] of byte;
+</code>
+<p>
+The assignment operator has been overloaded so this type can be assigned
+to the Free Pascal native <var>Double</var> and <var>Extended</var> types.
+<link id="Real2Double"/>.
+</p>
+<p>
+The following character types are defined for Delphi compatibility:
+</p>
+<code>
+TAnsiChar   = Char;
+AnsiChar    = TAnsiChar;
+</code>
+<p>
+And the following pointer types as well:
+</p>
+<code>
+  PChar = ^char;
+  pPChar = ^PChar;
+  PAnsiChar   = PChar;
+  PQWord      = ^QWord;
+  PInt64      = ^Int64;
+  pshortstring = ^shortstring;
+  plongstring  = ^longstring;
+  pansistring  = ^ansistring;
+  pwidestring  = ^widestring;
+  pextended    = ^extended;
+  ppointer     = ^pointer;
+</code>
+<p>
+For the <link id="SetJmp"/> and <link id="LongJmp"/> calls, the following jump bufer
+type is defined (for the I386 processor):
+</p>
+<code>
+  jmp_buf = record
+    ebx,esi,edi : Longint;
+    bp,sp,pc : Pointer;
+    end;
+  PJmp_buf = ^jmp_buf;
+</code>
+<p>
+The following records and pointers can be used to scan the
+entries in the string message handler tables:
+</p>
+<code>
+  tmsgstrtable = record
+     name : pshortstring;
+     method : pointer;
+  end;
+  pmsgstrtable = ^tmsgstrtable;
+
+  tstringmessagetable = record
+     count : dword;
+     msgstrtable : array[0..0] of tmsgstrtable;
+  end;
+  pstringmessagetable = ^tstringmessagetable;
+</code>
+<p>
+The base class for all classes is defined as:
+</p>
+<code>
+Type
+  TObject = Class
+  Public
+    constructor create;
+    destructor destroy;virtual;
+    class function newinstance : tobject;virtual;
+    procedure freeinstance;virtual;
+    function safecallexception(exceptobject : tobject;
+      exceptaddr : pointer) : longint;virtual;
+    procedure defaulthandler(var message);virtual;
+    procedure free;
+    class function initinstance(instance : pointer) : tobject;
+    procedure cleanupinstance;
+    function classtype : tclass;
+    class function classinfo : pointer;
+    class function classname : shortstring;
+    class function classnameis(const name : string) : boolean;
+    class function classparent : tclass;
+    class function instancesize : longint;
+    class function inheritsfrom(aclass : tclass) : boolean;
+    class function inheritsfrom(aclass : tclass) : boolean;
+    class function stringmessagetable : pstringmessagetable;
+    procedure dispatch(var message);
+    procedure dispatchstr(var message);
+    class function methodaddress(const name : shortstring) : pointer;
+    class function methodname(address : pointer) : shortstring;
+    function fieldaddress(const name : shortstring) : pointer;
+    procedure AfterConstruction;virtual;
+    procedure BeforeDestruction;virtual;
+    procedure DefaultHandlerStr(var message);virtual;
+  end;
+  TClass = Class Of TObject;
+  PClass = ^TClass;
+</code>
+<p>
+Unhandled exceptions can be treated using a constant of the
+<var>TExceptProc</var> type:
+</p>
+<code>
+TExceptProc = Procedure (Obj : TObject; Addr,Frame: Pointer);
+</code>
+<p>
+<var>Obj</var> is the exception object that was used to raise the exception,
+<var>Addr</var> and <var>Frame</var> contain the exact address and stack frame
+where the exception was raised.
+</p>
+<p>
+The <var>TVarRec</var> type is used to access the elements passed in a \var{Array
+of Const} argument to a function or procedure:
+</p>
+<code>
+Type
+  PVarRec = ^TVarRec;
+  TVarRec = record
+    case VType : Longint of
+    vtInteger    : (VInteger: Longint);
+    vtBoolean    : (VBoolean: Boolean);
+    vtChar       : (VChar: Char);
+    vtExtended   : (VExtended: PExtended);
+    vtString     : (VString: PShortString);
+    vtPointer    : (VPointer: Pointer);
+    vtPChar      : (VPChar: PChar);
+    vtObject     : (VObject: TObject);
+    vtClass      : (VClass: TClass);
+    vtAnsiString : (VAnsiString: Pointer);
+    vtWideString : (VWideString: Pointer);
+    vtInt64      : (VInt64: PInt64);
+  end;
+</code>
+<p>
+The heap manager uses the <var>TMemoryManager</var> type:
+</p>
+<code>
+  PMemoryManager = ^TMemoryManager;
+  TMemoryManager = record
+    Getmem      : Function(Size:Longint):Pointer;
+    Freemem     : Function(var p:pointer):Longint;
+    FreememSize : Function(var p:pointer;Size:Longint):Longint;
+    AllocMem    : Function(Size:longint):Pointer;
+    ReAllocMem  : Function(var p:pointer;Size:longint):Pointer;
+    MemSize     : function(p:pointer):Longint;
+    MemAvail    : Function:Longint;
+    MaxAvail    : Function:Longint;
+    HeapSize    : Function:Longint;
+  end;
+</code>
+<p>
+More information on using this record can be found in \progref.
+</p>
+</descr>
+</topic>
+
+<topic name="Constants">
+<short>Constants</short>
+<descr>
+<p>
+The following constants define the maximum values that can be used with
+various types:
+</p>
+<code>
+  MaxSIntValue = High(ValSInt);
+  MaxUIntValue = High(ValUInt);
+  maxint   = maxsmallint;
+  maxLongint  = $7fffffff;
+  maxSmallint = 32767;
+</code>
+<p>
+The following constants for file-handling are defined in the system unit:
+</p>
+<code>
+Const
+  fmclosed = $D7B0;
+  fminput  = $D7B1;
+  fmoutput = $D7B2;
+  fminout  = $D7B3;
+  fmappend = $D7B4;
+  filemode : byte = 2;
+</code>
+<p>
+The <var>filemode</var> variable is used when a non-text file is opened using
+<var>Reset</var>. It indicates how the file will be opened. <var>filemode</var> can have one of
+the following values:
+</p>
+<dl>
+<dt>0</dt><dd> The file is opened for reading.
+</dd><dt>1</dt><dd> The file is opened for writing.
+</dd><dt>2</dt><dd> The file is opened for reading and writing.
+</dd>
+</dl>
+<p>
+The default value is 2. Other values are possible but are operating system specific.
+</p>
+<p>
+Further, the following non processor specific general-purpose constants
+are also defined:
+</p>
+<code>
+const
+  erroraddr : pointer = nil;
+  errorcode : word = 0;
+ { max level in dumping on error }
+  max_frame_dump : word = 20;
+</code>
+<p>
+</p>
+<remark>
+Processor specific global constants are named Testxxxx where xxxx
+represents the processor number (such as Test8086, Test68000),
+and are used to determine on what generation of processor the program
+is running on.
+</remark>
+<p>
+The following constants are defined to access VMT entries:
+</p>
+<code>
+   vmtInstanceSize         = 0;
+   vmtParent               = 8;
+   vmtClassName            = 12;
+   vmtDynamicTable         = 16;
+   vmtMethodTable          = 20;
+   vmtFieldTable           = 24;
+   vmtTypeInfo             = 28;
+   vmtInitTable            = 32;
+   vmtAutoTable            = 36;
+   vmtIntfTable            = 40;
+   vmtMsgStrPtr            = 44;
+   vmtMethodStart          = 48;
+   vmtDestroy              = vmtMethodStart;
+   vmtNewInstance          = vmtMethodStart+4;
+   vmtFreeInstance         = vmtMethodStart+8;
+   vmtSafeCallException    = vmtMethodStart+12;
+   vmtDefaultHandler       = vmtMethodStart+16;
+   vmtAfterConstruction    = vmtMethodStart+20;
+   vmtBeforeDestruction    = vmtMethodStart+24;
+   vmtDefaultHandlerStr    = vmtMethodStart+28;
+</code>
+<p>
+The constant names should be used, and never their values, because
+the VMT table can change, breaking code that uses direct values.
+</p>
+<p>
+The following constants will be used for the planned <var>variant</var> support:
+</p>
+<code>
+  varEmpty     = $0000;
+  varNull      = $0001;
+  varSmallint  = $0002;
+  varInteger   = $0003;
+  varSingle    = $0004;
+  varDouble    = $0005;
+  varCurrency  = $0006;
+  varDate      = $0007;
+  varOleStr    = $0008;
+  varDispatch  = $0009;
+  varError     = $000A;
+  varBoolean   = $000B;
+  varVariant   = $000C;
+  varUnknown   = $000D;
+  varByte      = $0011;
+  varString    = $0100;
+  varAny       = $0101;
+  varTypeMask  = $0FFF;
+  varArray     = $2000;
+  varByRef     = $4000;
+</code>
+<p>
+The following constants are used in the <var>TVarRec</var> record:
+</p>
+<code>
+vtInteger    = 0;
+vtBoolean    = 1;
+vtChar       = 2;
+vtExtended   = 3;
+vtString     = 4;
+vtPointer    = 5;
+vtPChar      = 6;
+vtObject     = 7;
+vtClass      = 8;
+vtWideChar   = 9;
+vtPWideChar  = 10;
+vtAnsiString = 11;
+vtCurrency   = 12;
+vtVariant    = 13;
+vtInterface  = 14;
+vtWideString = 15;
+vtInt64      = 16;
+vtQWord      = 17;
+</code>
+<p>
+The <var>ExceptProc</var> is called when an unhandled exception occurs:
+</p>
+<code>
+Const
+  ExceptProc : TExceptProc = Nil;
+</code>
+<p>
+It is set in the <file>objpas</file> unit, but it can be set by the programmer
+to change the default exception handling.
+</p>
+<p>
+The following constants are defined to describe the operating system's file
+system:
+</p>
+<code>
+LineEnding = #10;
+LFNSupport = true;
+DirectorySeparator = '/';
+DriveSeparator = ':';
+PathSeparator = ':';
+FileNameCaseSensitive : Boolean = True;
+</code>
+<p>
+The shown values are for unix platforms, but will be different on other
+platforms.
+The meaning of the constants is the following:
+</p>
+<dl>
+<dt>LineEnding</dt>
+<dd> End of line marker. This constant is used when writing end
+of lines to text files.
+</dd>
+<dt>LFNSupport</dt>
+<dd> This is <var>True</var> if the system supports long file names,
+i.e. filenames that are not restricted to 8.3 characters.
+</dd>
+<dt>DirectorySeparator</dt>
+<dd> The character that is used as a directory
+separator, i.e. it appears between various parts of a path to a file.
+</dd>
+<dt>DriveSeparator</dt>
+<dd> On systems that support drive letters, this character
+separates the drive indication from the rest of a filename.
+</dd>
+<dt>PathSeparator</dt>
+<dd> This character can be found between elements in a
+series of paths (such as the contents of the <var>PATH</var> environment
+variable.
+</dd>
+<dt>FileNameCaseSensitive</dt>
+<dd> Indicates whether filenames are case sensitive.
+</dd>
+</dl>
+<p>
+When programming cross-platform, use these constants instead of hard-coded
+characters. This will enhance portability of an application.
+</p>
+</descr>
+</topic>
+
+<topic name="variables">
+<short>Variables</short>
+<descr>
+<p>
+The following variables are defined and initialized in the system unit:
+</p>
+<code>
+var
+  output,input,stderr : text;
+  exitproc : pointer;
+  exitcode : word;
+  stackbottom : Cardinal;
+</code>
+<p>
+The variables <var>ExitProc</var>, <var>exitcode</var> are used in the Free Pascal exit
+scheme. It works similarly to the one in Turbo Pascal:
+</p>
+<p>
+When a program halts (be it through the call of the <var>Halt</var> function or
+<var>Exit</var> or through a run-time error), the exit mechanism checks the value
+of <var>ExitProc</var>. If this one is non-<var>Nil</var>, it is set to <var>Nil</var>, and
+the procedure is called. If the exit procedure exits, the value of ExitProc
+is checked again. If it is non-<var>Nil</var> then the above steps are repeated.
+So when an exit procedure must be installed, the old value of <var>ExitProc</var>
+should be saved (it may be non-<var>Nil</var>, since other units could have set
+it). In the exit procedure the value of <var>ExitProc</var> should be restored to
+the previous value, such that if it was non-<var>Nil</var> the exit-procedure can be
+called.
+</p>
+<p>
+The <var>ErrorAddr</var> and <var>ExitCode</var> can be used to check for
+error-conditions. If <var>ErrorAddr</var> is non-<var>Nil</var>, a run-time error has
+occurred. If so, <var>ExitCode</var> contains the error code. If <var>ErrorAddr</var> is
+<var>Nil</var>, then {ExitCode} contains the argument to <var>Halt</var> or 0 if the
+program terminated normally.
+</p>
+<p>
+<var>ExitCode</var> is always passed to the operating system as the exit-code of
+the current process.
+</p>
+<remark>
+The maximum error code under linux and unix like operating systems is 127.
+</remark>
+<p>
+Under <file>GO32</file>, the following constants are also defined :
+</p>
+<code>
+const
+   seg0040 = $0040;
+   segA000 = $A000;
+   segB000 = $B000;
+   segB800 = $B800;
+</code>
+<p>
+These constants allow easy access to the bios/screen segment via mem/absolute.
+</p>
+<p>
+The randomize function uses a seed stored in the <var>RandSeed</var> variable:
+</p>
+<code>
+  RandSeed    : Cardinal;
+</code>
+<p>
+This variable is initialized in the initialization code of the system unit.
+</p>
+<p>
+Other variables indicate the state of the application.
+</p>
+<code>
+  IsLibrary : boolean;
+  IsMultiThread : boolean;
+</code>
+<p>
+The <var>IsLibrary</var> variable is set to true if this module is a
+shared library instead of an application. The <var>IsMultiThread</var>
+variable is set to True if the application has spawned other
+threads, otherwise, and by default, it is set to False.
+</p>
+</descr>
+<example file="refex/ex98"/>
+</topic>
+
+<topic name="FileFunctions">
+<short>File handling functions</short>
+<descr>
+<p>
+Functions concerning input and output from and to file.
+</p>
+<table>
+<th><td>Name</td><td>Description</td></th>
+<tr><td><link id="Append"/></td><td>Open a file in append mode</td></tr>
+<tr><td><link id="Assign"/></td><td>Assign a name to a file</td></tr>
+<tr><td><link id="Blockread"/></td><td>Read data from a file into memory</td></tr>
+<tr><td><link id="Blockwrite"/></td><td>Write data from memory to a file</td></tr>
+<tr><td><link id="Close"/></td><td>Close a file</td></tr>
+<tr><td><link id="Eof"/></td><td>Check for end of file</td></tr>
+<tr><td><link id="Eoln"/></td><td>Check for end of line</td></tr>
+<tr><td><link id="Erase"/></td><td>Delete  file from disk</td></tr>
+<tr><td><link id="Filepos"/></td><td>Position in file</td></tr>
+<tr><td><link id="Filesize"/></td><td>Size of file</td></tr>
+<tr><td><link id="Flush"/></td><td>Write file buffers to disk</td></tr>
+<tr><td><link id="IOresult"/></td><td>Return result of last file IO operation</td></tr>
+<tr><td><link id="Read"/></td><td>Read from file into variable</td></tr>
+<tr><td><link id="Readln"/></td><td>Read from file into variable and goto next line</td></tr>
+<tr><td><link id="Rename"/></td><td>Rename file on disk</td></tr>
+<tr><td><link id="Reset"/></td><td>Open file for reading</td></tr>
+<tr><td><link id="Rewrite"/></td><td>Open file for writing</td></tr>
+<tr><td><link id="Seek"/></td><td>Set file position</td></tr>
+<tr><td><link id="SeekEof"/></td><td>Set file position to end of file</td></tr>
+<tr><td><link id="SeekEoln"/></td><td>Set file position to end of line</td></tr>
+<tr><td><link id="SetTextBuf"/></td><td>Set size of file buffer</td></tr>
+<tr><td><link id="Truncate"/></td><td>Truncate the file at position</td></tr>
+<tr><td><link id="Write"/></td><td>Write variable to file</td></tr>
+<tr><td><link id="WriteLn"/></td><td>Write variable to file and append newline</td></tr>
+</table>
+</descr>
+</topic>
+
+<topic name="MemoryFunctions">
+<short>Memory management functions</short>
+<descr>
+<p>
+Functions concerning memory issues.
+</p>
+<table>
+<th><td>Name</td><td>Description</td></th>
+<tr><td><link id="Addr"/></td><td>Return address of variable</td></tr>
+<tr><td><link id="Assigned"/></td><td>Check if a pointer is valid</td></tr>
+<tr><td><link id="CompareByte"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
+<tr><td><link id="CompareChar"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
+<tr><td><link id="CompareDWord"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
+<tr><td><link id="CompareWord"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
+<tr><td><link id="CSeg"/></td><td>Return code segment</td></tr>
+<tr><td><link id="Dispose"/></td><td>Free dynamically allocated memory</td></tr>
+<tr><td><link id="DSeg"/></td><td>Return data segment</td></tr>
+<tr><td><link id="FillByte"/></td><td>Fill memory region with 8-bit pattern</td></tr>
+<tr><td><link id="Fillchar"/></td><td>Fill memory region with certain character</td></tr>
+<tr><td><link id="FillDWord"/></td><td>Fill memory region with 32-bit pattern</td></tr>
+<tr><td><link id="Fillword"/></td><td>Fill memory region with 16-bit pattern</td></tr>
+<tr><td><link id="Freemem"/></td><td>Release allocated memory</td></tr>
+<tr><td><link id="Getmem"/></td><td>Allocate new memory</td></tr>
+<tr><td><link id="GetMemoryManager"/></td><td>Return current memory manager</td></tr>
+<tr><td><link id="High"/></td><td>Return highest index of open array or enumerated</td></tr>
+<tr><td><link id="IsMemoryManagerSet"/></td><td>Is the memory manager set</td></tr>
+<tr><td><link id="Low"/></td><td>Return lowest index of open array or enumerated</td></tr>
+<tr><td><link id="Maxavail"/></td><td>Return size of largest free memory block</td></tr>
+<tr><td><link id="Memavail"/></td><td>Return total available memory</td></tr>
+<tr><td><link id="Move"/></td><td>Move data from one location in memory to another</td></tr>
+<tr><td><link id="MoveChar0">MoveChar0</link></td><td>Move data till first zero character</td></tr>
+<tr><td><link id="New"/></td><td>Dynamically allocate memory for variable</td></tr>
+<tr><td><link id="Ofs"/></td><td>Return offset of variable</td></tr>
+<tr><td><link id="Ptr"/></td><td>Combine segment and offset to pointer</td></tr>
+<tr><td><link id="ReAllocMem"/></td><td>Resize a memory block on the heap</td></tr>
+<tr><td><link id="Seg"/></td><td>Return segment</td></tr>
+<tr><td><link id="SetMemoryManager"/></td><td>Set a memory manager</td></tr>
+<tr><td><link id="Sptr"/></td><td>Return current stack pointer</td></tr>
+<tr><td><link id="SSeg"/></td><td>Return stack segment register value</td></tr>
+</table>
+</descr>
+</topic>
+
+<topic name="MathematicalFunctions">
+<short>Mathematical routines</short>
+<descr>
+<p>
+Functions connected to calculating and coverting numbers.
+</p>
+<table>
+<th><td>Name</td><td>Description</td></th>
+<tr><td><link id="Abs"/></td><td>Calculate absolute value</td></tr>
+<tr><td><link id="Arctan"/></td><td>Calculate inverse tangent</td></tr>
+<tr><td><link id="Cos"/></td><td>Calculate cosine of angle</td></tr>
+<tr><td><link id="Dec"/></td><td>Decrease value of variable</td></tr>
+<tr><td><link id="Exp"/></td><td>Exponentiate</td></tr>
+<tr><td><link id="Frac"/></td><td>Return fractional part of floating point value</td></tr>
+<tr><td><link id="Hi"/></td><td>Return high byte/word of value</td></tr>
+<tr><td><link id="Inc"/></td><td>Increase value of variable</td></tr>
+<tr><td><link id="Int"/></td><td>Calculate integer part of floating point value</td></tr>
+<tr><td><link id="Ln"/></td><td>Calculate logarithm</td></tr>
+<tr><td><link id="Lo"/></td><td>Return low byte/word of value</td></tr>
+<tr><td><link id="Odd"/></td><td>Is a value odd or even ? </td></tr>
+<tr><td><link id="Pi"/></td><td>Return the value of pi</td></tr>
+<tr><td><link id="Power"/></td><td>Raise float to integer power</td></tr>
+<tr><td><link id="Random"/></td><td>Generate random number</td></tr>
+<tr><td><link id="Randomize"/></td><td>Initialize random number generator</td></tr>
+<tr><td><link id="Round"/></td><td>Round floating point value to nearest integer number</td></tr>
+<tr><td><link id="Sin"/></td><td>Calculate sine of angle</td></tr>
+<tr><td><link id="Sqr"/></td><td>Calculate the square of a value</td></tr>
+<tr><td><link id="Sqrt"/></td><td>Calculate the square root of a value</td></tr>
+<tr><td><link id="Swap"/></td><td>Swap high and low bytes/words of a variable</td></tr>
+<tr><td><link id="Trunc"/></td><td>Truncate a floating point value</td></tr>
+</table>
+</descr>
+</topic>
+
+<topic name="StringFunctions">
+<short>String handling</short>
+<descr>
+<p>
+All things connected to string handling.
+</p>
+<table>
+<th><td>Name</td><td>Description</td></th>
+<tr><td><link id="BinStr"/></td><td>Construct binary representation of integer</td></tr>
+<tr><td><link id="Chr"/></td><td>Convert ASCII code to character</td></tr>
+<tr><td><link id="Concat"/></td><td>Concatenate two strings</td></tr>
+<tr><td><link id="Copy"/></td><td>Copy part of a string</td></tr>
+<tr><td><link id="Delete"/></td><td>Delete part of a string</td></tr>
+<tr><td><link id="HexStr"/></td><td>Construct hexadecimal representation of integer</td></tr>
+<tr><td><link id="Insert"/></td><td>Insert one string in another</td></tr>
+<tr><td><link id="Length"/></td><td>Return length of string</td></tr>
+<tr><td><link id="Lowercase"/></td><td>Convert string to all-lowercase</td></tr>
+<tr><td><link id="OctStr"/></td><td>Construct octal representation of integer</td></tr>
+<tr><td><link id="Pos"/></td><td>Calculate position of one string in another</td></tr>
+<tr><td><link id="SetLength"/></td><td>Set length of a string</td></tr>
+<tr><td><link id="SetString"/></td><td>Set contents and length of a string</td></tr>
+<tr><td><link id="Str"/></td><td>Convert number to string representation</td></tr>
+<tr><td><link id="StringOfChar"/></td><td>Create string consisting of a number of characters</td></tr>
+<tr><td><link id="Upcase"/></td><td>Convert string to all-uppercase</td></tr>
+<tr><td><link id="Val"/></td><td>Convert string to number</td></tr>
+</table>
+</descr>
+</topic>
+
+<topic name="OSfunctions">
+<short>Operating System functions</short>
+<descr>
+<p>
+Functions that are connected to the operating system.
+</p>
+<table>
+<th><td>Name</td><td>Description</td></th>
+<tr><td><link id="Chdir"/></td><td>Change working directory</td></tr>
+<tr><td><link id="Getdir"/></td><td>Return current working directory</td></tr>
+<tr><td><link id="Halt"/></td><td>Halt program execution</td></tr>
+<tr><td><link id="Paramcount"/></td><td>Number of parameters with which program was called</td></tr>
+<tr><td><link id="Paramstr"/></td><td>Retrieve parameters with which program was called</td></tr>
+<tr><td><link id="Mkdir"/></td><td>Make a directory</td></tr>
+<tr><td><link id="Rmdir"/></td><td>Remove a directory</td></tr>
+<tr><td><link id="Runerror"/></td><td>Abort program execution with error condition</td></tr>
+</table>
+</descr>
+</topic>
+
+<topic name="MiscellaneousFunctions">
+<short>Miscellaneous functions</short>
+<descr>
+<p>
+Functions that do not belong in one of the other categories.
+</p>
+<table>
+<th><td>Name</td><td>Description</td></th>
+<tr><td><link id="Assert"/></td><td>Conditionally abort program with error</td></tr>
+<tr><td><link id="Break"/></td><td>Abort current loop</td></tr>
+<tr><td><link id="Continue"/></td><td>Next cycle in current loop</td></tr>
+<tr><td><link id="Exclude"/></td><td>Exclude an element from a set</td></tr>
+<tr><td><link id="Exit"/></td><td>Exit current function or procedure</td></tr>
+<tr><td><link id="Include"/></td><td>Include an element into a set</td></tr>
+<tr><td><link id="LongJmp"/></td><td>Jump to execution point</td></tr>
+<tr><td><link id="Ord"/></td><td>Return ordinal value of enumerated type</td></tr>
+<tr><td><link id="Pred"/></td><td>Return previous value of ordinal type</td></tr>
+<tr><td><link id="SetJmp"/></td><td>Mark execution point for jump</td></tr>
+<tr><td><link id="SizeOf"/></td><td>Return size of variable or type</td></tr>
+<tr><td><link id="Succ"/></td><td>Return next value of ordinal type</td></tr>
+</table>
+</descr>
+</topic>
+
+<element name="Abs">
+<short>Calculate absolute value</short>
+<descr>
+<var>Abs</var> returns the absolute value of a variable. The result of the
+function has the same type as its argument, which can be any numerical
+type.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Round"/>
+</seealso>
+<example file="refex/ex1"/>
+</element>
+
+
+
+<element name="Addr">
+<short>Return address of a variable</short>
+<descr>
+<var>Addr</var> returns a pointer to its argument, which can be any type, or a
+function or procedure name. The returned pointer isn't typed.
+The same result can be obtained by the <var>@</var> operator, which can return a
+typed pointer (\progref).
+</descr>
+<errors>
+None
+</errors>
+<seealso>
+<link id="SizeOf"/>
+</seealso>
+<example file="refex/ex2"/>
+</element>
+
+
+
+<element name="Append">
+<short>Open a file in append mode</short>
+<descr>
+<var>Append</var> opens an existing file in append mode. Any data written to
+<var>F</var> will be appended to the file. Only text files can be opened in
+append mode. After a call to <var>Append</var>, the file <var>F</var> becomes
+write-only.
+
+File sharing is not taken into account when calling <var>Append</var>.
+
+</descr>
+<errors>
+If the file doesn't exist when appending, a run-time error will be generated.
+This behaviour has changed on Windows and Linux platforms, where in versions
+prior to 1.0.6, the file would be created in append mode.
+</errors>
+<seealso>
+<link id="Rewrite"/>
+<link id="Close"/>
+<link id="Reset"/>
+</seealso>
+<example file="refex/ex3"/>
+</element>
+
+
+
+<element name="Arctan">
+<short>Calculate inverse tangent</short>
+<descr>
+<var>Arctan</var> returns the Arctangent of <var>X</var>, which can be any Real type.
+The resulting angle is in radial units.
+</descr>
+<errors>
+None
+</errors>
+<seealso>
+<link id="Sin"/>
+<link id="Cos"/>
+</seealso>
+<example file="refex/ex4"/>
+</element>
+
+
+
+<element name="Assert">
+<short>Check validity of a given condition.</short>
+<descr>
+With assertions on, <var>Assert</var> tests if <var>expr</var> is 
+false, and if so, aborts the application with a Runtime error 
+227 and an optional error message in <var>msg</var>.
+If <var>expr</var> is true, program execution continues normally. 
+
+If assertions are not enabled at compile time, this routine does 
+nothing, and no code is generated for the <var>Assert</var> call. 
+
+Enabling and disabling assertions at compile time is done via
+the <var>\$C</var> or <var>\$ASSERTIONS</var> compiler switches. These are
+global switches.
+
+The default behavior of the assert call can be changed by 
+setting a new handler in the <var>AssertErrorProc</var> variable.
+Sysutils overrides the default handler to raise a <var>EAssertionFailed</var> 
+exception.
+
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Halt"/>
+<link id="Runerror"/>
+</seealso>
+</element>
+
+
+<element name="Assign">
+<short>Assign a name to a file</short>
+<descr>
+<var>Assign</var> assigns a name to <var>F</var>, which can be any file type.
+This call doesn't open the file, it just assigns a name to a file variable,
+and marks the file as closed.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Reset"/>
+<link id="Rewrite"/>
+<link id="Append"/>
+</seealso>
+<example file="refex/ex5"/>
+</element>
+
+
+
+<element name="Assigned">
+<short>Check if a pointer is valid</short>
+<descr>
+<var>Assigned</var> returns <var>True</var> if <var>P</var> is non-nil
+and retuns <var>False</var> of <var>P</var> is nil.
+The main use of Assigned is that Procedural variables, method variables and
+class-type variables also can be passed to <var>Assigned</var>.
+</descr>
+<errors>
+None
+</errors>
+<seealso>
+<link id="New"/>
+</seealso>
+<example file="refex/ex96"/>
+</element>
+
+
+
+<element name="BinStr">
+<short>Convert integer to string with binary representation.</short>
+<descr>
+<var>BinStr</var> returns a string with the binary representation
+of <var>Value</var>. The string has at most <var>cnt</var> characters.
+(i.e. only the <var>cnt</var> rightmost bits are taken into account)
+To have a complete representation of any longint-type value, 32
+bits are needed, i.e. <var>cnt=32</var>
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Str"/>
+<link id="Val"/>
+<link id="HexStr"/>
+<link id="OctStr"/>
+</seealso>
+<example file="refex/ex82"/>
+</element>
+
+
+
+<element name="Blockread">
+<short>Read data from an untyped file into memory</short>
+<descr>
+<var>Blockread</var> reads <var>count</var> or less records from file <var>F</var>. A
+record is a block of bytes with size specified by the <link id="Rewrite"/> or
+<link id="Reset"/> statement.
+
+The result is placed in <var>Buffer</var>, which must contain enough room for
+<var>Count</var> records. The function cannot read partial records.
+If <var>Result</var> is specified, it contains the number of records actually
+read. If <var>Result</var> isn't specified, and less than <var>Count</var> records were
+read, a run-time error is generated. This behavior can be controlled by the
+\var{\{\$i\}} switch.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Blockwrite"/>
+<link id="Close"/>
+<link id="Reset"/>
+<link id="Assign"/>
+</seealso>
+<example file="refex/ex6"/>
+</element>
+
+
+
+<element name="Blockwrite">
+<short>Write data from memory to an untyped file</short>
+<descr>
+<var>BlockWrite</var> writes <var>count</var> records from <var>buffer</var> to the file
+ <var>F</var>.A record is a block of bytes with size specified by the <link id="Rewrite"/> or
+<link id="Reset"/> statement.
+
+If the records couldn't be written to disk, a run-time error is generated.
+This behavior can be controlled by the \var{\{\$i\}} switch.
+
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Blockread"/>
+<link id="Close"/>
+<link id="Rewrite"/>
+<link id="Assign"/>
+</seealso>
+</element>
+
+For the example, see <link id="Blockread"/>.
+
+<element name="Break">
+<short>Exit current loop construct.</short>
+<descr>
+<p>
+<var>Break</var> jumps to the statement following the end of the current
+repetitive statement. The code between the <var>Break</var> call and
+the end of the repetitive statement is skipped.
+The condition of the repetitive statement is NOT evaluated.
+</p>
+<p>
+This can be used with <var>For</var>, var{repeat} and <var>While</var> statements.
+</p>
+<p>
+Note that while this is a procedure, <var>Break</var> is a reserved word
+and hence cannot be redefined.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Continue"/>
+<link id="Exit"/>
+</seealso>
+<example file="refex/ex87"/>
+</element>
+
+
+
+<element name="Chdir">
+<short>Change current working directory.</short>
+<descr>
+<var>Chdir</var> changes the working directory of the process to <var>S</var>.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Mkdir"/>
+<link id="Rmdir"/>
+</seealso>
+<example file="refex/ex7"/>
+</element>
+
+
+
+<element name="Chr">
+<short>Convert byte value to character value</short>
+<descr>
+<var>Chr</var> returns the character which has ASCII value <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Ord"/>
+<link id="Str"/>
+</seealso>
+<example file="refex/ex8"/>
+</element>
+
+
+
+<element name="Close">
+<short>Close a file</short>
+<descr>
+<var>Close</var> flushes the buffer of the file <var>F</var> and closes <var>F</var>.
+After a call to <var>Close</var>, data can no longer be read from or written to
+<var>F</var>.
+To reopen a file closed with <var>Close</var>, it isn't necessary to assign the
+file again. A call to <link id="Reset"/> or <link id="Rewrite"/> is sufficient.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Assign"/>
+<link id="Reset"/>
+<link id="Rewrite"/>
+<link id="Flush"/>
+</seealso>
+<example file="refex/ex9"/>
+</element>
+
+
+
+<element name="CompareByte">
+<short>Compare 2 memory buffers byte per byte</short>
+<descr>
+<p>
+<var>CompareByte</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
+byte-per-byte basis for a total of <var>len</var> bytes.
+</p>
+<p>
+The function returns one of the following values:
+</p>
+<dl>
+<dt>less than 0</dt>
+<dd> if <var>buf1</var> and <var>buf2</var> contain different bytes
+in the first <var>len</var> bytes, and the first such byte is smaller in <var>buf1</var>
+than the byte at the same position in <var>buf2</var>.
+</dd>
+<dt>0</dt>
+<dd>  if the first <var>len</var> bytes in <var>buf1</var> and <var>buf2</var> are
+equal.
+\item [greater than 0] if <var>buf1</var> and <var>buf2</var> contain different bytes
+in the first <var>len</var> bytes, and the first such byte is larger in <var>buf1</var>
+than the byte at the same position in <var>buf2</var>.
+</dd>
+</dl>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="CompareChar"/>
+<link id="CompareWord"/>
+<link id="CompareDWord"/>
+</seealso>
+<example file="refex/ex99"/>
+</element>
+
+
+
+<element name="CompareChar">
+<short>ompare 2 memory buffers character per character</short>
+<descr>
+<p>
+<var>CompareChar</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
+character-per-character basis for a total of <var>len</var> characters.
+</p>
+<p>
+The <var>CompareChar0</var> variant compares <var>len</var> bytes, or until
+a zero character is found.
+</p>
+<p>
+The function returns one of the following values:
+</p>
+<dl>
+<dt>-1</dt>
+<dd> if <var>buf1</var> and <var>buf2</var> contain different characters
+in the first <var>len</var> positions, and the first such character is smaller in <var>buf1</var>
+than the character at the same position in <var>buf2</var>.
+</dd>
+<dt>0</dt>
+<dd>  if the first <var>len</var> characters in <var>buf1</var> and <var>buf2</var> are
+equal.
+</dd>
+<dt>1</dt>
+<dd>if <var>buf1</var> and <var>buf2</var> contain different characters
+in the first <var>len</var> positions, and the first such character is larger in
+<var>buf1</var> than the character at the same position in <var>buf2</var>.
+</dd>
+</dl>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="CompareByte"/>
+<link id="CompareWord"/>
+<link id="CompareDWord"/>
+</seealso>
+<example file="refex/ex100"/>
+</element>
+
+
+
+<element name="CompareDWord">
+<short>Compare 2 memory buffers DWord per DWord</short>
+<descr>
+<p>
+<var>CompareDWord</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
+DWord-per-DWord basis for a total of <var>len</var> DWords. (A DWord is 4 bytes).
+</p>
+<p>
+The function returns one of the following values:
+</p>
+<dl>
+<dt>-1</dt>
+<dd> if <var>buf1</var> and <var>buf2</var> contain different DWords
+in the first <var>len</var> DWords, and the first such DWord is smaller in <var>buf1</var>
+than the DWord at the same position in <var>buf2</var>.
+</dd>
+<dt>0</dt>
+<dd>  if the first <var>len</var> DWords in <var>buf1</var> and <var>buf2</var> are
+equal.
+</dd>
+<dt>1</dt>
+<dd>if <var>buf1</var> and <var>buf2</var> contain different DWords
+in the first <var>len</var> DWords, and the first such DWord is larger in <var>buf1</var>
+than the DWord at the same position in <var>buf2</var>.
+</dd>
+</dl>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="CompareChar"/>
+<link id="CompareByte"/>
+<link id="CompareWord"/>,
+</seealso>
+<example file="refex/ex101"/>
+</element>
+
+
+
+<element name="CompareWord">
+<short>Compare 2 memory buffers word per word</short>
+<descr>
+<p>
+<var>CompareWord</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
+Word-per-Word basis for a total of <var>len</var> Words. (A Word is 2 bytes).
+</p>
+<p>
+The function returns one of the following values:
+</p>
+<dl>
+<dt>-1</dt>
+<dd> if <var>buf1</var> and <var>buf2</var> contain different Words
+in the first <var>len</var> Words, and the first such Word is smaller in <var>buf1</var>
+than the Word at the same position in <var>buf2</var>.
+</dd>
+<dt>0</dt>
+<dd>  if the first <var>len</var> Words in <var>buf1</var> and <var>buf2</var> are
+equal.
+</dd>
+<dt>1</dt>
+<dd>
+if <var>buf1</var> and <var>buf2</var> contain different Words
+in the first <var>len</var> Words, and the first such Word is larger in <var>buf1</var>
+than the Word at the same position in <var>buf2</var>.
+</dd>
+</dl>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="CompareChar"/>
+<link id="CompareByte"/>
+<link id="CompareDWord"/>,
+</seealso>
+<example file="refex/ex102"/>
+</element>
+
+
+
+<element name="Concat">
+<short>Append one string to another.</short>
+<descr>
+<var>Concat</var> concatenates the strings <var>S1</var>,<var>S2</var> etc. to one long
+string. The resulting string is truncated at a length of 255 bytes.
+The same operation can be performed with the <var>+</var> operation.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Copy"/>
+<link id="Delete"/>
+<link id="Insert"/>
+<link id="Pos"/>
+<link id="Length"/>
+</seealso>
+<example file="refex/ex10"/>
+</element>
+
+
+
+<element name="Continue">
+<short>Continue with next loop cycle.</short>
+<descr>
+<p>
+<var>Continue</var> jumps to the end of the current repetitive statement.
+The code between the <var>Continue</var> call and the end of the repetitive
+statement is skipped. The condition of the repetitive statement is then
+checked again.
+</p>
+<p>
+This can be used with <var>For</var>, var{repeat} and <var>While</var> statements.
+</p>
+<p>
+Note that while this is a procedure, <var>Continue</var> is a reserved word
+and hence cannot be redefined.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Break"/>
+<link id="Exit"/>
+</seealso>
+<example file="refex/ex86"/>
+</element>
+
+
+
+
+<element name="Copy">
+<short>Copy part of a string.</short>
+<descr>
+<var>Copy</var> returns a string which is a copy if the <var>Count</var> characters
+in <var>S</var>, starting at position <var>Index</var>. If <var>Count</var> is larger than
+the length of the string <var>S</var>, the result is truncated.
+If <var>Index</var> is larger than the length of the string <var>S</var>, then an
+empty string is returned.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Delete"/>
+<link id="Insert"/>
+<link id="Pos"/>
+</seealso>
+<example file="refex/ex11"/>
+</element>
+
+
+
+<element name="Cos">
+<short>Calculate cosine of angle</short>
+<descr>
+<var>Cos</var> returns the cosine of <var>X</var>, where X is an angle, in radians.
+
+If the absolute value of the argument is larger than \var{2\^{}63}, then the
+result is undefined.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Arctan"/>
+<link id="Sin"/>
+</seealso>
+<example file="refex/ex12"/>
+</element>
+
+
+
+<element name="CSeg">
+<short>Return code segment</short>
+<descr>
+<var>CSeg</var> returns the Code segment register. In Free Pascal, it returns always a
+zero, since Free Pascal is a 32 bit compiler.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="DSeg"/>
+<link id="Seg"/>
+<link id="Ofs"/>
+<link id="Ptr"/>
+</seealso>
+<example file="refex/ex13"/>
+</element>
+
+
+
+<element name="Dec">
+<short>Decrease value of variable</short>
+<descr>
+<var>Dec</var> decreases the value of <var>X</var> with <var>Decrement</var>.
+If <var>Decrement</var> isn't specified, then 1 is taken as a default.
+</descr>
+<errors>
+A range check can occur, or an underflow error, if an attempt it made
+to decrease <var>X</var> below its minimum value.
+</errors>
+<seealso>
+<link id="Inc"/>
+</seealso>
+<example file="refex/ex14"/>
+</element>
+
+
+
+<element name="Delete">
+<short>Delete part of a string.</short>
+<descr>
+<var>Delete</var> removes <var>Count</var> characters from string <var>S</var>, starting
+at position <var>Index</var>. All characters after the delected characters are
+shifted <var>Count</var> positions to the left, and the length of the string is adjusted.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Copy"/>
+<link id="Pos"/>
+<link id="Insert"/>
+</seealso>
+<example file="refex/ex15"/>
+</element>
+
+
+
+<element name="Dispose">
+<short>Free dynamically allocated memory</short>
+<descr>
+<p>
+The first form <var>Dispose</var> releases the memory allocated with a call to
+<link id="New"/>. The pointer <var>P</var> must be typed. The released memory is
+returned to the heap.
+</p>
+<p>
+The second form of <var>Dispose</var> accepts as a first parameter a pointer
+to an object type, and as a second parameter the name of a destructor
+of this object. The destructor will be called, and the memory allocated
+for the object will be freed.
+</p>
+</descr>
+<errors>
+An runtime error will occur if the pointer doesn't point to a location in the
+heap.
+</errors>
+<seealso>
+<link id="New"/>
+<link id="Getmem"/>
+<link id="Freemem"/>
+</seealso>
+<example file="refex/ex16"/>
+</element>
+
+
+
+<element name="DSeg">
+<short>Return data segment</short>
+<descr>
+<var>DSeg</var> returns the data segment register. In Free Pascal, it returns always a
+zero, since Free Pascal is a 32 bit compiler.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="CSeg"/>
+<link id="Seg"/>
+<link id="Ofs"/>
+<link id="Ptr"/>
+</seealso>
+<example file="refex/ex17"/>
+</element>
+
+
+
+<element name="Eof">
+<short>Check for end of file</short>
+<descr>
+<var>Eof</var> returns <var>True</var> if the file-pointer has reached the end of the
+file, or if the file is empty. In all other cases <var>Eof</var> returns
+<var>False</var>.
+If no file <var>F</var> is specified, standard input is assumed.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Eoln"/>
+<link id="Assign"/>
+<link id="Reset"/>
+<link id="Rewrite"/>
+</seealso>
+<example file="refex/ex18"/>
+</element>
+
+
+
+<element name="Eoln">
+<short>Check for end of line</short>
+<descr>
+<var>Eof</var> returns <var>True</var> if the file pointer has reached the end of a
+line, which is demarcated by a line-feed character (ASCII value 10), or if
+the end of the file is reached.
+In all other cases <var>Eof</var> returns <var>False</var>.
+If no file <var>F</var> is specified, standard input is assumed.
+It can only be used on files of type <var>Text</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Eof"/>
+<link id="Assign"/>
+<link id="Reset"/>
+<link id="Rewrite"/>
+</seealso>
+<example file="refex/ex19"/>
+</element>
+
+
+
+<element name="Erase">
+<short>Delete a file from disk</short>
+<descr>
+<var>Erase</var> removes an unopened file from disk. The file should be
+assigned with <var>Assign</var>, but not opened with <var>Reset</var> or <var>Rewrite</var>
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Assign"/>
+</seealso>
+<example file="refex/ex20"/>
+</element>
+
+
+
+<element name="Exclude">
+<short>Exlude element from a set if it is present.</short>
+<descr>
+<p>
+<var>Exclude</var> removes <var>E</var> from the set <var>S</var> if it is
+included inthe set. E should be of the same type as the base type
+of the set <var>S</var>.
+</p>
+<p>
+Thus, the two following statements do the same thing:
+</p>
+<code>
+S:=S-[E];
+Exclude(S,E);
+</code>
+</descr>
+<errors>
+If the type of the element <var>E</var> is not equal to the base type of the
+set <var>S</var>, the compiler will generate an error.
+</errors>
+<seealso>
+<link id="Include"/>
+</seealso>
+<example file="refex/ex111"/>
+</element>
+
+
+
+<element name="Exit">
+<short>Exit current subroutine.</short>
+<descr>
+<var>Exit</var> exits the current subroutine, and returns control to the calling
+routine. If invoked in the main program routine, exit stops the program.
+The optional argument <var>X</var> allows to specify a return value, in the case
+<var>Exit</var> is invoked in a function. The function result will then be
+equal to <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Halt"/>
+</seealso>
+<example file="refex/ex21"/>
+</element>
+
+
+
+<element name="Exp">
+<short>Exponentiate</short>
+<descr>
+<var>Exp</var> returns the exponent of <var>X</var>, i.e. the number <var>e</var> to the
+power <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Ln"/>
+<link id="Power"/>
+</seealso>
+<example file="refex/ex22"/>
+</element>
+
+
+
+<element name="Filepos">
+<short>Get position in file</short>
+<descr>
+<var>Filepos</var> returns the current record position of the file-pointer in file
+<var>F</var>. It cannot be invoked with a file of type <var>Text</var>. A compiler error
+will be generated if this is attempted.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Filesize"/>
+</seealso>
+<example file="refex/ex23"/>
+</element>
+
+
+
+<element name="Filesize">
+<short>Size of file</short>
+<descr>
+<var>Filesize</var> returns the total number of records in file <var>F</var>.
+It cannot be invoked with a file of type <var>Text</var>. (under linux and unix, this
+also means that it cannot be invoked on pipes).
+If <var>F</var> is empty, 0 is returned.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Filepos"/>
+</seealso>
+<example file="refex/ex24"/>
+</element>
+
+
+
+<element name="FillByte">
+<short>Fill memory region with 8-bit pattern</short>
+<descr>
+<var>FillByte</var> fills the memory starting at <var>X</var> with <var>Count</var> bytes
+with value equal to <var>Value</var>.
+
+This is useful for quickly zeroing out a memory location. When the size of
+the memory location to be filled out is a multiple of 2 bytes, it is better
+ to use <link id="Fillword"/>, and if it is a multiple of 4 bytes it is better
+to use <link id="FillDWord"/>, these routines are optimized for their respective sizes.
+
+</descr>
+<errors>
+No checking on the size of <var>X</var> is done.
+</errors>
+<seealso>
+<link id="Fillchar"/>
+<link id="FillDWord"/>
+<link id="Fillword"/>
+<link id="Move"/>
+</seealso>
+<example file="refex/ex102"/>
+</element>
+
+
+
+<element name="Fillchar">
+<short>Fill memory region with certain character</short>
+<descr>
+<var>Fillchar</var> fills the memory starting at <var>X</var> with <var>Count</var> bytes
+or characters with value equal to <var>Value</var>.
+
+</descr>
+<errors>
+No checking on the size of <var>X</var> is done.
+</errors>
+<seealso>
+<link id="Fillword"/>
+<link id="Move"/>
+<link id="FillByte"/>
+<link id="FillDWord"/>
+</seealso>
+<example file="refex/ex25"/>
+</element>
+
+
+
+<element name="FillDWord">
+<short>Fill memory region with 32-bit pattern</short>
+<descr>
+<var>Fillword</var> fills the memory starting at <var>X</var> with <var>Count</var> DWords
+with value equal to <var>Value</var>. A DWord is 4 bytes in size.
+
+</descr>
+<errors>
+No checking on the size of <var>X</var> is done.
+</errors>
+<seealso>
+<link id="FillByte"/>
+<link id="Fillchar"/>
+<link id="Fillword"/>
+<link id="Move"/>
+</seealso>
+<example file="refex/ex103"/>
+</element>
+
+
+
+<element name="Fillword">
+<short>Fill memory region with 16-bit pattern</short>
+<descr>
+<var>Fillword</var> fills the memory starting at <var>X</var> with <var>Count</var> words
+with value equal to <var>Value</var>. A word is 2 bytes in size.
+</descr>
+<errors>
+No checking on the size of <var>X</var> is done.
+</errors>
+<seealso>
+<link id="Fillchar"/>
+<link id="Move"/>
+</seealso>
+<example file="refex/ex76"/>
+</element>
+
+
+
+<element name="Flush">
+<short>Write file buffers to disk</short>
+<descr>
+<var>Flush</var> empties the internal buffer of an opened file <var>F</var> and writes the
+contents to disk. The file is \textit{not} closed as a result of this call.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Close"/>
+</seealso>
+<example file="refex/ex26"/>
+</element>
+
+
+
+<element name="Frac">
+<short>Return fractional part of floating point value.</short>
+<descr>
+<var>Frac</var> returns the non-integer part of <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Round"/>
+<link id="Int"/>
+</seealso>
+<example file="refex/ex27"/>
+</element>
+
+
+
+<element name="Freemem">
+<short>Release allocated memory</short>
+<descr>
+<var>Freemem</var> releases the memory occupied by the pointer <var>P</var>, of size
+<var>Count</var> (in bytes), and returns it to the heap. <var>P</var> should point to the memory
+allocated to a dynamic variable.
+</descr>
+<errors>
+An error will occur when <var>P</var> doesn't point to the heap.
+</errors>
+<seealso>
+<link id="Getmem"/>
+<link id="New"/>
+<link id="Dispose"/>
+</seealso>
+<example file="refex/ex28"/>
+</element>
+
+
+<element name="Getdir">
+<short>Return the current directory</short>
+<descr>
+<var>Getdir</var> returns in <var>dir</var> the current directory on the drive
+<var>drivenr</var>, where {drivenr} is 1 for the first floppy drive, 3 for the
+first hard disk etc. A value of 0 returns the directory on the current disk.
+On linux and unix systems, <var>drivenr</var> is ignored, as there is only one
+directory tree.
+</descr>
+<errors>
+An error is returned under dos, if the drive requested isn't ready.
+</errors>
+<seealso>
+<link id="Chdir"/>
+</seealso>
+<example file="refex/ex29"/>
+</element>
+
+
+
+<element name="Getmem">
+<short>Allocate new memory on the heap</short>
+<descr>
+<p>
+<var>Getmem</var> reserves <var>Size</var> bytes memory on the heap, and returns a
+pointer to this memory in <var>p</var>. If no more memory is available, nil is
+returned.
+</p>
+<p>
+For an example, see <link id="Freemem"/>.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Freemem"/>
+<link id="Dispose"/>
+<link id="New"/>
+</seealso>
+</element>
+
+<element name="GetMemoryManager">
+<short>Return current memory manager</short>
+<descr>
+<p>
+<var>GetMemoryManager</var> stores the current Memory Manager record in
+<var>MemMgr</var>.
+</p>
+<p>
+For an example, see \progref.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="SetMemoryManager"/>
+<link id="IsMemoryManagerSet"/>.
+</seealso>
+</element>
+
+
+<element name="Halt">
+<short>Stop program execution.</short>
+<descr>
+<var>Halt</var> stops program execution and returns control to the calling
+program. The optional argument <var>Errnum</var> specifies an exit value. If
+omitted, zero is returned.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Exit"/>
+</seealso>
+<example file="refex/ex30"/>
+</element>
+
+
+
+<element name="HexStr">
+<short>Convert integer value to string with hexadecimal representation.</short>
+<descr>
+<var>HexStr</var> returns a string with the hexadecimal representation
+of <var>Value</var>. The string has exactly <var>cnt</var> charaters.
+ (i.e. only the <var>cnt</var> rightmost nibbles are taken into account)
+To have a complete representation of a Longint-type value, 8
+nibbles are needed, i.e. <var>cnt=8</var>.
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Str"/>
+<link id="Val"/>
+<link id="BinStr"/>
+</seealso>
+<example file="refex/ex81"/>
+</element>
+
+
+
+<element name="Hi">
+<short>Return high byte/word of value.</short>
+<descr>
+<var>Hi</var> returns the high byte or word from <var>X</var>, depending on the size
+of X. If the size of X is 4, then the high word is returned. If the size is
+2 then the high byte is returned.
+<var>Hi</var> cannot be invoked on types of size 1, such as byte or char.
+</descr>
+<errors>
+None
+</errors>
+<seealso>
+<link id="Lo"/>
+</seealso>
+<example file="refex/ex31"/>
+</element>
+
+
+
+<element name="High">
+<short>Return highest index of open array or enumerated</short>
+<descr>
+<p>
+The return value of <var>High</var> depends on it's argument:
+</p>
+<ol>
+<li> If the argument is an ordinal type, <var>High</var> returns the highest
+ value in the range of the given ordinal type.
+</li>
+<li> If the argument is an array type or an array type variable then
+<var>High</var> returns the highest possible value of it's index.
+</li>
+<li> If the argument is an open array identifier in a function or
+procedure, then <var>High</var> returns the highest index of the array, as if the
+array has a zero-based index.
+</li>
+</ol>
+<p>
+The return type is always the same type as the type of the argument
+(This can lead to some nasty surprises !).
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Low"/>
+<link id="Ord"/>
+<link id="Pred"/>
+<link id="Succ"/>
+</seealso>
+<example file="refex/ex80"/>
+</element>
+
+
+
+<element name="Inc">
+<short>Increase value of integer variable</short>
+<descr>
+<var>Inc</var> increases the value of <var>X</var> with <var>Increment</var>.
+If <var>Increment</var> isn't specified, then 1 is taken as a default.
+</descr>
+<errors>
+If range checking is on, then A range check can occur, or an overflow
+error, when an attempt is made to increase <var>X</var> over its maximum value.
+</errors>
+<seealso>
+<link id="Dec"/>
+</seealso>
+<example file="refex/ex32"/>
+</element>
+
+
+
+<element name="Include">
+<short>Include element in set if it was not yet present.</short>
+<descr>
+<p>
+<var>Include</var> includes <var>E</var> in the set <var>S</var> if it is
+not yet part of the set. E should be of the same type as the base type
+of the set <var>S</var>.
+</p>
+<p>
+Thus, the two following statements do the same thing:
+</p>
+<code>
+S:=S+[E];
+Include(S,E);
+</code>
+<p>
+For an example, see <link id="Exclude"/>
+</p>
+</descr>
+<errors>
+If the type of the element <var>E</var> is not equal to the base type of the
+set <var>S</var>, the compiler will generate an error.
+</errors>
+<seealso>
+<link id="Exclude"/>
+</seealso>
+</element>
+
+
+<element name="IndexByte">
+<short>Search for a byte in a memory range.</short>
+<descr>
+<var>IndexByte</var> searches the memory at <var>buf</var> for maximally <var>len</var>
+positions for the byte <var>b</var> and returns it's position if it found one.
+If <var>b</var> is not found then -1 is returned.
+
+The position is zero-based.
+</descr>
+<errors>
+<var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
+</errors>
+<seealso>
+<link id="IndexChar"/>
+<link id="IndexDWord"/>
+<link id="IndexWord"/>
+<link id="CompareByte"/>
+</seealso>
+<example file="refex/ex105"/>
+</element>
+
+
+
+<element name="IndexChar">
+<short>Search for a character in a memory range.</short>
+<descr>
+<var>IndexChar</var> searches the memory at <var>buf</var> for maximally <var>len</var>
+positions for the character <var>b</var> and returns it's position if it found one.
+If <var>b</var> is not found then -1 is returned.
+
+The position is zero-based. The <var>IndexChar0</var> variant stops looking if
+a null character is found, and returns -1 in that case.
+</descr>
+<errors>
+<var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
+</errors>
+<seealso>
+<link id="IndexByte"/>
+<link id="IndexDWord"/>
+<link id="IndexWord"/>
+<link id="CompareChar"/>
+</seealso>
+<example file="refex/ex108"/>
+</element>
+
+
+
+<element name="IndexDWord">
+<short>Search for a DWord value in a memory range.</short>
+<descr>
+<var>IndexChar</var> searches the memory at <var>buf</var> for maximally <var>len</var>
+positions for the DWord <var>DW</var> and returns it's position if it found one.
+If <var>DW</var> is not found then -1 is returned.
+
+The position is zero-based.
+</descr>
+<errors>
+<var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
+</errors>
+<seealso>
+<link id="IndexByte"/>
+<link id="IndexChar"/>
+<link id="IndexWord"/>
+<link id="CompareDWord"/>
+</seealso>
+<example file="refex/ex106"/>
+</element>
+
+
+
+<element name="IndexWord">
+<short>Search for a WORD value in a memory range.</short>
+<descr>
+<var>IndexChar</var> searches the memory at <var>buf</var> for maximally <var>len</var>
+positions for the Word <var>W</var> and returns it's position if it found one.
+If <var>W</var> is not found then -1 is returned.
+</descr>
+<errors>
+<var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
+</errors>
+<seealso>
+<link id="IndexByte"/>
+<link id="IndexDWord"/>
+<link id="IndexChar"/>
+<link id="CompareWord"/>
+</seealso>
+<example file="refex/ex107"/>
+</element>
+
+
+
+<element name="Insert">
+<short>Insert one string in another.</short>
+<descr>
+<var>Insert</var> inserts string <var>Source</var> in string <var>S</var>, at position
+<var>Index</var>, shifting all characters after <var>Index</var> to the right. The
+resulting string is truncated at 255 characters, if needed. (i.e. for
+shortstrings)
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Delete"/>
+<link id="Copy"/>
+<link id="Pos"/>
+</seealso>
+<example file="refex/ex33"/>
+</element>
+
+
+
+<element name="IsMemoryManagerSet">
+<short>Is the memory manager set</short>
+<descr>
+<var>IsMemoryManagerSet</var> will return <var>True</var> if the memory manager has
+been set to another value than the system heap manager, it will return
+<var>False</var> otherwise.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="SetMemoryManager"/>
+<link id="GetMemoryManager"/>
+</seealso>
+</element>
+
+<element name="Int">
+<short>Calculate integer part of floating point value.</short>
+<descr>
+<var>Int</var> returns the integer part of any Real <var>X</var>, as a Real.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Frac"/>
+<link id="Round"/>
+</seealso>
+<example file="refex/ex34"/>
+</element>
+
+
+
+<element name="IOresult">
+<short>Return result of last file IO operation</short>
+<descr>
+<p>
+IOresult contains the result of any input/output call, when the
+<var>{\$i-}</var> compiler directive is active, disabling IO checking.
+When the flag is read, it is reset to zero.
+If <var>IOresult</var> is zero, the operation completed successfully. If
+non-zero, an error occurred. The following errors can occur:
+</p>
+<p>
+dos errors :
+</p>
+<dl><dt>2</dt><dd> File not found.</dd>
+<dt>3</dt><dd> Path not found.</dd>
+<dt>4</dt><dd> Too many open files.</dd>
+<dt>5</dt><dd> Access denied.</dd>
+<dt>6</dt><dd> Invalid file handle.</dd>
+<dt>12</dt><dd> Invalid file-access mode.</dd>
+<dt>15</dt><dd> Invalid disk number.</dd>
+<dt>16</dt><dd> Cannot remove current directory.</dd>
+<dt>17</dt><dd> Cannot rename across volumes.</dd>
+</dl>
+<p>
+I/O errors :
+</p>
+<dl>
+<dt>100</dt><dd> Error when reading from disk.</dd>
+<dt>101</dt><dd> Error when writing to disk.</dd>
+<dt>102</dt><dd> File not assigned.</dd>
+<dt>103</dt><dd> File not open.</dd>
+<dt>104</dt><dd> File not opened for input.</dd>
+<dt>105</dt><dd> File not opened for output.</dd>
+<dt>106</dt><dd> Invalid number.</dd>
+</dl>
+<p>
+Fatal errors :
+</p>
+<dl>
+<dt>150</dt><dd> Disk is write protected.</dd>
+<dt>151</dt><dd> Unknown device.</dd>
+<dt>152</dt><dd> Drive not ready.</dd>
+<dt>153</dt><dd> Unknown command.</dd>
+<dt>154</dt><dd> CRC check failed.</dd>
+<dt>155</dt><dd> Invalid drive specified..</dd>
+<dt>156</dt><dd> Seek error on disk.</dd>
+<dt>157</dt><dd> Invalid media type.</dd>
+<dt>158</dt><dd> Sector not found.</dd>
+<dt>159</dt><dd> Printer out of paper.</dd>
+<dt>160</dt><dd> Error when writing to device.</dd>
+<dt>161</dt><dd> Error when reading from device.</dd>
+<dt>162</dt><dd> Hardware failure.</dd>
+</dl>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+All I/O functions.
+</seealso>
+<example file="refex/ex35"/>
+</element>
+
+
+
+<element name="Length">
+<short>Calculate length of a string.</short>
+<descr>
+<var>Length</var> returns the length of the string <var>S</var>, which is limited
+to 255 for shortstrings. If the strings <var>S</var> is empty, 0 is returned.
+
+<em> Note:</em> The length of the string <var>S</var> is stored in <var>S[0]</var> for
+shortstrings only. The <var>Length</var> fuction should always be used on 
+ansistrings and widestrings.
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Pos"/>
+</seealso>
+<example file="refex/ex36"/>
+</element>
+
+
+
+<element name="Ln">
+<short>Calculate logarithm</short>
+<descr>
+<var>Ln</var> returns the natural logarithm of the Real parameter <var>X</var>.
+<var>X</var> must be positive.
+</descr>
+<errors>
+An run-time error will occur when <var>X</var> is negative.
+</errors>
+<seealso>
+<link id="Exp"/>
+<link id="Power"/>
+</seealso>
+<example file="refex/ex37"/>
+</element>
+
+
+
+<element name="Lo">
+<short>Return low byte/word of value.</short>
+<descr>
+<var>Lo</var> returns the low byte of its argument if this is of type
+<var>Integer</var> or
+<var>Word</var>. It returns the low word of its argument if this is of type
+<var>Longint</var> or <var>Cardinal</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Ord"/>
+<link id="Chr"/>
+<link id="Hi"/>
+</seealso>
+<example file="refex/ex38"/>
+</element>
+
+
+
+<element name="LongJmp">
+<short>Jump to address.</short>
+<descr>
+<p>
+<var>LongJmp</var> jumps to the adress in the <var>env</var> <var>jmp_buf</var>,
+and restores the registers that were stored in it at the corresponding
+<link id="SetJmp"/> call.
+In effect, program flow will continue at the <var>SetJmp</var> call, which will
+return <var>value</var> instead of 0. If a <var>value</var> equal to zero is passed,
+it will be converted to 1 before passing it on. The call will not return, so it must be
+used with extreme care.
+This can be used for error recovery, for instance when a segmentation fault
+occurred.
+</p>
+<p>
+For an example, see <link id="SetJmp"/>
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="SetJmp"/>
+</seealso>
+</element>
+
+<element name="Low">
+<short>Return lowest index of open array or enumerated</short>
+<descr>
+<p>
+ The return value of <var>Low</var> depends on it's argument:
+</p>
+<ol>
+<li> If the argument is an ordinal type, <var>Low</var> returns the lowest
+value in the range of the given ordinal type.
+</li>
+<li> If the argument is an array type or an array type variable then
+<var>Low</var> returns the lowest possible value of it's index.
+</li>
+</ol>
+<p>
+The return type is always the same type as the type of the argument.
+</p>
+<p>
+for an example, see <link id="High"/>.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="High"/>
+<link id="Ord"/>
+<link id="Pred"/>
+<link id="Succ"/>
+</seealso>
+</element>
+
+<element name="Lowercase">
+<short>Return lowercase version of a string.</short>
+<descr>
+<var>Lowercase</var> returns the lowercase version of its argument <var>C</var>.
+If its argument is a string, then the complete string is converted to
+lowercase. The type of the returned value is the same as the type of the
+argument.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Upcase"/>
+</seealso>
+<example file="refex/ex73"/>
+</element>
+
+
+
+<element name="Mark">
+<short>Mark current memory position</short>
+<descr>
+This routine is here for compatibility with Turbo Pascal, but
+it is not implemented and currently does nothing.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Getmem"/>
+<link id="Freemem"/>
+<link id="New"/>
+<link id="Dispose"/>
+<link id="Maxavail"/>
+</seealso>
+</element>
+
+<element name="Maxavail">
+<short>Return size of largest free memory block</short>
+<descr>
+<p>
+<var>Maxavail</var> returns the size, in bytes, of the biggest free memory block in
+the heap.
+</p>
+<remark>
+The heap grows dynamically if more memory is needed than is available.
+</remark>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Memavail"/>
+<link id="Freemem"/>
+<link id="Getmem"/>
+</seealso>
+<example file="refex/ex40"/>
+</element>
+
+
+
+<element name="Memavail">
+<short>Return total available memory</short>
+<descr>
+<p>
+<var>Memavail</var> returns the size, in bytes, of the free heap memory.
+</p>
+<remark>
+The heap grows dynamically if more memory is needed than is available. The
+heap size is not equal to the size of the memory available to the
+operating system, it is internal to the programs created by Free Pascal.
+</remark>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Maxavail"/>
+<link id="Freemem"/>
+<link id="Getmem"/>
+</seealso>
+<example file="refex/ex41"/>
+</element>
+
+
+
+<element name="Mkdir">
+<short>Create a new directory.</short>
+<descr>
+<p>
+<var>Mkdir</var> creates a new  directory <var>S</var>.
+</p>
+<p>
+For an example, see <link id="Rmdir"/>.
+</p>
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Chdir"/>
+<link id="Rmdir"/>
+</seealso>
+</element>
+
+<element name="Move">
+<short>Move data from one location in memory to another</short>
+<descr>
+<var>Move</var> moves <var>Count</var> bytes from <var>Source</var> to <var>Dest</var>.
+</descr>
+<errors>
+If either <var>Dest</var> or <var>Source</var> is outside the accessible memory for
+the process, then a run-time error will be generated.
+</errors>
+<seealso>
+<link id="Fillword"/>
+<link id="Fillchar"/>
+</seealso>
+<example file="refex/ex42"/>
+</element>
+
+
+
+<element name="MoveChar0">
+<short>Move data till first zero character</short>
+<descr>
+<var>MoveChar0</var> moves <var>Count</var> bytes from <var>Src</var> to <var>Dest</var>, and
+stops moving if a zero character is found.
+</descr>
+<errors>
+No checking is done to see if <var>Count</var> stays within the memory allocated
+to the process.
+</errors>
+<seealso>
+<link id="Move"/>
+</seealso>
+<example file="refex/ex109"/>
+</element>
+
+
+
+<element name="New">
+<short>Dynamically allocate memory for variable</short>
+<descr>
+<p>
+<var>New</var> allocates a new instance of the type pointed to by <var>P</var>, and
+puts the address in <var>P</var>.
+If P is an object, then it is possible to
+specify the name of the constructor with which the instance will be created.
+</p>
+<p>
+For an example, see <link id="Dispose"/>.
+</p>
+</descr>
+<errors>
+If not enough memory is available, <var>Nil</var> will be returned.
+</errors>
+<seealso>
+<link id="Dispose"/>
+<link id="Freemem"/>
+<link id="Getmem"/>
+<link id="Memavail"/>,
+<link id="Maxavail"/>
+</seealso>
+</element>
+
+<element name="Odd">
+<short>Is a value odd or even ?</short>
+<descr>
+<var>Odd</var> returns <var>True</var> if <var>X</var> is odd, or <var>False</var> otherwise.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Abs"/>
+<link id="Ord"/>
+</seealso>
+<example file="refex/ex43"/>
+</element>
+
+
+
+<element name="OctStr">
+<short>Convert integer to a string with octal representation.</short>
+<descr>
+<var>OctStr</var> returns a string with the octal representation
+of <var>Value</var>. The string has exactly <var>cnt</var> charaters.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Str"/>
+<link id="Val"/>
+<link id="BinStr"/>
+<link id="HexStr"/>
+</seealso>
+<example file="refex/ex112"/>
+</element>
+
+
+
+<element name="Ofs">
+<short>Return offset of a variable.</short>
+<descr>
+<var>Ofs</var> returns the offset of the address of a variable.
+This function is only supported for compatibility. In Free Pascal, it
+returns always the complete address of the variable, since Free Pascal is a 32 bit
+compiler.
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="DSeg"/>
+<link id="CSeg"/>
+<link id="Seg"/>
+<link id="Ptr"/>
+</seealso>
+<example file="refex/ex44"/>
+</element>
+
+
+
+<element name="Ord">
+<short>Return ordinal value of an ordinal type.</short>
+<descr>
+<var>Ord</var> returns the Ordinal value of a ordinal-type variable <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Chr"/>
+<link id="Succ"/>
+<link id="Pred"/>
+<link id="High"/>
+<link id="Low"/>
+</seealso>
+<example file="refex/ex45"/>
+</element>
+
+
+
+<element name="Paramcount">
+<short>Return number of command-line parameters passed to the program.</short>
+<descr>
+<var>Paramcount</var> returns the number of command-line arguments. If no
+arguments were given to the running program, <var>0</var> is returned.
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Paramstr"/>
+</seealso>
+<example file="refex/ex46"/>
+</element>
+
+
+
+<element name="Paramstr">
+<short>Return value of a command-line argument.</short>
+<descr>
+<p>
+<var>Paramstr</var> returns the <var>L</var>-th command-line argument. <var>L</var> must
+be between <var>0</var> and <var>Paramcount</var>, these values included.
+The zeroth argument is the path and file name with which the program was
+started.
+</p>
+<p>
+The command-line parameters will be truncated to a length of 255,
+even though the operating system may support bigger command-lines.
+The <var>Objpas</var> unit (used in <var>objfpc</var> or <var>delphi</var> mode) define versions
+of <var>Paramstr</var> which return the full-length command-line arguments.
+</p>
+<p>
+When the complete command-line must be accessed, the <var>argv</var> pointer
+should be used to retrieve the real values of the command-line parameters.
+</p>
+<p>
+For an example, see <link id="Paramcount"/>.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Paramcount"/>
+</seealso>
+</element>
+
+<element name="Pi">
+<short>Return the value of PI.</short>
+<descr>
+<var>Pi</var> returns the value of Pi (3.1415926535897932385).
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Cos"/>
+<link id="Sin"/>
+</seealso>
+<example file="refex/ex47"/>
+</element>
+
+
+
+<element name="Pos">
+<short>Search for substring in a string.</short>
+<descr>
+<var>Pos</var> returns the index of <var>Substr</var> in <var>S</var>, if <var>S</var> contains
+<var>Substr</var>. In case <var>Substr</var> isn't found, <var>0</var> is returned.
+The search is case-sensitive.
+</descr>
+<errors>
+None
+</errors>
+<seealso>
+<link id="Length"/>
+<link id="Copy"/>
+<link id="Delete"/>
+<link id="Insert"/>
+</seealso>
+<example file="refex/ex48"/>
+</element>
+
+
+
+<element name="Power">
+<short>Raise float to integer power</short>
+<descr>
+<p>
+<var>Power</var> returns the value of <var>base</var> to the power <var>expon</var>.
+<var>Base</var> and <var>expon</var> can be of type Longint, in which case the
+result will also be a Longint.
+</p>
+<p>
+The function actually returns <var>Exp(expon*Ln(base))</var>
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Exp"/>
+<link id="Ln"/>
+</seealso>
+<example file="refex/ex78"/>
+</element>
+
+
+
+<element name="Pred">
+<short>Return previous element for an ordinal type.</short>
+<descr>
+<p>
+<var>Pred</var> returns the element that precedes the element that was passed
+to it. If it is applied to the first value of the ordinal type, and the
+program was compiled with range checking on (\var{\{\$R+\}}, then a run-time
+error will be generated.
+</p>
+<p>
+for an example, see <link id="Ord"/>
+</p>
+</descr>
+<errors>
+Run-time error 201 is generated when the result is out of
+range.
+</errors>
+<seealso>
+<link id="Ord"/>
+<link id="Pred"/>
+<link id="High"/>
+<link id="Low"/>
+</seealso>
+</element>
+
+
+<element name="Ptr">
+<short>Combine segment and offset to pointer</short>
+<descr>
+<p>
+<var>Ptr</var> returns a pointer, pointing to the address specified by
+segment <var>Sel</var> and offset <var>Off</var>.
+</p>
+<remark>
+<ol>
+<li> In the 32-bit flat-memory model supported by Free Pascal, this
+function is obsolete.
+</li>
+<li> The returned address is simply the offset.
+</li>
+</ol>
+</remark>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Addr"/>
+</seealso>
+<example file="refex/ex59"/>
+</element>
+
+
+
+<element name="Random">
+<short>Generate random number</short>
+<descr>
+<var>Random</var> returns a random number larger or equal to <var>0</var> and
+strictly less than <var>L</var>.
+If the argument <var>L</var> is omitted, a Real number between 0 and 1 is returned.
+(0 included, 1 excluded)
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Randomize"/>
+</seealso>
+<example file="refex/ex49"/>
+</element>
+
+
+
+<element name="Randomize">
+<short>Initialize random number generator</short>
+<descr>
+<p>
+<var>Randomize</var> initializes the random number generator of Free Pascal, by giving
+a value to <var>Randseed</var>, calculated with the system clock.
+</p>
+<p>
+For an example, see <link id="Random"/>.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Random"/>
+</seealso>
+</element>
+
+<element name="Read">
+<short>Read from a text file into variable</short>
+<descr>
+<var>Read</var> reads one or more values from a file <var>F</var>, and stores the
+result in <var>V1</var>, <var>V2</var>, etc.; If no file <var>F</var> is specified, then
+standard input is read.
+If <var>F</var> is of type <var>Text</var>, then the variables <var>V1, V2</var> etc. must be
+of type <var>Char</var>, <var>Integer</var>, <var>Real</var>, <var>String</var> or <var>PChar</var>.
+If <var>F</var> is a typed file, then each of the variables must be of the type
+specified in the declaration of <var>F</var>. Untyped files are not allowed as an
+argument.
+</descr>
+<errors>
+If no data is available, a run-time error is generated. This behavior can
+be controlled with the \var{\{\$i\}} compiler switch.
+</errors>
+<seealso>
+<link id="Readln"/>
+<link id="Blockread"/>
+<link id="Write"/>
+<link id="Blockwrite"/>
+</seealso>
+<example file="refex/ex50"/>
+</element>
+
+
+
+<element name="Readln">
+<short>Read from a text file into variable and goto next line</short>
+<descr>
+<p>
+<var>Read</var> reads one or more values from a file <var>F</var>, and stores the
+result in <var>V1</var>, <var>V2</var>, etc. After that it goes to the next line in
+the file. The end of the line is marked by the <var>LineEnding</var>
+character sequence (which is platform dependent). The end-of-line marker is
+not considered part of the line and is ignored.
+</p>
+<p>
+If no file <var>F</var> is specified, then standard input is read.
+The variables <var>V1, V2</var> etc. must be of type <var>Char</var>, <var>Integer</var>,
+<var>Real</var>, <var>String</var> or <var>PChar</var>.
+</p>
+<p>
+For an example, see <link id="Read"/>.
+</p>
+</descr>
+<errors>
+If no data is available, a run-time error is generated. This behavior can
+be controlled with the \var{\{\$i\}} compiler switch.
+</errors>
+<seealso>
+<link id="Read"/>
+<link id="Blockread"/>
+<link id="Write"/>
+<link id="Blockwrite"/>
+</seealso>
+</element>
+
+
+<element name="Real2Double">
+<short>Convert Turbo Pascal style real to double.</short>
+<descr>
+<p>
+The <var>Real2Double</var> function converts a Turbo Pascal style real (6 bytes long) to
+a native Free Pascal double type. It can be used e.g. to read old binary TP files with
+FPC and convert them to Free Pacal binary files.
+</p>
+<p>
+Note that the assignment operator has been overloaded so a <var>Real48</var> type
+can be assigned directly to a double or extended.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+</seealso>
+<example file="refex/ex110"/>
+</element>
+
+
+
+<element name="Release">
+<short>Release memory above mark point</short>
+<descr>
+This routine is here for compatibility with Turbo Pascal, but
+it is not implemented and currently does nothing.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Mark"/>
+<link id="Memavail"/>
+<link id="Maxavail"/>
+<link id="Getmem"/>
+<link id="Freemem"/>
+<link id="New"/>
+<link id="Dispose"/>
+</seealso>
+</element>
+
+<element name="Rename">
+<short>Rename file on disk</short>
+<descr>
+<var>Rename</var> changes the name of the assigned file <var>F</var> to <var>S</var>.
+<var>F</var>
+must be assigned, but not opened.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Erase"/>
+</seealso>
+<example file="refex/ex77"/>
+</element>
+
+
+
+<element name="Reset">
+<short>Open file for reading</short>
+<descr>
+<var>Reset</var> opens a file <var>F</var> for reading. <var>F</var> can be any file type.
+If <var>F</var> is a text file, or refers to standard I/O (e.g : '') then it is 
+opened read-only, otherwise it is opened using the mode specified in 
+<var>filemode</var>.
+
+If <var>F</var> is an untyped file, the record size can be specified in
+the optional parameter <var>L</var>. A default value of 128 is used.
+
+File sharing is not taken into account when calling <var>Reset</var>.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Rewrite"/>
+<link id="Assign"/>
+<link id="Close"/>
+<link id="Append"/>
+</seealso>
+<example file="refex/ex51"/>
+</element>
+
+
+
+<element name="Rewrite">
+<short>Open file for writing</short>
+<descr>
+<var>Rewrite</var> opens a file <var>F</var> for writing. <var>F</var> can be any file type.
+If <var>F</var> is an untyped or typed file, then it is opened for reading and
+writing. If <var>F</var> is an untyped file, the record size can be specified in
+the optional parameter <var>L</var>. Default a value of 128 is used.
+if <var>Rewrite</var> finds a file with the same name as <var>F</var>, this file is
+truncated to length <var>0</var>. If it doesn't find such a file, a new file is
+created.
+
+Contrary to Turbo Pascal, Free Pascal opens the file with mode <var>fmoutput</var>. If it should
+be opened in <var>fminout</var> mode, an extra call to <link id="Reset"/> is needed.
+
+File sharing is not taken into account when calling <var>Rewrite</var>.
+
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Reset"/>
+<link id="Assign"/>
+<link id="Close"/>
+<link id="Flush"/>
+<link id="Append"/>
+</seealso>
+<example file="refex/ex52"/>
+</element>
+
+
+
+<element name="Rmdir">
+<short>Remove directory when empty.</short>
+<descr>
+<var>Rmdir</var> removes the directory <var>S</var>.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Chdir"/>
+<link id="Mkdir"/>
+</seealso>
+<example file="refex/ex53"/>
+</element>
+
+
+
+<element name="Round">
+<short>Round floating point value to nearest integer number.</short>
+<descr>
+<var>Round</var> rounds <var>X</var> to the closest integer, which may be bigger or
+smaller than <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Frac"/>
+<link id="Int"/>
+<link id="Trunc"/>
+</seealso>
+<example file="refex/ex54"/>
+</element>
+
+
+
+<element name="Runerror">
+<short>Generate a run-time error.</short>
+<descr>
+<var>Runerror</var> stops the execution of the program, and generates a
+run-time error <var>ErrorCode</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Exit"/>
+<link id="Halt"/>
+</seealso>
+<example file="refex/ex55"/>
+</element>
+
+
+
+<element name="Seek">
+<short>Set file position</short>
+<descr>
+<var>Seek</var> sets the file-pointer for file <var>F</var> to record Nr. <var>Count</var>.
+The first record in a file has <var>Count=0</var>. F can be any file type, except
+<var>Text</var>. If <var>F</var> is an untyped file, with no record size specified in
+<link id="Reset"/> or <link id="Rewrite"/>, 128 is assumed.
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Eof"/>
+<link id="SeekEof"/>
+<link id="SeekEoln"/>
+</seealso>
+<example file="refex/ex56"/>
+</element>
+
+
+
+<element name="SeekEof">
+<short>Set file position to end of file</short>
+<descr>
+<var>SeekEof</var> returns <var>True</var> is the file-pointer is at the end of the
+file. It ignores all whitespace.
+Calling this function has the effect that the file-position is advanced
+until the first non-whitespace character or the end-of-file marker is
+reached.
+If the end-of-file marker is reached, <var>True</var> is returned. Otherwise,
+False is returned.
+If the parameter <var>F</var> is omitted, standard <var>Input</var> is assumed.
+
+</descr>
+<errors>
+A run-time error is generated if the file <var>F</var> isn't opened.
+</errors>
+<seealso>
+<link id="Eof"/>
+<link id="SeekEoln"/>
+<link id="Seek"/>
+</seealso>
+<example file="refex/ex57"/>
+</element>
+
+
+
+<element name="SeekEoln">
+<short>Set file position to end of line</short>
+<descr>
+<var>SeekEoln</var> returns <var>True</var> is the file-pointer is at the end of the
+current line. It ignores all whitespace.
+Calling this function has the effect that the file-position is advanced
+until the first non-whitespace character or the end-of-line marker is
+reached.
+If the end-of-line marker is reached, <var>True</var> is returned. Otherwise,
+False is returned.
+The end-of-line marker is defined as <var>#10</var>, the LineFeed character.
+If the parameter <var>F</var> is omitted, standard <var>Input</var> is assumed.
+</descr>
+<errors>
+A run-time error is generated if the file <var>F</var> isn't opened.
+</errors>
+<seealso>
+<link id="Eof"/>
+<link id="SeekEof"/>
+<link id="Seek"/>
+</seealso>
+<example file="refex/ex58"/>
+</element>
+
+
+
+<element name="Seg">
+<short>Return segment</short>
+<descr>
+<var>Seg</var> returns the segment of the address of a variable.
+This function is only supported for compatibility. In Free Pascal, it
+returns always 0, since Free Pascal is a 32 bit compiler, segments have no meaning.
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="DSeg"/>
+<link id="CSeg"/>
+<link id="Ofs"/>
+<link id="Ptr"/>
+</seealso>
+<example file="refex/ex60"/>
+</element>
+
+
+
+<element name="SetMemoryManager">
+<short>Set a memory manager</short>
+<descr>
+<p>
+<var>SetMemoryManager</var> sets the current memory manager record to
+<var>MemMgr</var>.
+</p>
+<p>
+For an example, see \progref.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="GetMemoryManager"/>
+<link id="IsMemoryManagerSet"/>
+</seealso>
+</element>
+
+
+<element name="SetJmp">
+<short>Save current execution point.</short>
+<descr>
+<var>SetJmp</var> fills <var>env</var> with the necessary data for a jump back to the
+point where it was called. It returns zero if called in this way.
+If the function returns nonzero, then it means that a call to <link id="LongJmp"/>
+with <var>env</var> as an argument was made somewhere in the program.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="LongJmp"/>
+</seealso>
+<example file="refex/ex79"/>
+</element>
+
+
+
+
+<element name="SetLength">
+<short>Set length of a string.</short>
+<descr>
+<var>SetLength</var> sets the length of the string <var>S</var> to <var>Len</var>. <var>S</var>
+can be an ansistring, a short string or a widestring.
+For <var>ShortStrings</var>, <var>Len</var> can maximally be 255. For <var>AnsiStrings</var>
+it can have any value. For <var>AnsiString</var> strings, <var>SetLength</var> {\em
+must} be used to set the length of the string.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Length"/>
+</seealso>
+<example file="refex/ex85"/>
+</element>
+
+
+
+<element name="SetString">
+<short>Set length of a string and copy buffer.</short>
+<descr>
+<var>SetString</var> sets the length of the string <var>S</var> to <var>Len</var> and
+if <var>Buf</var> is non-nil, copies <var>Len</var> characters from <var>Buf</var> 
+into <var>S</var>.  <var>S</var> can be an ansistring, a short string or a widestring.
+For <var>ShortStrings</var>, <var>Len</var> can maximally be 255. 
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="SetLength"/>
+</seealso>
+</element>
+
+
+
+<element name="SetTextBuf">
+<short>Set size of text file internal buffer</short>
+<descr>
+<p>
+<var>SetTextBuf</var> assigns an I/O buffer to a text file. The new buffer is
+located at <var>Buf</var> and is <var>Size</var> bytes long. If <var>Size</var> is omitted,
+then <var>SizeOf(Buf)</var> is assumed.
+The standard buffer of any text file is 128 bytes long. For heavy I/O
+operations this may prove too slow. The <var>SetTextBuf</var> procedure allows
+to set a bigger buffer for the IO of the application, thus reducing the number of
+system calls, and thus reducing the load on the system resources.
+The maximum size of the newly assigned buffer is 65355 bytes.
+</p>
+<remark>
+<ul>
+<li> Never assign a new buffer to an opened file. A
+new buffer can be assigned immediately after a call to <link id="Rewrite"/>
+<link id="Reset"/> or
+<var>Append</var>, but not after the file was read from/written to. This may cause
+loss of data. If a new buffer must be assigned after read/write
+operations have been performed, the file should be flushed first.
+This will ensure that the current buffer is emptied.
+</li>
+<li> Take care that the assigned buffer is always valid. If a local variable is
+assigned as a buffer, then after the program exits the local program block,
+the buffer will no longer be valid, and stack problems may occur.
+</li>
+</ul>
+</remark>
+</descr>
+<errors>
+No checking on <var>Size</var> is done.
+</errors>
+<seealso>
+<link id="Assign"/>
+<link id="Reset"/>
+<link id="Rewrite"/>
+<link id="Append"/>
+</seealso>
+<example file="refex/ex61"/>
+</element>
+
+
+
+<element name="Sin">
+<short>Calculate sine of angle</short>
+<descr>
+<var>Sin</var> returns the sine of its argument <var>X</var>, where <var>X</var> is an
+angle in radians.
+
+If the absolute value of the argument is larger than \var{2\^{}63}, then the
+result is undefined.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Cos"/>
+<link id="Pi"/>
+<link id="Exp"/>
+<link id="Ln"/>
+</seealso>
+<example file="refex/ex62"/>
+</element>
+
+
+
+<element name="SizeOf">
+<short>Return size of a variable or type.</short>
+<descr>
+<p>
+<var>SizeOf</var> returns the size, in bytes, of any variable or type-identifier.
+</p>
+<remark>
+This isn't really a RTL function. Its result is calculated at
+compile-time, and hard-coded in the executable.
+</remark>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Addr"/>
+</seealso>
+<example file="refex/ex63"/>
+</element>
+
+
+
+<element name="Sptr">
+<short>Return current stack pointer</short>
+<descr>
+<var>Sptr</var> returns the current stack pointer.
+
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="SSeg"/>
+</seealso>
+<example file="refex/ex64"/>
+</element>
+
+
+
+<element name="Sqr">
+<short>Calculate the square of a value.</short>
+<descr>
+<var>Sqr</var> returns the square of its argument <var>X</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Sqrt"/>
+<link id="Ln"/>
+<link id="Exp"/>
+</seealso>
+<example file="refex/ex65"/>
+</element>
+
+
+
+<element name="Sqrt">
+<short>Calculate the square root of a value</short>
+<descr>
+<var>Sqrt</var> returns the square root of its argument <var>X</var>, which must be
+positive.
+</descr>
+<errors>
+If <var>X</var> is negative, then a run-time error is generated.
+</errors>
+<seealso>
+<link id="Sqr"/>
+<link id="Ln"/>
+<link id="Exp"/>
+</seealso>
+<example file="refex/ex66"/>
+</element>
+
+
+
+<element name="SSeg">
+<short>Return stack segment register value.</short>
+<descr>
+ <var>SSeg</var> returns the Stack Segment. This function is only
+ supported for compatibility reasons, as <var>Sptr</var> returns the
+correct contents of the stackpointer.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Sptr"/>
+</seealso>
+<example file="refex/ex67"/>
+</element>
+
+
+
+<element name="Str">
+<short>Convert a numerical value to a string.</short>
+<descr>
+<var>Str</var> returns a string which represents the value of X. X can be any
+numerical type.
+The optional <var>NumPLaces</var> and <var>Decimals</var> specifiers control the
+formatting of the string.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Val"/>
+</seealso>
+<example file="refex/ex68"/>
+</element>
+
+
+
+<element name="StringOfChar">
+<short>Return a string consisting of 1 character repeated N times.</short>
+<descr>
+<p>
+<var>StringOfChar</var> creates a new String of length <var>l</var> and fills
+it with the character <var>c</var>.
+</p>
+<p>
+It is equivalent to  the following calls:
+</p>
+<code>
+SetLength(StringOfChar,l);
+FillChar(Pointer(StringOfChar)^,Length(StringOfChar),c);
+</code>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="SetLength"/>
+</seealso>
+<example file="refex/ex97"/>
+</element>
+
+
+
+<element name="Succ">
+<short>Return next element of ordinal type.</short>
+<descr>
+<p>
+<var>Succ</var> returns the element that succeeds the element that was passed
+to it. If it is applied to the last value of the ordinal type, and the
+program was compiled with range checking on (\var{\{\$R+\}}), then a run-time
+error will be generated.
+</p>
+<p>
+for an example, see <link id="Ord"/>.
+</p>
+</descr>
+<errors>
+Run-time error 201 is generated when the result is out of
+range.
+</errors>
+<seealso>
+<link id="Ord"/>
+<link id="Pred"/>
+<link id="High"/>
+<link id="Low"/>
+</seealso>
+</element>
+
+<element name="Swap">
+<short>Swap high and low bytes/words of a variable</short>
+<descr>
+<var>Swap</var> swaps the high and low order bytes of <var>X</var> if <var>X</var> is of
+type <var>Word</var> or <var>Integer</var>, or swaps the high and low order words of
+<var>X</var> if <var>X</var> is of type <var>Longint</var> or <var>Cardinal</var>.
+The return type is the type of <var>X</var>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Lo"/>
+<link id="Hi"/>
+</seealso>
+<example file="refex/ex69"/>
+</element>
+
+
+
+<element name="Trunc">
+<short>Truncate a floating point value.</short>
+<descr>
+<var>Trunc</var> returns the integer part of <var>X</var>,
+which is always smaller than (or equal to) <var>X</var> in absolute value.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Frac"/>
+<link id="Int"/>
+<link id="Round"/>
+</seealso>
+<example file="refex/ex70"/>
+</element>
+
+
+
+<element name="Truncate">
+<short>Truncate the file at position</short>
+<descr>
+<var>Truncate</var> truncates the (opened) file <var>F</var> at the current file
+position.
+
+</descr>
+<errors>
+Depending on the state of the \var{\{\$I\}} switch, a runtime error can be 
+generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
+to check for errors.
+</errors>
+<seealso>
+<link id="Append"/>
+<link id="Filepos"/>,
+<link id="Seek"/>
+</seealso>
+<example file="refex/ex71"/>
+</element>
+
+
+
+<element name="Upcase">
+<short>Convert a string to all uppercase.</short>
+<descr>
+<var>Upcase</var> returns the uppercase version of its argument <var>C</var>.
+If its argument is a string, then the complete string is converted to
+uppercase. The type of the returned value is the same as the type of the
+argument.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="Lowercase"/>
+</seealso>
+<example file="refex/ex72"/>
+</element>
+
+
+
+<element name="Val">
+<short>Calculate numerical value of a string.</short>
+<descr>
+<var>Val</var> converts the value represented in the string <var>S</var> to a numerical
+value, and stores this value in the variable <var>V</var>, which
+can be of type <var>Longint</var>, <var>Real</var> and <var>Byte</var>.
+If the conversion isn't succesfull, then the parameter <var>Code</var> contains
+the index of the character in <var>S</var> which prevented the conversion.
+The string <var>S</var> is allowed to contain spaces in the beginning.
+
+The string <var>S</var> can contain a number in decimal, hexadecimal, binary
+or octal format, as described in the language reference.
+
+</descr>
+<errors>
+If the conversion doesn't succeed, the value of <var>Code</var> indicates the
+position where the conversion went wrong.
+</errors>
+<seealso>
+<link id="Str"/>
+</seealso>
+<example file="refex/ex74"/>
+</element>
+
+
+
+<element name="Write">
+<short>Write variable to a text file</short>
+<descr>
+<var>Write</var> writes the contents of the variables <var>V1</var>, <var>V2</var> etc. to
+the file <var>F</var>. <var>F</var> can be a typed file, or a <var>Text</var> file.
+If <var>F</var> is a typed file, then the variables <var>V1</var>, <var>V2</var> etc. must
+be of the same type as the type in the declaration of <var>F</var>. Untyped files
+are not allowed.
+If the parameter <var>F</var> is omitted, standard output is assumed.
+If <var>F</var> is of type <var>Text</var>, then the necessary conversions are done
+such that the output of the variables is in human-readable format.
+This conversion is done for all numerical types. Strings are printed exactly
+as they are in memory, as well as <var>PChar</var> types.
+The format of the numerical conversions can be influenced through
+the following modifiers:
+<var> OutputVariable : NumChars [: Decimals ]  </var>
+This will print the value of <var>OutputVariable</var> with a minimum of
+<var>NumChars</var> characters, from which <var>Decimals</var> are reserved for the
+decimals. If the number cannot be represented with <var>NumChars</var> characters,
+<var>NumChars</var> will be increased, until the representation fits. If the
+representation requires less than <var>NumChars</var> characters then the output
+is filled up with spaces, to the left of the generated string, thus
+resulting in a right-aligned representation.
+If no formatting is specified, then the number is written using its natural
+length, with nothing in front of it if it's positive, and a minus sign if
+it's negative.
+Real numbers are, by default, written in scientific notation.
+</descr>
+<errors>
+If an error occurs, a run-time error is generated. This behavior can be
+controlled with the \var{\{\$i\}} switch.
+</errors>
+<seealso>
+<link id="WriteLn"/>
+<link id="Read"/>
+<link id="Readln"/>
+<link id="Blockwrite"/>
+</seealso>
+</element>
+
+<element name="WriteLn">
+<short>Write variable to a text file and append newline</short>
+<descr>
+<p>
+<var>WriteLn</var> does the same as <link id="Write"/> for text files, and emits a
+Carriage Return - LineFeed character pair after that.
+If the parameter <var>F</var> is omitted, standard output is assumed.
+If no variables are specified, a Carriage Return - LineFeed character pair
+is emitted, resulting in a new line in the file <var>F</var>.
+</p>
+<remark>
+Under linux and unix, the Carriage Return character is omitted, as
+customary in Unix environments.
+</remark>
+</descr>
+<errors>
+If an error occurs, a run-time error is generated. This behavior can be
+controlled with the \var{\{\$i\}} switch.
+</errors>
+<seealso>
+<link id="Write"/>
+<link id="Read"/>
+<link id="Readln"/>
+<link id="Blockwrite"/>
+</seealso>
+<example file="refex/ex75"/>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="ShortInt">
+<short>A signed 8-bits integer</short>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="SmallInt">
+<short>A signed 16-bits integer</short>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="Longint">
+<short>A signed 32-bits integer</short>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="Byte">
+<short>An unsigned 8-bits integer</short>
+</element>
+
+<!-- range type Visibility: default -->
+<element name="Word">
+<short>An unsigned 16-bits integer</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="DWord">
+<short>An unsigned 32-bits integer</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="Cardinal">
+<short>An unsigned 32-bits integer.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="Integer">
+<short>A signed 16-bits integer</short>
+<descr>
+The system unit defines <var>Integer</var> as a signed 16-bit integer.
+But when <var>DELPHI</var> or <var>OBJFPC</var> mode are active, then
+the <file>objpas</file> unit redefines <var>Integer</var> as a 16-bit
+integer.
+</descr>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PChar">
+<short>Pointer to null-terminated string.</short>
+<descr>
+Or the same as a pointer to an array of char. See the reference manual for
+more information about this type.
+</descr>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPChar">
+<short>Pointer to an array of pointers to null-terminated strings.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="TAnsiChar">
+<short>Alias for 1-byte sized char.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="AnsiChar">
+<short>Alias for 1-byte sized char.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="PAnsiChar">
+<short>Alias for <link id="PChar"/> type.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="PPAnsiChar">
+<short>Alias for <link id="PPChar"/> type.</short>
+</element>
+
+<!-- "type" alias type Visibility: default -->
+<element name="UCS4Char">
+<short>UCS unicode character (unsigned 32 bit word)</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PUCS4Char">
+<short>Pointer to <link id="UCS4Char"/></short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="TUCS4CharArray">
+<short>Array of <link id="UCS4Char"/> characters.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PUCS4CharArray">
+<short>Pointer to array of <link id="UCS4Char"/> characters.</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="UCS4String">
+<short>String of <link id="UCS4Char"/> characters.</short>
+</element>
+
+<!-- "type" alias type Visibility: default -->
+<element name="UTF8String">
+<short>UTF-8 unicode (ansi) string.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PUTF8String">
+<short>Pointer to <link id="UTF8String"/></short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="Currency">
+<short>Currency type.</short>
+</element>
+
+<!-- "type" alias type Visibility: default -->
+<element name="HRESULT">
+<short>32-Bit signed integer.</short>
+</element>
+
+<!-- "type" alias type Visibility: default -->
+<element name="TDateTime">
+<short>Encoded Date-Time type.</short>
+</element>
+
+<!-- "type" alias type Visibility: default -->
+<element name="Error">
+<short>32-bit signed integer.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PSingle">
+<short>Pointer to single-sized float value.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PDouble">
+<short>Pointer to double-sized float value.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PCurrency">
+<short>Pointer to currency type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PExtended">
+<short>Pointer to extended-sized float value.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PSmallInt">
+<short>Pointer to <link id="smallint"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PShortInt">
+<short>Pointer to <link id="shortint"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PInteger">
+<short>Pointer to <link id="integer"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PByte">
+<short>Pointer to <link id="byte"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PWord">
+<short>Pointer to <link id="word"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PDWord">
+<short>Pointer to <link id="DWord"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PLongWord">
+<short>Pointer to <var>LongWord</var> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PLongint">
+<short>Pointer to <link id="Longint"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PCardinal">
+<short>Pointer to <link id="Cardinal"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PQWord">
+<short>Pointer to <var>QWord</var> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PInt64">
+<short>Pointer to <var>Int64</var> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPtrInt">
+<short>Pointer to <link id="PtrInt"/> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PSizeInt">
+<short>Pointer to a <link id="SizeInt"/> type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPointer">
+<short>Pointer to a pointer type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPPointer">
+<short>Pointer to a <link id="PPointer"/> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PBoolean">
+<short>Pointer to a Boolean type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PWordBool">
+<short>Pointer to a <var>WordBool</var> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PLongBool">
+<short>Pointer to a <var>LongBool</var> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PShortString">
+<short>Pointer to a shortstring type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PAnsiString">
+<short>Pointer to an ansistring type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PDate">
+<short>Pointer to a <link id="TDateTime"/> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PError">
+<short>Pointer to an <link id="Error"/> type.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="WChar">
+<short>Wide char (16-bit sized char)</short>
+</element>
+
+<!-- enumeration type Visibility: default -->
+<element name="TTextLineBreakStyle">
+<short>Text line break style. (end of line character)</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TTextLineBreakStyle.tlbsLF">
+<short>Line-feed only (#10, unix style)</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TTextLineBreakStyle.tlbsCRLF">
+<short>Carriage-return, line-feed (#13#30, Windows style)</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="TTextLineBreakStyle.tlbsCR">
+<short>Carriage-return (#13, Mac-OS style)</short>
+</element>
+
+<!-- procedure type Visibility: default -->
+<element name="TProcedure">
+<short>Simple procedural type.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="MaxSIntValue">
+<short>Maximum String-size value.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="MaxUIntValue">
+<short>Maximum unsigned integer value.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="maxLongint">
+<short>Maximum longint value.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="maxSmallint">
+<short>Maximum smallint value.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="maxint">
+<short>Maximum integer value.</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="IntegerArray">
+<short>Generic array of integer. </short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PIntegerArray">
+<short>Pointer to <link id="IntegerArray"/> type</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="PointerArray">
+<short>Generic pointer array.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPointerArray">
+<short>Pointer to <link id="PointerArray"/> type</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="TBoundArray">
+<short>Dynamic array of integer.</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="TPCharArray">
+<short>Array of PChar</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPCharArray">
+<short>Pointer to <link id="TPCharArray"/> type.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="Max_Frame_Dump">
+<short>Maximum number of frames to show in error frame dump.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="ExitProc">
+<short>Exit procedure pointer.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="Erroraddr">
+<short>Address where the last error occurred.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="Errorcode">
+<short>Last error code.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fmClosed">
+<short>File mode: File is closed.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fmInput">
+<short>File mode: File is open for reading.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fmOutput">
+<short>File mode: File is open for writing.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fmInOut">
+<short>File mode: File is open for reading and writing.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fmAppend">
+<short>File mode: File is open for writing, appending to the end.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="ProcessID">
+<short>Current process ID.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="Filemode">
+<short>Default file mode for untyped files.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="CmdLine">
+<short>Current command-line.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="IsMultiThread">
+<short>Indicates whether more than one thread is running in the application.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="StackError">
+<short>Indicate whether there was a stack error.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="ExitCode">
+<short>Exit code for the program, will be communicated to the OS on exit.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="RandSeed">
+<short>Seed for <link id="Random"/> function.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="IsLibrary">
+<short><var>True</var> if the current module is a library. Otherwise module
+is an excutable</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="IsConsole">
+<short><var>True</var> for console applications, <var>False</var> for GUI applications.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="fpc_threadvar_relocate_proc" skip="1">
+</element>
+
+<!-- variable Visibility: default -->
+<element name="ThreadID">
+<short>Current Thread ID.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="Output">
+<short>Standard output text file.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="Input">
+<short>Standard input text file.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="StdOut">
+<short>Alias for <link id="Output"/>.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="StdErr">
+<short>Standard diagnostic output text file.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="InOutRes">
+<short>Result of last I/O operation. Read-Only.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="StackBottom">
+<short>Current stack bottom.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="StackLength">
+<short>Maximum stack length.</short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="IndexChar0">
+<short>Return index of a character in null-terminated array of char.</short>
+<descr> 
+<var>IndexChar0</var> returns the index of the character <var>b</var> in the
+null-terminated array <var>Buf</var>. At most <var>len</var> characters will
+be searched, or the null character if it is encountered first. If the
+character is not found, 0 is returned.
+</descr>
+<errors>
+On error, 0 is returned.
+</errors>
+<seealso>
+<link id="IndexByte"/>
+<link id="IndexChar"/>
+<link id="IndexWord"/>
+<link id="IndexDWord"/>
+<link id="CompareChar0"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="CompareChar0">
+<short>Compare two buffers character by character till a null-character is reached.</short>
+<descr>
+<p>
+<var>CompareChar0</var> compares 2 buffers <var>buf1</var> and <var>buf2</var>
+for a maximum length of <var>len</var> or till a null character is reached
+in either buffer. The result depends on the contents of the buffers:
+</p>
+<dl>
+<dt>&lt; 0</dt><dd>If <var>buf1</var> contains a character less than the
+corresponding character in <var>buf2</var>.</dd>
+<dt>0</dt><dd>If both buffers are equal</dd>
+<dt>&gt; 0</dt><dd>If <var>buf1</var> contains a character greater than the
+corresponding character in <var>buf2</var>.</dd>
+</dl>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="CompareByte"/>
+<link id="CompareChar"/>
+<link id="CompareDWord"/>
+<link id="CompareWord"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="prefetch">
+<short>Prefetch a memory location</short>
+<descr>
+<var>Prefetch</var> can be used to optimize the CPU behaviour by already
+loading a memory location. It is mainly used as a hint for those processors
+that support it.
+</descr>
+<errors>
+None.
+</errors>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="real48">
+<short>TP compatible real type (6 bytes) definition</short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="strpas">
+<short>Convert a null-terminated string to a shortstring.</short>
+<descr>
+Converts a null terminated string in <var>P</var> to a Pascal string, and
+returns
+this string. The string is truncated at 255 characters.
+</descr>
+<errors>
+None.
+</errors>
+</element>
+
+<!-- function Visibility: default -->
+<element name="strlen">
+<short>Length of a null-terminated string.</short>
+<descr>
+Returns the length of the null-terminated string <var>P</var>.
+</descr>
+<errors>
+None.
+</errors>
+</element>
+
+<!-- function Visibility: default -->
+<element name="Space">
+<short>Return a string of spaces</short>
+<descr>
+<var>Space</var> returns a shortstring with length <var>B</var>, consisting
+of spaces.
+</descr>
+<seealso>
+<link id="StringOfChar"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="UniqueString">
+<short>Make sure reference count of string is 1</short>
+<descr>
+<var>UniqueString</var> ensures that the ansistring <var>S</var> has
+reference count 1. It makes a copy of <var>S</var> if this is necesary, and
+returns the copy in <var>S</var>
+</descr>
+<errors>
+None.
+</errors>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SetTextLineEnding">
+<short>Set the end-of-line character for the given text file.</short>
+<descr>
+<var>SetTextLineEnding</var> sets the end-of-line character for the text
+file <var>F</var> to <var>Ending</var>. By default, this is the string
+indicated by <link id="DefaultTextLineBreakStyle"/>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="DefaultTextLineBreakStyle"/>
+<link id="TTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="get_frame">
+<short>Return the current frame</short>
+<descr>
+<var>get_frame</var> returns a pointer to the current stack frame.
+</descr>
+<seealso>
+<link id="get_caller_addr"/>
+<link id="get_caller_frame"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="get_caller_addr">
+<short>Return the address of the caller.</short>
+<descr>
+<var>get_caller_frame</var> returns a pointer to address ( the return
+address)  of the caller  of the routine which has as frame <var>framebp</var>.
+</descr>
+<seealso>
+<link id="get_frame"/>
+<link id="get_caller_frame"/>
+<link id="Dump_Stack"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="get_caller_frame">
+<short>Return the frame pointer of the caller</short>
+<descr>
+<var>get_caller_frame</var> returns a pointer to the frame of the caller 
+of the routine which has as frame <var>framebp</var>.
+</descr>
+<seealso>
+<link id="get_caller_addr"/>
+<link id="get_frame"/>
+<link id="Dump_Stack"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="Dump_Stack">
+<short>Dump stack to the given text file.</short>
+<descr>
+<var>Dump_Stack</var> prints a stack dump to the file <var>f</var>, with
+base frame pointer <var>bp</var>
+</descr>
+<errors>
+The file <var>f</var> must be opened for writing or an error will occur.
+</errors>
+<seealso>
+<link id="get_caller_addr"/>
+<link id="get_caller_frame"/>
+<link id="get_frame"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="AddExitProc">
+<short>Add an exit procedure to the exit procedure chain.</short>
+<descr>
+<var>AddExitProc</var> adds <var>Proc</var> to the exit procedure chain. At
+program exit, all procedures added in this way will be called in reverse
+order.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="ExitProc"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SysInitExceptions">
+<short>Initialize exceptions.</short>
+<descr>
+<var>SysInitExceptions</var> initializes the exception system. This
+procedure should never be called directly, it is taken care of by the RTL.
+</descr>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SysInitStdIO">
+<short>Initialize standard input and output.</short>
+<descr>
+<var>SysInitStdIO</var> initializes the standard input and output files:
+<link id="Output"/>, <link id="Input"/> and <link id="StdErr"/>. This
+routine is called by the initialization code of the system unit, there
+should be no need to call it directly.
+</descr>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SysResetFPU">
+<short>Reset the floating point unit.</short>
+<descr>
+<var>SysResetFPU</var> resets the floating point unit. There should normally
+be no need to call this unit; the compiler itself takes care of this.
+</descr>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="AbstractError">
+<short>Generate an abstract error.</short>
+<descr>
+<var>AbstractError</var> generates an abstract error (run-time error 211).
+If the <link id="AbstractErrorProc"/> constant is set, it will be called
+instead.
+</descr>
+<errors>
+This routine causes a run-time error 211.
+</errors>
+<seealso>
+<link id="AbstractErrorProc"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysBackTraceStr">
+<short>Format an address suitable for inclusion in a backtrace</short>
+<descr>
+<var>SysBackTraceStr</var> will create a string representation of the 
+address <var>Addr</var>, suitable for inclusion in a stack backtrace.
+</descr>
+<errors>
+None.
+</errors>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SysAssert">
+<short>Standard Assert failure implementation</short>
+<descr>
+<var>SysAssert</var> is the standard implementation of the assertion failed
+code. It is the default value of the <var>AssertErrorProc</var> constant.
+It will print the assert message <var>Msg</var> together with the filename
+<var>FName</var> and linenumber <var>LineNo</var> to standard error output
+(<var>StdErr</var>) and will halt the program with exit code 227.
+The error address <var>ErrorAddr</var> is ignored.
+</descr>
+<seealso>
+<link id="AssertErrorProc"/>
+</seealso>
+</element>
+
+<!-- function type Visibility: default -->
+<element name="TBackTraceStrFunc">
+<short>Type for formatting of backtrace dump.</short>
+</element>
+
+<!-- procedure type Visibility: default -->
+<element name="TErrorProc">
+<short>Standard error handler procedural type.</short>
+</element>
+
+<!-- procedure type Visibility: default -->
+<element name="TAbstractErrorProc">
+<short>Abstract error handler procedural type.</short>
+</element>
+
+<!-- procedure type Visibility: default -->
+<element name="TAssertErrorProc">
+<short>Assert error handler procedural type.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="BackTraceStrFunc">
+<short>Standard backtrace formatting routine</short>
+<descr>
+This handler is called to get a standard format for the backtrace routine.
+</descr>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="ErrorProc">
+<short>Custom error handling procedure.</short>
+<descr>
+<p>
+If set, the <var>ErrorProc</var> constant is used when a run-time error
+occurs. If it is not set, then the standard error handling is done: a stack
+dump is performed, and the program exits with the indicated error code.
+</p>
+<p>
+The <file>SysUtils</file> unit sets this procedure and raises an exception
+in its handler.
+</p>
+</descr>
+<seealso>
+<link id="TErrorProc"/>
+<link id="Halt"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="AbstractErrorProc">
+<short>Custom abstract error handling procedure</short>
+<descr>
+<p>
+If set, the <var>AbstractErrorProc</var> constant is used when an abstract
+error occurs. If it is not set, then the standard error handling is done:
+A stack dump is performed, and the program exits with error code 211.
+</p>
+<p>
+The <file>SysUtils</file> unit sets this procedure and raises an exception
+in its handler.
+</p>
+</descr>
+<seealso>
+<link id="TAbstractErrorProc"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="AssertErrorProc">
+<short>Custom assert error handling procedure</short>
+<descr>
+<p>
+If set, the <var>AbstractErrorProc</var> constant is used when an assert
+error occurs. If it is not set, then the standard error handling is done:
+The assertion error message is printed, together with the location of the
+assertion, and A stack dump is performed, and the program exits with error code
+227.
+</p>
+<p>
+The <file>SysUtils</file> unit sets this procedure and raises an exception
+in its handler.
+</p>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="jmp_buf">
+<short>Record type to store processor information.</short>
+<seealso>
+<link id="setjmp"/>
+<link id="longjmp"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="jmp_buf.ebx">
+<short>EBX register.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="jmp_buf.esi">
+<short>ESI register</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="jmp_buf.edi">
+<short>EDI register</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="jmp_buf.bp">
+<short>BP register</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="jmp_buf.sp">
+<short>SP register</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="jmp_buf.pc">
+<short>PC register</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PJmp_buf">
+<short>Pointer to <link id="jmp_buf"/> record</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtInstanceSize">
+<short>VMT Layout: Location of class instance size in VMT</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtParent">
+<short>VMT Layout: location of pointer to parent VMT.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtClassName">
+<short>VMT Layout: location of class name.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtDynamicTable">
+<short>VMT Layout: location of dynamic methods table.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtMethodTable">
+<short>VMT Layout: Method table start.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtFieldTable">
+<short>VMT Layout: Location of fields table.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtTypeInfo">
+<short>VMT Layout: Location of class type information.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtInitTable">
+<short>VMT Layout: ?</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtAutoTable">
+<short>VMT layout: ?</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtIntfTable">
+<short>VMT layout: Interface table</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtMsgStrPtr">
+<short>VMT layout: message strings table.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtMethodStart">
+<short>VMT layout: start of method table.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtDestroy">
+<short>VMT Layout: Location of destructor pointer.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtNewInstance">
+<short>VMT Layout: location of NewInstance method.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtFreeInstance">
+<short>VMT Layout: location of FreeInstance method.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtSafeCallException">
+<short>VMT  Layout: ?</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtDefaultHandler">
+<short>VMT Layout: ?</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtAfterConstruction">
+<short>VMT Layout: ?</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtBeforeDestruction">
+<short>VMT Layout: ?</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vmtDefaultHandlerStr">
+<short>VMT Layout: ?</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="TextFile">
+<short>Alias for <var>Text</var> file type.</short>
+</element>
+
+<!-- object Visibility: default -->
+<element name="TObject">
+<short>Parent class for all classes.</short>
+<descr>
+<var>TObject</var> is used as the parent class for all class definitions.
+It contains some standard methods that are available in all classes.
+</descr>
+<seealso>
+<link id="TClass"/>
+</seealso>
+</element>
+
+<!-- "class of" type Visibility: default -->
+<element name="TClass">
+<short>Class of <link id="TObject"/>.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PClass">
+<short>Pointer to <link id="TClass"/></short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TMsgStrTable">
+<short>Record used in string message handler table.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMsgStrTable.name">
+<short>Message name</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMsgStrTable.method">
+<short>Method to call</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PMsgStrTable">
+<short>Pointer to array of <link id="TMsgStrTable"/> records.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TStringMessageTable">
+<short>String message table container for class.</short>
+<descr>
+Record used to describe the string messages handled by a class.
+It consists of a count, followed by an array of <link id="TMsgStrTable"/>
+records.
+</descr>
+<seealso>
+<link id="TMsgStrTable"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TStringMessageTable.count">
+<short>Number of messages in the string table.</short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TStringMessageTable.msgstrtable">
+<short>First <link id="TMsgStrTable"/> record.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pstringmessagetable">
+<short>Pointer to <link id="TStringMessageTable"/> record.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PGuid">
+<short>Pointer to <link id="TGUID"/> type. </short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TGuid">
+<short>Standard GUID representation type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pinterfaceentry">
+<short>Pointer to <link id="tinterfaceentry"/> record.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tinterfaceentry">
+<short>Interfaces table entry.</short>
+<descr>
+<var>tinterfaceentry</var> is used to store the list of Interfaces of a
+class. This list is stored as an array of <var>tinterfaceentry</var>
+records.
+</descr>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tinterfaceentry.IID">
+<short>Unique GUID for this interface.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tinterfaceentry.VTable">
+<short>Pointer to interface VTable.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tinterfaceentry.IOffset">
+<short>Offset</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tinterfaceentry.IIDStr">
+<short>Pointer to GUID string. Always assigned for COM.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pinterfacetable">
+<short>Pointer to <link id="tinterfacetable"/> record.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tinterfacetable">
+<short>Record to store list of interfaces of a class.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tinterfacetable.EntryCount">
+<short>Number of interfaces.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tinterfacetable.Entries">
+<short>Array of <link id="tinterfaceentry"/> records.</short>
+</element>
+
+<!-- object Visibility: default -->
+<element name="TObject">
+<short>Base class of all classes.</short>
+<descr>
+<var>TObject</var> is the parent root class for all classes in Object
+Pascal. If a class has no parent class explicitly declared, it is dependent
+on <var>TObject</var>. <var>TObject</var> introduces class methods that deal
+with the class' type information, and contains all necessary methods to
+create an instance at runtime, and to dispatch messages to the correct
+method (both string and integer messages).
+</descr>
+<seealso>
+<link id="TClass"/>
+</seealso>
+</element>
+
+<!-- constructor Visibility: public -->
+<element name="TObject.Create">
+<short><var>TObject</var> Constructor</short>
+<descr>
+<var>Create</var> creates a new instance of <var>TObject</var>. Currently it
+does nothing. It is also not virtual, so there is in principle no need to
+call it directly. 
+</descr>
+<seealso>
+<link id="TObject.Destroy">Destroy</link>
+</seealso>
+</element>
+
+<!-- destructor Visibility: public -->
+<element name="TObject.Destroy">
+<short><var>TObject</var> destructor.</short>
+<descr>
+<p>
+<var>Destroy</var> is the destructor of <var>TObject</var>. 
+It will clean up the memory assigned to the instance. Descendent classes
+should override destroy if they want to do additional clean-up. No other
+destructor should be implemented.
+</p>
+<p>
+It is bad programming practice to call <var>Destroy</var> directly. It is
+better to call the <link id="TObject.Free">Free</link> method, because that
+one will check first if <var>Self</var> is different from <var>Nil</var>.
+</p>
+<p>
+To clean up an instance and reset the refence to the instance, it is best to
+use the <link id="#rtl.sysutils.freeandnil">FreeAndNil</link> function.
+</p>
+</descr>
+<seealso>
+<link id="TObject.Create">Create</link>
+<link id="TObject.Free">Free</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.newinstance">
+<short>Allocate memory on the heap for a new instance</short>
+<descr>
+<var>NewInstance</var> allocates memory on the heap for a new instance of
+the current class. If the memory was allocated, the class will be
+initialized by a call to <link id="TObject.InitInstance">InitInstance</link>.
+The function returns the newly initialized instance.
+</descr>
+<errors>
+If not enough memory is available, a <var>Nil</var> pointer may be returned, 
+or an exception may be raised.
+</errors>
+<seealso>
+<link id="TObject.Create">Create</link>
+<link id="TObject.InitInstance">InitInstance</link>
+<link id="TObject.InstanceSize">InstanceSize</link>
+<link id="TObject.FreeInstance">FreeInstance</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.FreeInstance">
+<short>Clean up instance and free the memory reserved for the instance.</short>
+<descr>
+<var>FreeInstance</var> cleans up an instance of the current class, and
+releases the heap memory occupied by the class instance.
+</descr>
+<seealso>
+<link id="TObject.Destroy">Destroy</link>
+<link id="TObject.InitInstance">InitInstance</link>
+<link id="TObject.NewInstance">NewInstance</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.SafeCallException">
+<short>Handle exception object</short>
+<descr>
+<var>SafeCallException</var> should be overridden to handle exceptions in a
+method marked with the savecall directive. The implementation in
+<var>TObject</var> simply returns zero.
+</descr>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.DefaultHandler">
+<short>Default handler for integer message handlers.</short>
+<descr>
+<var>DefaultHandler</var> is the default handler for messages. If a message
+has an unknown message ID (i.e. does not appear in the table with integer
+message handlers), then it will be passed to
+<var>DefaultHandler</var> by the <link id="TObject.Dispatch">Dispatch</link>
+method.
+</descr>
+<errors>
+</errors>
+<seealso>
+<link id="TObject.Dispatch">Dispatch</link>
+<link id="TObject.DefaultHandlerStr">DefaultHandlerStr</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.Free">
+<short>Check for <var>Nil</var> and call destructor.</short>
+<descr>
+<var>Free</var> will check the <var>Self</var> pointer and calls
+<link id="TObject.Destroy">Destroy</link> if it is different from
+<var>Nil</var>. This is a safer method than calling <var>Destroy</var>
+directly. If a reference to the object must be reset as well (a recommended
+technque), then the function <link id="#rtl.sysutils.freeandnil">FreeAndNil</link> should be called.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.Destroy">Destroy</link>
+<link id="#rtl.sysutils.freeandnil">FreeAndNil</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.InitInstance">
+<short>Initialize a new class instance.</short>
+<descr>
+<var>InitInstance</var> initializes the memory pointer to by
+<var>Instance</var>. This means that the VMT is initialized, and the
+interface pointers are set up correctly.
+The function returns the newly initialized instance.
+</descr>
+<seealso>
+<link id="TObject.NewInstance">NewInstance</link>
+<link id="TObject.Create">Create</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.CleanupInstance">
+<short>Finalize the class instance.</short>
+<descr>
+<p>
+<var>CleanUpinstance</var> finalizes the instance, i.e. takes care of all
+reference counted objects, by decreasing their reference count by 1, and
+freeing them if their count reaches zero.
+</p>
+<p>
+Normally, <var>CleanupInstance</var> should never be called, it is called
+automatically when the object is freed with it's constructor.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.Destroy">Destroy</link>
+<link id="TObject.Free">Free</link>
+<link id="TObject.InitInstance">InitInstance</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.ClassInfo">
+<short>Return a pointer to the type information for this class.</short>
+<descr>
+<var>ClassInfo</var> returns a pointer to the type information for this
+class. This pointer can be used in the various type information routines.
+</descr>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.ClassType">
+<short>Return a "class of" pointer for the current class</short>
+<descr>
+<var>ClassType</var> returns a <link id="TClass"/> class type reference for
+the current class.
+</descr>
+<seealso>
+<link id="TClass"/>
+<link id="TObject.ClassInfo">ClassInfo</link>
+<link id="TObject.ClassName">ClassName</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.ClassName">
+<short>Return the current class name.</short>
+<descr>
+<var>ClassName</var> returns the class name for the current class, in
+all-uppercase letters. To check for the class name, use the <link
+id="TObject.ClassNameIs">ClassNameIs</link> class method.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.ClassInfo">ClassInfo</link>
+<link id="TObject.ClassType">ClassType</link>
+<link id="TObject.ClassNameIs">ClassNameIs</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.ClassNameIs">
+<short>Check whether the class name equals the given name.</short>
+<descr>
+<var>ClassNameIs</var> checks whether <var>Name</var> equals the class name.
+It takes of case sensitivity, i.e. it converts both names to uppercase
+before comparing.
+</descr>
+<seealso>
+<link id="TObject.ClassInfo">ClassInfo</link>
+<link id="TObject.ClassType">ClassType</link>
+<link id="TObject.ClassName">ClassName</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.ClassParent">
+<short>Return the parent class.</short>
+<descr>
+<var>ClassParent</var> returns the class of the parent class of the current
+class. This is always different from <var>Nil</var>, except for
+<var>TObject</var>.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.ClassInfo">ClassInfo</link>
+<link id="TObject.ClassType">ClassType</link>
+<link id="TObject.ClassName">ClassNameIs</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.InstanceSize">
+<short>Return the size of an instance.</short>
+<descr>
+<var>InstanceSize</var> returns the number of bytes an instance takes in
+memory. This is Just the memory occupied by the class structure, and does
+not take into account any additional memory that might be allocated by the
+constructor of the class.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.InitInstance">InitInstance</link>
+<link id="TObject.ClassName">ClassName</link>
+<link id="TObject.ClassInfo">ClassInfo</link>
+<link id="TObject.ClassType">ClassType</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.InheritsFrom">
+<short>Chck wether class is an ancestor.</short>
+<descr>
+<var>InheritsFrom</var> returns <var>True</var> if <var>AClass</var> is an
+ancestor class from the current class, and returns false if it is not.
+</descr>
+<errors>
+</errors>
+<seealso>
+<link id="TObject.ClassName">ClassName</link>
+<link id="TObject.ClassInfo">ClassInfo</link>
+<link id="TObject.ClassType">ClassType</link>
+<link id="TClass"/>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.StringMessageTable">
+<short>Return a pointer to the string message table.</short>
+<descr>
+<var>StringMessageTable</var> returns a pointer to the string message table,
+which can be used to look up methods for dispatching a string message. It is
+used by the <link id="TObject.DispatchStr">DispatchStr</link> method.
+</descr>
+<errors>
+If there are no string message handlers, nil is returned.
+</errors>
+<seealso>
+<link id="TObject.DispatchStr">DispatchStr</link>
+<link id="TObject.Dispatch">Dispatch</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.Dispatch">
+<short>Dispatch an integer message</short>
+<descr>
+<p>
+<var>Dispatch</var> looks in the message handler table for a handler that
+handles <var>message</var>. The message is identified by the first dword
+(cardinal) in the message structure.
+</p>
+<p>
+If no matching message handler is found, the message is passed to the
+<link id="TObject.DefaultHandler">DefaultHandler</link> method, which can be
+overridden by descendent classes to add custom handling of messages.
+</p>
+</descr>
+<seealso>
+<link id="TObject.DispatchStr">DispatchStr</link>
+<link id="TObject.DefaultHandler">DefaultHandler</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.DispatchStr">
+<short>Dispatch a string message.</short>
+<descr>
+<var>DispatchStr</var> extracts the message identifier from
+<var>Message</var> and checks the message handler table to see if a handler
+for the message is found, and calls the handler, passing along the message. 
+If no handler is found, the default <link id="TObject.DefaultHandlerStr">DefaultHandlerStr</link> 
+is called.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.DefaultHandlerStr">DefaultHandlerStr</link>
+<link id="TObject.Dispatch">Dispatch</link>
+<link id="TObject.DefaultHandler">DefaultHandler</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.MethodAddress">
+<short>Return the address of a method</short>
+<descr>
+<var>MethodAddress</var> returns the address of a method, searching the
+method by its name. The <var>Name</var> parameter specifies which method
+should be taken. The search is conducted in a case-insensitive manner.
+</descr>
+<errors>
+If no matching method is found, <var>Nil</var> is returned.
+</errors>
+<seealso>
+<link id="TObject.MethodName">MethodName</link>
+<link id="TObject.FieldAddress">FieldAddress</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.MethodName">
+<short>Return the name of a method.</short>
+<descr>
+<var>MethodName</var> searches the VMT for a method with the specified 
+<var>address</var> and returns the name of the method.
+</descr>
+<errors>
+If no method with the matching address is found, an empty string is
+returned.
+</errors>
+<seealso>
+<link id="TObject.MethodAddress">MethodAddress</link>
+<link id="TObject.FieldAddress">FieldAddress</link>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TObject.FieldAddress">
+<short>Return the address of a field.</short>
+<descr>
+<var>FieldAddress</var> returns the address of the field with name <var>name</var>. 
+The address is the address of the field in the current class instance.
+</descr>
+<errors>
+If no field with the specified name is found, <var>Nil</var> is returned.
+</errors>
+<seealso>
+<link id="TObject.MethodAddress">MethodAddress</link>
+<link id="TObject.MethodName">MethodName</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.AfterConstruction">
+<short>Method called after the constructor was called.</short>
+<descr>
+<var>AfterConstruction</var> is a method called after the constructor was
+called. It does nothing in the implementation of <var>TObject</var> and must
+be overridden by descendent classes to provide specific behaviour that is
+executed after the constructor has finished executing. (for instance, call
+an event handler)
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.BeforeDestruction">BeforeDestruction</link>
+<link id="TObject.Create">Create</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.BeforeDestruction">
+<short>Method called before the destructor is called.</short>
+<descr>
+<var>BeforeDestruction</var> is a method called before the destructor is
+called. It does nothing in the implementation of <var>TObject</var> and must
+be overridden by descendent classes to provide specific behaviour that is
+executed before the destructor has finished executing. (for instance, call
+an event handler)
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TObject.AfterConstruction">AfterConstruction</link>
+<link id="TObject.Destroy">Destroy</link>
+<link id="TObject.Free">Free</link>
+</seealso>
+</element>
+
+<!-- procedure Visibility: public -->
+<element name="TObject.DefaultHandlerStr">
+<short>Default handler for string messages.</short>
+<descr>
+<var>DefaultHandlerStr</var> is called for string messages which have no
+handler associated with them in the string message handler table. The
+implementation of <var>DefaultHandlerStr</var> in <var>TObject</var> does
+nothing and mut be overridden by descendent classes to provide specific
+message handling behaviour.
+</descr>
+<seealso>
+<link id="TObject.DispatchStr">DispatchStr</link>
+<link id="TObject.Dispatch">Dispatch</link>
+<link id="TObject.DefaultHandler">DefaultHandler</link>
+</seealso>
+</element>
+
+<!-- procedure type Visibility: default -->
+<element name="TExceptProc">
+<short>Exception handler procedural type</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PExceptObject">
+<short>Pointer to Exception handler procedural type <link id="TExceptProc"/></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TExceptObject">
+<short>Exception object</short>
+<descr>
+<var>TExceptObject</var> is the exception description record which is found
+on the exception stack.
+</descr>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TExceptObject.FObject">
+<short>Exception instance.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TExceptObject.Addr">
+<short>Address where exception occurred</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TExceptObject.Frame">
+<short>Exception frame where exception occurred</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TExceptObject.Next">
+<short>Next exception object on the stack.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TExceptObject.refcount">
+<short>Reference count for this exception object</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="ExceptProc">
+<short>Current exception handling procedure.</short>
+<descr>
+<p>
+This constant points to the current exception handling procedure. 
+This routine is called when an unhandled exception occurs, i.e. an exception
+that is not stopped by a except block.
+</p>
+<p>
+If the handler is not set, the RTL will emit a run-time error 217 when an
+unhandler exception occurs.
+</p>
+<p>
+It is set by the <link id="#rtl.sysutils">sysutils</link> unit. 
+</p>
+</descr>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="RaiseProc">
+<short>Procedure to raise an exception.</short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="RaiseList">
+<short>List of currently raised exceptions.</short>
+<descr>
+<var>RaiseList</var> returns a pointer to the list of currently raised
+exceptions (i.e. a pointer to the first exception block.
+</descr>
+<errors>
+</errors>
+<seealso>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="AcquireExceptionObject">
+<short>Obtain a reference to the current exception object</short>
+<descr>
+<p>
+<var>AcquireExceptionObject</var> returns the current exception object.
+It raises the reference count of the exception object, so it will not be
+freed.  Calling this method is only valid within an except block.
+</p>
+<p>
+The effect of this function is countered by re-raising an exception
+via <var>raise;</var>
+</p>
+<p>
+To make sure that the exception object is released when it is no longer
+needed, <link id="ReleaseExceptionObject"/> must be called when the 
+reference is no longer needed.
+</p>
+</descr>
+<errors>
+If there is no current exception, a run-time error 231 will occur.
+</errors>
+<seealso>
+<link id="ReleaseExceptionObject"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="ReleaseExceptionObject">
+<short>Decrease the reference count of the current exception object.</short>
+<descr>
+<p>
+<var>ReleaseExceptionObject</var> decreases the reference count of the
+current exception object. This should be called whenever a reference to the
+exception object was obtained via the <link id="AcquireExceptionObject"/>
+call.
+</p>
+<p>
+Calling this method is only valid within an except block.
+</p>
+</descr>
+<errors>
+If there is no current exception object, a run-time error 231 will occur.
+</errors>
+<seealso>
+<link id="AcquireExceptionObject"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtInteger">
+<short>TVarRec type: Integer</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtBoolean">
+<short>TVarRec type: Boolean</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtChar">
+<short>TVarRec type: Char</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtExtended">
+<short>TVarRec type: Extended</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtString">
+<short>TVarRec type: String</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtPointer">
+<short>TVarRec type: pointer</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtPChar">
+<short>TVarRec type: PChar</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtObject">
+<short>TVarRec type: Object instance</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtClass">
+<short>TVarRec type: Class type</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtWideChar">
+<short>TVarRec type: Widechar</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtPWideChar">
+<short>TVarRec type: PWideChar</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtAnsiString">
+<short>TVarRec type: Ansistring</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtCurrency">
+<short>TVarRec type: Currency</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtVariant">
+<short>TVarRec type: Variant</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtInterface">
+<short>TVarRec type: Interface</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtWideString">
+<short>TVarRec type: WideString</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtInt64">
+<short>TVarRec type: Int64 (signed 64-bit integer)</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vtQWord">
+<short>TVarRec type: QWord (unsigned 64-bit integer)</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PVarRec">
+<short>Pointer to <link id="TVarRec"/> type.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TVarRec">
+<short>Record describing an element in an array of const</short>
+<descr>
+<var>TVarRec</var> is a record generated by the compiler for each element in
+a <var>array of const</var> call. The procedure that receives the constant
+array receives an array of <var>TVarRec</var> elements, with lower bound zero
+and high bound equal to the number of elements in the array minus one
+(as returned by <var>High(Args)</var>)
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="tdynarrayindex">
+<short>Type with the correct size for index into a dynamic array.</short>
+<descr>
+A variable of type <var>tdynarrayindex</var> will always have the correct
+size, suitable for serving as an index in a dynamic array.
+</descr>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pdynarrayindex">
+<short>Pointer to <link id="tdynarrayindex"/> type.</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="fpc_big_chararray" skip="1">
+<short>Array of char.</short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="fpc_small_set" skip="1">
+<short>Type with the size of a small set</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="fpc_normal_set" skip="1">
+<short>Type with the size of a normal set</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PMemoryManager">
+<short>Pointer to <link id="TMemoryManager"/> record</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TMemoryManager">
+<short>Record describing the current memory manager</short>
+<descr>
+<var>TMemoryManager</var> describes the memory manager. For more information
+about the memory manager, see the programmer's reference. 
+</descr>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.NeedLock">
+<short>Does the memory manager require a lock</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.Getmem">
+<short>Function called when memory must be allocated on the heap.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.Freemem">
+<short>Function called when previously allocated memory can be freed again.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.FreememSize">
+<short>Function called when previously allocated memory with a known size can be freed again.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.AllocMem">
+<short>Same as getmem.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.ReAllocMem">
+<short>Handler called when an allocated  memory block should be resized</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.MemSize">
+<short>Return the size of a memory block.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryManager.GetHeapStatus">
+<short>Handler called when the heap status must be reported.</short>
+</element>
+
+<element name="GetHeapStatus">
+<short>Return the memory manager heap status.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="TMemoryMutexManager">
+<short>Record describing the mutex manager for the heap.</short>
+<descr>
+When the heapmanager needs a lock, then the mutex manager is used to handle
+the lock.
+</descr>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryMutexManager.MutexInit">
+<short>Initialize the mutex</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryMutexManager.MutexDone">
+<short>Finalize (i.e. dispose of) the mutex.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryMutexManager.MutexLock">
+<short>Lock the mutex</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMemoryMutexManager.MutexUnlock">
+<short>Unlock the mutex.</short>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SetMemoryMutexManager">
+<short>Procedure to set the mutex manager.</short>
+<descr>
+<var>SetMemoryMutexManager</var> sets the mutex manager used by the memory
+manager to <var>MutexMgr</var>. The current mutex manager is returned in
+<var>MutexMgr</var>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TMemoryMutexManager"/>
+<link id="SetMemoryManager"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="growheapsizesmall">
+<short>Fixed size small blocks grow rate</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="growheapsize1">
+<short>Grow rate for block less than 256 Kb.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="growheapsize2">
+<short>Grow rate for block larger than 256 Kb.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="ReturnNilIfGrowHeapFails">
+<short>Describe behaviour if getmem fails.</short>
+<descr>
+<var>ReturnNilIfGrowHeapFails</var> describes what happens if there is no
+more memory available from the operating system. if set to <var>True</var>
+the memory manager will return <var>Nil</var>. If set to <var>False</var>
+then a run-time error will occur.
+</descr>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysGetmem">
+<short>System memory manager memory allocator.</short>
+<descr>
+<var>SysGetmem</var> is the system memory manager implementation for <link
+id="GetMem"/> 
+</descr>
+<seealso>
+<link id="GetMem"/>
+<link id="GetMemory"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysFreemem">
+<short>System memory manager free routine.</short>
+<descr>
+<var>SysFreeem</var> is the system memory manager implementation for <link id="FreeMem"/>
+</descr>
+<seealso>
+<link id="FreeMem"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysFreememSize">
+<short>System memory manager free routine.</short>
+<descr>
+<var>SysFreemSize</var> is the system memory manager implementation for <link
+id="FreeMem"/>
+</descr>
+<seealso>
+<link id="MemSize"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysMemSize">
+<short>System memory manager: free size.</short>
+<descr>
+<var>SysFreemSize</var> is the system memory manager implementation for
+<link id="MemSize"/>
+</descr>
+<seealso>
+<link id="MemSize"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysAllocMem">
+<short>System memory manager: Allocate memory</short>
+<descr>
+<var>SysFreemSize</var> is the system memory manager implementation for
+<link id="AllocMem"/>
+</descr>
+<seealso>
+<link id="AllocMem"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysTryResizeMem">
+<short>System memory manager: attempt to resize memory.</short>
+<descr>
+<var>SysTryResizeMem</var> is a help routine for the system memory 
+manager implementation for <link id="ReAllocMem"/>, <link
+id="SysReAllocMem"/>
+</descr>
+<seealso>
+<link id="SysReAllocMem"/>
+<link id="ReAllocMem"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="SysReAllocMem">
+<short>System memory manager: Reallocate memory</short>
+<descr>
+<var>SysReallocMem</var> is a help routine for the system memory
+manager implementation for <link id="ReAllocMem"/>.
+</descr>
+<seealso>
+<link id="ReAllocMem"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="Getmemory">
+<short>Alias for <link id="GetMem"/></short>
+<descr>
+<var>Getmemory</var> is an alias for <link id="GetMem"/>.
+</descr>
+<seealso>
+<link id="GetMem"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="Freememory">
+<short>Alias for <link id="FreeMem"/></short>
+<descr>
+<var>FreeMemory</var> is an alias for <link id="FreeMem"/>.
+</descr>
+<seealso>
+<link id="FreeMem"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="MemSize">
+<short>Return the size of a memory block.</short>
+<descr>
+<var>MemSize</var> returns the size of a memory block on the heap.
+</descr>
+<errors>
+Passing an invalid pointer may lead to run-time errors (access violations).
+</errors>
+<seealso>
+<link id="GetMem"/>
+<link id="FreeMem"/>
+</seealso>
+</element>
+
+<element name="AllocMem">
+<short>Alias for <link id="GetMem"/></short>
+<descr>
+<var>AllocMem</var> is an alias for <link id="GetMem"/>. 
+</descr>
+<seealso>
+<link id="GetMem"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="ReAllocMem">
+<short>Re-allocate memory on the heap</short>
+<descr>
+<p>
+<var>ReAllocMem</var> resizes the memory pointed to by <var>P</var> so it has size
+<var>Size</var>. The value of <var>P</var> may change during this operation.
+The contents of the memory pointed to by <var>P</var> (if any) will be copied to
+the new location, but may be truncated if the newly allocated memory block
+is smaller in size. If a larger block is allocated, only the used memory is
+initialized, extra memory will not be zeroed out.
+</p>
+<p>
+Note that <var>P</var> may be nil, in that case the behaviour of
+<var>ReAllocMem</var> is equivalent to <var>Getmem</var>.
+</p>
+</descr>
+<seealso>
+<link id="GetMem"/>
+<link id="FreeMem"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="ReAllocMemory">
+<short>Alias for <link id="ReAllocMem"/></short>
+<descr>
+<var>ReAllocMemory</var> is an alias for <link id="ReAllocMem"/>.
+</descr>
+<seealso>
+<link id="ReAllocMem"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="AsmGetmem">
+<short>Routine that can be called from assembler routines to get memory.</short>
+<descr>
+<var>AsmGetmem</var> is a routine that can be called from assembler code to
+get memory. The assembler reader cannot decide which overloaded <link
+id="GetMem"/> call should be used. <var>AsmGetMem</var> provides a unique
+name that can be called from assembler. Other than that it is completely
+equivalent to <var>GetMem</var>.
+</descr>
+<seealso>
+<link id="GetMem"/>
+<link id="AsmFreeMem"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="AsmFreemem">
+<short>Routine that can be called from assembler routines to release memory.</short>
+<descr>
+<var>AsmFreemem</var> is a routine that can be called from assembler code to
+release previously alocated memory. The assembler reader cannot decide which 
+overloaded <link id="FreeMem"/> call should be used. <var>AsmFreeMem</var> 
+provides a unique name that can be called from assembler. Other than that it 
+is completely equivalent to <var>FreeMem</var>.
+</descr>
+<seealso>
+<link id="FreeMem"/>
+<link id="AsmGetMem"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="THandle">
+<short>Type alias.</short>
+<descr>
+This type should be considered opaque. It is used to describe file and other
+handles.
+</descr>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="LineEnding">
+<short>Constant describing the current line ending character.</short>
+<descr>
+<p>
+<var>LineEnding</var> is a constant which contains the current line-ending
+character. This character is system dependent, and is initialized by the
+system. It should not be set.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="DriveSeparator"/>
+<link id="DirectorySeparator"/>
+<link id="LFNSupport"/>
+<link id="PathSeparator"/>
+<link id="sLineBreak"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="LFNSupport">
+<short>COnstant describing support for long filenames.</short>
+<descr>
+<p>
+<var>LFNSupport</var> determines whether the current OS supports long file
+names, i.e. filenames that are not of the form 8.3 as on ancient DOS
+systems. If the value of this constant is <var>True</var> then long
+filenames are supported. If it is false, then not.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<link id="DriveSeparator"/>
+<link id="DirectorySeparator"/>
+<link id="LineEnding"/>
+<link id="PathSeparator"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="DirectorySeparator">
+<short>Character used to separate directory parts.</short>
+<descr>
+<p>
+<var>DirectorySeparator</var> is the character used by the current operating
+system to separate directory parts in a pathname. This constant is system
+dependent, and should not be set.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="DriveSeparator"/>
+<link id="LineEnding"/>
+<link id="LFNSupport"/>
+<link id="PathSeparator"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="DriveSeparator">
+<short>Character used to separate directory parts.</short>
+<descr>
+<p>
+On systems that support driveletters, the <var>DriveSeparator</var> constant
+denotes the character that separates the drive indicator from the directory
+part in a filename path.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="DirectorySeparator"/>
+<link id="LineEnding"/>
+<link id="LFNSupport"/>
+<link id="PathSeparator"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="PathSeparator">
+<short>Character used to separate paths in a search list</short>
+<descr>
+<p>
+<var>PathSeparator</var> is the character used commonly on the current
+operating system to separate paths in a list of paths, such as the 
+<var>PATH</var> environment variable. 
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="DirectorySeparator"/>
+<link id="LineEnding"/>
+<link id="LFNSupport"/>
+<link id="DriveSeparator"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="FileNameCaseSensitive">
+<short>OS treatment of filenames is case sensitive.</short>
+<descr>
+<p>
+<var>FileNameCaseSensitive</var> is <var>True</var> if case is important
+when using filenames on the current OS. In this case, the OS will treat 
+files with different cased names as different files. Note that this may 
+depend on the filesystem: Unix operating systems that access a DOS or
+Windows partition will have this constant set to true, but when writing to
+the DOS partition, the casing is ignored.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="DriveSeparator"/>
+<link id="DirectorySeparator"/>
+<link id="LineEnding"/>
+<link id="LFNSupport"/>
+<link id="PathSeparator"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="sLineBreak">
+<short>Alias for <link id="LineEnding"/></short>
+<descr>
+<p>
+<var>sLineBreak</var> is an alias for <link id="LineEnding"/> and is
+supplied for Delphi compatibility.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="DriveSeparator"/>
+<link id="DirectorySeparator"/>
+<link id="LineEnding"/>
+<link id="LFNSupport"/>
+<link id="PathSeparator"/>
+<link id="FileNameCaseSensitive"/>
+<link id="DefaultTextLineBreakStyle"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="DefaultTextLineBreakStyle">
+<short>Default line ending style.</short>
+<descr>
+<p>
+<var>DefaultTextLineBreakStyle</var> contains the default OS setting for the
+<link id="TTextLineBreakStyle"/> type. It is initizliaed by the system unit,
+and is used to determine the default line ending when writing to text files.
+</p>
+<p>
+This constant is part of a set of constants that describe the OS
+characteristics. These constants should be used instead of hardcoding 
+OS characteristics.
+</p>
+</descr>
+<seealso>
+<link id="SetTextLineEnding"/>
+<link id="TTextLineBreakStyle"/>
+<link id="DriveSeparator"/>
+<link id="DirectorySeparator"/>
+<link id="LineEnding"/>
+<link id="LFNSupport"/>
+<link id="PathSeparator"/>
+<link id="FileNameCaseSensitive"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="maxExitCode">
+<short>Maximum exit code supported by the operating system.</short>
+<descr>
+<var>maxExitCode</var> is the maximum value for the <link id="Halt"/> call.
+</descr>
+<seealso>
+<link id="Halt"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="UnusedHandle">
+<short>Value indicating an unused file handle (as reported by the OS).</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="StdInputHandle">
+<short>Value of the OS handle for the standard input file.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="StdOutputHandle">
+<short>Value of the OS handle for the standard output file.</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="StdErrorHandle">
+<short>Value of the OS handle for the standard error-output file.</short>
+</element>
+
+
+<!-- variable Visibility: default -->
+<element name="argc" skip="1">
+<short>Number of command-line arguments.</short>
+<descr>
+<var>argc</var> contains the number of command-line arguments passed to
+the program by the OS. It is not available on all systems.
+</descr>
+<seealso>
+<link id="argv"/>
+<link id="envp"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="argv">
+<short>Pointer to the array of command-line arguments</short>
+<descr>
+<var>argp</var> contains a pointer to a <var>nil</var>-terminated 
+array of null-terminated strings, containing the command-line 
+arguments passed to the program by the OS. It is not available 
+on all systems.
+</descr>
+<seealso>
+<link id="argc"/>
+<link id="envp"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="envp">
+<short>Pointer to the array of environment variables</short>
+<descr>
+<var>envp</var> contains a pointer to a <var>nil</var>-terminated
+array of null-terminated strings, containing the environment variables
+passed to the program by the OS. It is not available on all systems.
+</descr>
+<seealso>
+<link id="argc"/>
+<link id="argv"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="SizeInt">
+<short>Signed integer type which fits for sizes</short>
+<seealso>
+<link id="SizeUInt"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="SizeUInt">
+<short>Unsigned Integer type which fits for sizes</short>
+<seealso>
+<link id="SizeInt"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="PtrInt">
+<short>Signed integer type with same size as Pointer.</short>
+<descr>
+<var>PtrInt</var> is an integer type which has always the same size as a
+pointer. When using integers which will be cast to pointers and vice versa,
+use this type, never the regular integer type.
+</descr>
+<seealso>
+<link id="PtrUInt"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="PtrUInt">
+<short>Unsigned integer type with same size as Pointer.</short>
+<descr>
+<var>PtrUInt</var> is an unsigned integer type which has always the same size as a
+pointer. When using integers which will be cast to pointers and vice versa,
+use this type, never the regular Cardinal type.
+</descr>
+<seealso>
+<link id="PtrInt"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="ValSInt">
+<short>Val-Signed integer.</short>
+<descr>
+Integer with teh same size as the return code of the <link id="Val"/>
+function.
+</descr>
+<seealso>
+<link id="Val"/>
+<link id="ValUInt"/>
+</seealso>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="ValUInt">
+<short>Val-unsigned integer</short>
+<descr>
+Integer with teh same size as the return code of the <link id="Val"/>
+function.
+</descr>
+<seealso>
+<link id="Val"/>
+<link id="ValUInt"/>
+</seealso>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PVariant">
+<short>Pointer to <var>Variant</var> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="POleVariant">
+<short>Pointer to <var>OleVariant</var> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PWideChar">
+<short>Pointer to <link id="WChar"/>.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PPWideChar">
+<short>Pointer to link id="PWideChar"> type.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="UCS2Char">
+<short>UCS2 unicode character.</short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="PUCS2Char">
+<short>Pointer to <link id="UCS2Char"/> character.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="PText">
+<short>Pointer to text file.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="ErrOutput">
+<short>Alias for <link id="StdErr"/></short>
+<descr>
+<var>ErrOutput</var> is provided for Delphi compatibility.
+</descr>
+<seealso>
+<link id="StdErr"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_lo_word">
+<short>FPC compiler internal procedure index: lo (word)</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_hi_word">
+<short>FPC compiler internal procedure index: hi (word)</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_lo_long">
+<short>FPC compiler internal procedure index: lo (long)</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_hi_long">
+<short>FPC compiler internal procedure index: hi (long)</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_ord_x">
+<short>FPC compiler internal procedure index: ord </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_length_string">
+<short>FPC compiler internal procedure index: length</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_chr_byte">
+<short>FPC compiler internal procedure index: chr</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_write_x">
+<short>FPC compiler internal procedure index: write</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_writeln_x">
+<short>FPC compiler internal procedure index: writeln</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_read_x">
+<short>FPC compiler internal procedure index: read</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_readln_x">
+<short>FPC compiler internal procedure index: readln</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_concat_x">
+<short>FPC compiler internal procedure index: concat </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_assigned_x">
+<short>FPC compiler internal procedure index: assigned </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_str_x_string">
+<short>FPC compiler internal procedure index: str </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_ofs_x">
+<short>FPC compiler internal procedure index: ofs </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_sizeof_x">
+<short>FPC compiler internal procedure index: sizeof </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_typeof_x">
+<short>FPC compiler internal procedure index: typeof </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_val_x">
+<short>FPC compiler internal procedure index: val </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_reset_x">
+<short>FPC compiler internal procedure index: reset </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_rewrite_x">
+<short>FPC compiler internal procedure index: rewrite </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_low_x">
+<short>FPC compiler internal procedure index: low </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_high_x">
+<short>FPC compiler internal procedure index: high </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_seg_x">
+<short>FPC compiler internal procedure index: seg </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_pred_x">
+<short>FPC compiler internal procedure index: pred </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_succ_x">
+<short>FPC compiler internal procedure index: succ </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_reset_typedfile">
+<short>FPC compiler internal procedure index: reset </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_rewrite_typedfile">
+<short>FPC compiler internal procedure index: rewrite </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_settextbuf_file_x">
+<short>FPC compiler internal procedure index: settextbuf </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_inc_x">
+<short>FPC compiler internal procedure index: inc </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_dec_x">
+<short>FPC compiler internal procedure index: dec </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_include_x_y">
+<short>FPC compiler internal procedure index:  include </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_exclude_x_y">
+<short>FPC compiler internal procedure index: exclude </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_break">
+<short>FPC compiler internal procedure index: break </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_continue">
+<short>FPC compiler internal procedure index: continue </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_assert_x_y">
+<short>FPC compiler internal procedure index: assert </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_addr_x">
+<short>FPC compiler internal procedure index: addr </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_typeinfo_x">
+<short>FPC compiler internal procedure index: typeinfo </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_setlength_x">
+<short>FPC compiler internal procedure index: setlength </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_finalize_x">
+<short>FPC compiler internal procedure index: finalize </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_new_x">
+<short>FPC compiler internal procedure index: new </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_dispose_x">
+<short>FPC compiler internal procedure index: dispose  </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_exit">
+<short>FPC compiler internal procedure index: exit </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_copy_x">
+<short>FPC compiler internal procedure index: copy  </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_initialize_x">
+<short>FPC compiler internal procedure index: initialize </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_leave">
+<short>FPC compiler internal procedure index: leave </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_cycle">
+<short>FPC compiler internal procedure index: cycle </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_trunc">
+<short>FPC compiler internal procedure index: trunc </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_round">
+<short>FPC compiler internal procedure index: round </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_frac">
+<short>FPC compiler internal procedure index: frac </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_abs">
+<short>FPC compiler internal procedure index: abs </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_int">
+<short>FPC compiler internal procedure index: int </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_sqr">
+<short>FPC compiler internal procedure index: sqr </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_odd">
+<short>FPC compiler internal procedure index: sqr </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_ptr">
+<short>FPC compiler internal procedure index: sqr </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_swap_word">
+<short>FPC compiler internal procedure index: swap (word) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_swap_long">
+<short>FPC compiler internal procedure index: swap (long) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_pi">
+<short>FPC compiler internal procedure index: pi </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_sqrt">
+<short>FPC compiler internal procedure index: sqrt </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_arctan">
+<short>FPC compiler internal procedure index: arctan </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_cos">
+<short>FPC compiler internal procedure index: cos </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_exp">
+<short>FPC compiler internal procedure index: exp </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_ln">
+<short>FPC compiler internal procedure index: in </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_sin">
+<short>FPC compiler internal procedure index: sin </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_lo_qword">
+<short>FPC compiler internal procedure index: lo (qword)  </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_hi_qword">
+<short>FPC compiler internal procedure index: hi (qword) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_cos_real">
+<short>FPC compiler internal procedure index: cos (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_pi">
+<short>FPC compiler internal procedure index: pi </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_abs_real">
+<short>FPC compiler internal procedure index: abs (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_sqr_real">
+<short>FPC compiler internal procedure index: sqr (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_sqrt_real">
+<short>FPC compiler internal procedure index: sqrt (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_arctan_real">
+<short>FPC compiler internal procedure index: arctan (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_ln_real">
+<short>FPC compiler internal procedure index: ln (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_sin_real">
+<short>FPC compiler internal procedure index: sin (real) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_const_swap_qword">
+<short>FPC compiler internal procedure index: swap (qword) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_prefetch_var">
+<short>FPC compiler internal procedure index: prefetch  </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_mmx_pcmpeqb">
+<short>FPC compiler internal procedure index: MMX </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_mmx_pcmpeqw">
+<short>FPC compiler internal procedure index: MMX </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_mmx_pcmpeqd">
+<short>FPC compiler internal procedure index: MMX </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_mmx_pcmpgtb">
+<short>FPC compiler internal procedure index: MMX </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_mmx_pcmpgtw">
+<short>FPC compiler internal procedure index: MMX </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="fpc_in_mmx_pcmpgtd">
+<short>FPC compiler internal procedure index: MMX </short>
+</element>
+
+<!-- function Visibility: default -->
+<element name="Align">
+<short>Return aligned version of an address</short>
+<descr>
+<var>Align</var> returns <var>Address</var>, aligned to <var>Alignment</var>
+bytes.
+</descr>
+<errors>
+None.
+</errors>
+</element>
+
+<element name="ArrayStringToPPchar">
+<short>Concert an array of string to an array of null-terminated strings</short>
+<descr>
+<p>
+<var>ArrayStringToPPchar</var> creates an array of null-terminated strings
+that point to strings which are the same as the strings in the array
+<var>S</var>. The function returns a pointer to this array. The array and
+the strings it contains must be disposed of after being used, because it 
+they are allocated on the heap.
+</p>
+<p>
+The <var>ReserveEntries</var> parameter tells <var>ArrayStringToPPchar</var>
+to allocate room at the end of the array for another <var>ReserveEntries</var>
+entries.
+</p>
+</descr>
+<errors>
+If not enough memory is available, an error may occur.
+</errors>
+<seealso>
+<link id="StringToPPChar"/>
+</seealso>
+</element>
+
+<element name="StringToPPChar">
+<short>Split string in list of null-terminated strings</short>
+<descr>
+<p>
+<var>StringToPPChar</var> splits the string <var>S</var> in words, replacing any
+whitespace with zero characters. It returns a pointer to an array of pchars
+that point to the first letters of the words in <var>S</var>. This array is terminated
+by a <var>Nil</var> pointer.
+</p>
+<p>
+The function does <em> not</em> add a zero character to the end of the string
+unless it ends on whitespace.
+</p>
+<p>
+The function reserves memory on the heap to store the array of <var>PChar</var>;
+The caller is responsible for freeing this memory. 
+</p>
+<p>
+This function is only available on certain platforms.
+</p>
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="ArrayStringToPPchar"/>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varempty">
+<short>Variant type: <var>Empty</var> variant</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varnull">
+<short>Variant type: <link id="Null"/> variant </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varsmallint">
+<short>Variant type: smallint (8 bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varinteger">
+<short>Variant type: Integer (32-bit)</short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varsingle">
+<short>Variant type: Single float </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vardouble">
+<short>Variant type: Double float </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varcurrency">
+<short>Variant type: Currency </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vardate">
+<short>Variant type: Date </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varolestr">
+<short>Variant type: OLE string (widestring) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vardispatch">
+<short>Variant type: dispatch interface </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varerror">
+<short>Variant type: Error type </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varboolean">
+<short>Variant type: Boolean type </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varvariant">
+<short>Variant type: Variant (arrays only) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varunknown">
+<short>Variant type: Unknown </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vardecimal">
+<short>Variant type: Decimal (BCD) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varshortint">
+<short>Variant type: Shortint (16 bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varbyte">
+<short>Variant type: Byte (8 bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varword">
+<short>Variant type: Word (16 bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varlongword">
+<short>Variant type: Word (32 bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varint64">
+<short>Variant type: Integer (64-Bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varqword">
+<short>Variant type: Word (64-bit) </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varstrarg">
+<short>Variant type: String </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varstring">
+<short>Variant type: String </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varany">
+<short>Variant type: Any </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vartypemask">
+<short>Variant type: Mask to extract type </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="vararray">
+<short>Variant type: variant Array </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varbyref">
+<short>Variant type: By reference </short>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="varword64">
+<short>Variant type: Word (64-bit) </short>
+</element>
+
+<!-- alias type Visibility: default -->
+<element name="tvartype">
+<short>Type with size of variant type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pvararrayboundarray">
+<short>Pointer to <link id="tvararrayboundarray"/> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pvararraycoorarray">
+<short>Pointer to <link id="tvararraycoorarray"/> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pvararraybound">
+<short>Pointer to <link id="tvararraybound"/> type.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pvararray">
+<short>Pointer to <link id="TVarArray"/> type.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tvararraybound">
+<short>Type describing variant array bounds.</short>
+<descr>
+<var>tvararraybound</var> is used to describe one dimension in a variant
+array.
+</descr>
+<seealso>
+<link id="tvararray"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararraybound.elementcount">
+<short>Number of elements in this array dimension.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararraybound.lowbound">
+<short>Lower bound of this array dimension (index of first element).</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tvararray">
+<short>Type describing variant array</short>
+<descr>
+<var>tvararray</var> is a record describing a variant array. It contains
+some general data, followed by a number of <link id="TVarArrayBound"/>
+records equal to the number of dimensions in the array (<var>dimcoun</var>).
+</descr>
+<seealso>
+<link id="TVarArrayBound"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararray.dimcount">
+<short>Number of dimensions</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararray.flags">
+<short>Array flags.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararray.elementsize">
+<short>Size of one element in the array.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararray.lockcount">
+<short>Lock (reference) count of the array.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararray.data">
+<short>Pointer to the array data.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvararray.bounds">
+<short>Array describing the bounds in the array.</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="tvararrayboundarray">
+<short>array of <link id="tvararraybound"/> records.</short>
+</element>
+
+<!-- array type Visibility: default -->
+<element name="tvararraycoorarray">
+<short>Array of variant array coordinates</short>
+</element>
+
+<!-- enumeration type Visibility: default -->
+<element name="tvarop">
+<short>Variant operation.</short>
+<descr>
+<var>tvarop</var> describes a variant operation. It is mainly used for the
+variant manager to implement the various conversions and mathematical
+operations on a variant.
+</descr>
+<seealso>
+<link id="TVariantManager"/>
+</seealso>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opadd">
+<short>Variant operation: Addition.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opsubtract">
+<short>Variant operation: Substraction</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opmultiply">
+<short>Variant operation: multiplication</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opdivide">
+<short>Variant operation: division</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opintdivide">
+<short>Variant operation: integer divide</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opmodulus">
+<short>Variant operation: Modulus</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opshiftleft">
+<short>Variant operation: Shift left</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opshiftright">
+<short>Variant operation: Shift right</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opand">
+<short>Variant operation: Binary AND operation</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opor">
+<short>Variant operation: Binary OR operation</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opxor">
+<short>Variant operation: binary XOR operation.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcompare">
+<short>Variant operation: Compare</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opnegate">
+<short>Variant operation: negation.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opnot">
+<short>Variant operation: Binary NOT operation.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcmpeq">
+<short>Variant operation: Compare equal.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcmpne">
+<short>Variant operation: Compare not equal</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcmplt">
+<short>Variant operation: Compare less than.</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcmple">
+<short>Variant operation: Compare less than or equal to</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcmpgt">
+<short>Variant operation: Compare larger than</short>
+</element>
+
+<!-- enumeration value Visibility: default -->
+<element name="tvarop.opcmpge">
+<short>Variant operation: Compare larger than or equal</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tvardata">
+<short>Variant record.</short>
+<descr>
+<var>TVarData</var> is a record representation of a variant. It contains the
+internal structure of a variant and is handled by the various variant
+handling routines.
+</descr>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvardata.vtype">
+<short>Type of variant.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pvardata">
+<short>Pointer to <link id="TVarData"/> record.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pcalldesc">
+<short>Pointer to <link id="TCallDesc"/> record.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tcalldesc">
+<short>COM/OLE dispatch call argument description.</short>
+<descr>
+<var>tcalldesc</var> is used to encode the arguments to a dispatch call to 
+an OLE dual interface. It is used on windows only. It describes the 
+arguments to a call.
+</descr>
+</element>
+
+
+<!-- variable Visibility: default -->
+<element name="tcalldesc.calltype">
+<short>Call type.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tcalldesc.argcount">
+<short>Number of arguments to call.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tcalldesc.namedargcount">
+<short>Number of named arguments in the call.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tcalldesc.argtypes">
+<short>Types of arguments.</short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="tdispdesc">
+<short>COM/OLE dispatch call description.</short>
+<descr>
+<var>tcalldesc</var> is used to encode a dispatch call to an OLE dispatch 
+interface. It is used on windows only. It describes the dispath call call.
+</descr>
+<seealso>
+<link id="tcalldesc"/>
+</seealso>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="pdispdesc">
+<short>Pointer to <link id="tdispdesc"/> record</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tdispdesc.dispid">
+<short>Dispatch ID</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tdispdesc.restype">
+<short>Result type.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tdispdesc.calldesc">
+<short>Arguments description.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="tvariantmanager">
+<short>Record describing the variant manager.</short>
+<descr>
+<var>TVariantManager</var> describes the variant manager as expected by the
+<link id="SetVariantManager"/> call.
+</descr>
+<seealso>
+<link id="SetVariantManager"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartoint">
+<short>Called to convert a variant to an integer value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartoint64">
+<short>Called to convert a variant to an int64 value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartoword64">
+<short>Called to convert a variant to a word64 value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartobool">
+<short>Called to convert a variant to a boolean value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartoreal">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartocurr">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartopstr">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartolstr">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartowstr">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartointf">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartodisp">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vartodynarray">
+<short>Called to convert a variant to a  value</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfrombool">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromint">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromint64">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromword64">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromreal">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfrompstr">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromlstr">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromwstr">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromintf">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromdisp">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varfromdynarray">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.olevarfrompstr">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.olevarfromlstr">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.olevarfromvar">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.olevarfromint">
+<short>Called to convert a  value to a variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varop">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.cmpop">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varneg">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varnot">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varinit">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varclear">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varaddref">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varcopy">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varcast">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.varcastole">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.dispinvoke">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vararrayredim">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vararrayget">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.vararrayput">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.writevariant">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="tvariantmanager.write0Variant">
+<short>Called to perform a variant operation: </short>
+</element>
+
+<!-- pointer type Visibility: default -->
+<element name="pvariantmanager">
+<short>Pointer to <link id="TVariantManager"/> record.</short>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="GetVariantManager">
+<short>Return the current variant manager.</short>
+<descr>
+<var>GetVariantManager</var> returns the current variant manager in
+<var>varmgr</var>.
+</descr>
+<seealso>
+<link id="IsVariantManagerSet"/>
+<link id="SetVariantManager"/>
+</seealso>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SetVariantManager">
+<short>Set the current variant manager.</short>
+<descr>
+<var>SetVariantManager</var> sets the variant manager to <var>varmgr</var>.
+</descr>
+<seealso>
+<link id="IsVariantManagerSet"/>
+<link id="GetVariantManager"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="IsVariantManagerSet">
+<short>Determine if variant manager is currently set.</short>
+<descr>
+<p>
+<var>IsVariantManagerSet</var> determines whether the variant manager was
+set to a correct variant manager. It returns <var>True</var> if it is, 
+or <var>False</var> if it is not.
+</p>
+<p>
+The routine checks all variant operation handlers, they should all be set correctly.
+</p>
+</descr>
+<seealso>
+<link id="SetVariantManager"/>
+<link id="GetVariantManager"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="VarDispProc">
+<short>Callback to perform dispatch interface procedure call by name.</short>
+<descr>
+<p>
+<var>VarDispProc</var> is called by the compiler if it needs to perform an
+interface call from a variant. For instance, the following call:
+</p>
+<code>
+Var
+  V : OleVariant;
+begin
+  V.OpenDocument('c:\temp\mydoc.doc');
+end;  
+</code>
+<p>
+is encoded by the compiler and passed to <var>VarDispProc</var>.
+</p>
+<p>
+This pointer must be set by a routine that calls the OS COM handling
+routines.
+</p>
+</descr>
+<seealso>
+<link id="DispCallByIDProc"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="DispCallByIDProc">
+<short>Callback to perform dispatch interface procedure call by ID.</short>
+<descr>
+<p>
+<var>VarDispProc</var> is called by the compiler if it needs to perform an
+interface call from a variant which contains a dispatch interface. 
+For instance, the following call:
+</p>
+<code>
+Var
+  V : OleVariant;
+begin
+  (V as IWord).OpenDocument('c:\temp\mydoc.doc');
+end;
+</code>    
+<p>
+where <var>IWord</var> is a dispatch interface is encoded by the compiler and 
+passed to <var>DispCallByIDProc</var>.
+</p>
+<p>
+This pointer must be set by a routine that calls the OS COM handling
+routines.
+</p>
+</descr>
+<seealso>
+<link id="VarDispProc"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="Null">
+<short>Null variant</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="Unassigned">
+<short>Unassigned variant.</short>
+</element>
+
+<!-- record type Visibility: default -->
+<element name="THeapStatus">
+<short>Record describing current heap status.</short>
+<descr>
+<var>THeapStatus</var> is the record describing the current heap status. It
+is returned by the <link id="GetHeapStatus"/> call.
+</descr>
+<seealso>
+<link id="GetHeapStatus"/>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="THeapStatus.MaxHeapSize">
+<short>Biggest heap size used.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="THeapStatus.MaxHeapUsed">
+<short>Biggest used part of heap memory.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="THeapStatus.CurrHeapSize">
+<short>Current heap size. </short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="THeapStatus.CurrHeapUsed">
+<short>Current size of used heap memory.</short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="THeapStatus.CurrHeapFree">
+<short>Current size of free heap memory.</short>
+</element>
+
+<!-- procedure Visibility: default -->
+<element name="SysGetHeapStatus">
+<short>System implementation of <link id="GetHeapStatus"/></short>
+<descr>
+<var>SysGetHeapStatus</var> is the system implementation of the <link
+id="GetHeapStatus"/> call.
+</descr>
+<seealso>
+<link id="GetHeapStatus"/>
+</seealso>
+</element>
+
+<!-- function Visibility: default -->
+<element name="Heapsize">
+<short>Current heap size</short>
+<descr>
+<var>HeapSize</var> returns the current heap size. The heap grows
+dynamically (as allowed by the OS) and the <var>HeapSize</var> reflects the
+current state of the heap.
+</descr>
+<seealso>
+<link id="GetHeapStatus"/>
+</seealso>
+</element>
+
+
+</module>
+</package>
+</fpdoc-descriptions>

+ 6 - 4
docs/sysutils.xml

@@ -2007,11 +2007,13 @@ None.
 </element>
 </element>
 
 
 <element name="AnsiExtractQuotedStr">
 <element name="AnsiExtractQuotedStr">
-<short>Removes quotes from a string.</short>
+<short>Removes the first quoted string from a string.</short>
 <descr>
 <descr>
-<var>AnsiExtractQuotedStr</var> Returns <var>Src</var> as a string, with <var>Quote</var>
-characters removed from the beginning and end of the string, and double
-<var>Quote</var> characters replaced by a single <var>Quote</var> characters.
+<var>AnsiExtractQuotedStr</var> returns the first quoted string in
+<var>Src</var>, and deletes the result from <var>Src</var>. The resulting
+string has with <var>Quote</var> characters removed from the beginning and 
+end of the string (if they are present), and double <var>Quote</var> 
+characters replaced by a single <var>Quote</var> characters. 
 As such, it revereses the action of <link id="AnsiQuotedStr"/>.
 As such, it revereses the action of <link id="AnsiQuotedStr"/>.
 </descr>
 </descr>
 <errors>
 <errors>

+ 3 - 416
docs/unix.xml

@@ -644,38 +644,6 @@
 <short>File system type (<link id="StatFS"/>): XIA</short>
 <short>File system type (<link id="StatFS"/>): XIA</short>
 </element>
 </element>
 
 
-<element name="MAP_PRIVATE">
-<short><link id="FpMMap"/> map type: Changes are private</short>
-</element>
-<element name="MAP_ANONYMOUS">
-<short><link id="FpMMap"/> map type: Don't use a file</short>
-</element>
-<element name="MAP_GROWSDOWN">
-<short><link id="FpMMap"/> option: Memory grows downward (like a stack)</short>
-</element>
-<element name="MAP_DENYWRITE">
-<short><link id="FpMMap"/> option: Ignored.</short>
-</element>
-<element name="MAP_EXECUTABLE">
-<short><link id="FpMMap"/> option: Ignored.</short>
-</element>
-<element name="MAP_LOCKED">
-<short><link id="FpMMap"/> option: lock the pages in memory.</short>
-</element>
-<element name="MAP_NORESERVE">
-<short><link id="FpMMap"/> option: Do not reserve swap pages for this memory.</short>
-</element>
-<element name="MAP_SHARED">
-<short><link id="FpMMap"/> map type: Share changes</short>
-</element>
-<element name="MAP_TYPE">
-<short><link id="FpMMap"/> map type: Bitmask for type of mapping</short>
-</element>
-<element name="MAP_FIXED">
-<short><link id="FpMMap"/> map type: Interpret addr exactly</short>
-</element>
-
-
 <!-- constant Visibility: default -->
 <!-- constant Visibility: default -->
 <element name="IOCtl_TCGETS">
 <element name="IOCtl_TCGETS">
 <short>IOCTL call number: get Terminal Control settings</short>
 <short>IOCTL call number: get Terminal Control settings</short>
@@ -1095,18 +1063,6 @@
 <short>Timezone name.</short>
 <short>Timezone name.</short>
 </element>
 </element>
 
 
-<element name="PROT_READ">
-<short><link id="FpMMap"/> memory access: page can be read</short>
-</element>
-<element name="PROT_WRITE">
-<short><link id="FpMMap"/> memory access: page can be written</short>
-</element>
-<element name="PROT_EXEC">
-<short><link id="FpMMap"/> memory access: page can be executed</short>
-</element>
-<element name="PROT_NONE">
-<short><link id="FpMMap"/> memory access: page can not be accessed</short>
-</element>
 
 
 
 
 <!-- enumeration type Visibility: default -->
 <!-- enumeration type Visibility: default -->
@@ -1211,9 +1167,6 @@ it is adjusted to the local time zone, but not to DST.
 <errors>
 <errors>
 no errors
 no errors
 </errors>
 </errors>
-<seealso>
-<link id="GetTime"/>
-</seealso>
 <example file="unixex/ex1"/>
 <example file="unixex/ex1"/>
 </element>
 </element>
 
 
@@ -1240,7 +1193,6 @@ None
 <seealso>
 <seealso>
 <link id="GetEpochTime"/>
 <link id="GetEpochTime"/>
 <link id="GetDate"/>
 <link id="GetDate"/>
-<link id="GetDateTime"/>
 </seealso>
 </seealso>
 <example file="unixex/ex5"/>
 <example file="unixex/ex5"/>
 </element>
 </element>
@@ -1263,8 +1215,6 @@ None
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="GetEpochTime"/>
 <link id="GetEpochTime"/>
-<link id="GetTime"/>
-<link id="GetDateTime"/>
 <link id="SetTime"/>
 <link id="SetTime"/>
 </seealso>
 </seealso>
 <example file="unixex/ex6"/>
 <example file="unixex/ex6"/>
@@ -1283,7 +1233,6 @@ None
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="GetEpochTime"/>
 <link id="GetEpochTime"/>
-<link id="GetTime"/>
 <link id="GetDate"/> 
 <link id="GetDate"/> 
 <link id="SetDate"/>
 <link id="SetDate"/>
 <link id="SetTime"/>
 <link id="SetTime"/>
@@ -1309,11 +1258,9 @@ You must be root to execute this call.
 Extended error information can be retrieved with <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
 Extended error information can be retrieved with <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
 </errors>
 </errors>
 <seealso>
 <seealso>
-<link id="GetTime"/>
 <link id="SetDate"/>
 <link id="SetDate"/>
 <link id="GetDate"/>
 <link id="GetDate"/>
 <link id="SetDateTime"/>
 <link id="SetDateTime"/>
-<link id="GetDateTime"/>
 </seealso>
 </seealso>
 </element>
 </element>
 
 
@@ -1337,9 +1284,7 @@ Extended error information can be retrieved with <link id="#rtl.baseunix.fpGetEr
 <seealso>
 <seealso>
 <link id="GetDate"/>
 <link id="GetDate"/>
 <link id="SetTime"/>
 <link id="SetTime"/>
-<link id="GetTime"/>
 <link id="SetDateTime"/>
 <link id="SetDateTime"/>
-<link id="GetDateTime"/>
 </seealso>
 </seealso>
 </element>
 </element>
 
 
@@ -1365,8 +1310,6 @@ Extended error information can be retrieved with <link id="#rtl.baseunix.fpGetEr
 <link id="SetDate"/>
 <link id="SetDate"/>
 <link id="SetTime"/>
 <link id="SetTime"/>
 <link id="GetDate"/>
 <link id="GetDate"/>
-<link id="GetTime"/>
-<link id="GetDateTime"/>
 </seealso>
 </seealso>
 </element>
 </element>
 
 
@@ -2092,7 +2035,7 @@ Extended error information is returned by the <link id="#rtl.baseunix.fpGetErrno
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="StatFS"/>
 <link id="StatFS"/>
-<link id="FpLStat"/>
+<link id="#rtl.baseunix.FpLStat"/>
 </seealso>
 </seealso>
 <example file="unixex/ex91"/>
 <example file="unixex/ex91"/>
 </element>
 </element>
@@ -2126,7 +2069,7 @@ Extended error information is returned by the <link id="#rtl.baseunix.fpGetErrno
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="#rtl.baseunix.FpStat"/>
 <link id="#rtl.baseunix.FpStat"/>
-<link id="FpLStat"/>
+<link id="#rtl.baseunix.FpLStat"/>
 </seealso>
 </seealso>
 <example file="unixex/ex91"/>
 <example file="unixex/ex91"/>
 </element>
 </element>
@@ -2390,7 +2333,6 @@ is to search the current directory first.
 An empty string if no such file was found.
 An empty string if no such file was found.
 </errors>
 </errors>
 <seealso>
 <seealso>
-<link id="FExpand"/>
 <link id="#rtl.unixutil.FNMatch"/>
 <link id="#rtl.unixutil.FNMatch"/>
 </seealso>
 </seealso>
 <example file="unixex/ex46"/>
 <example file="unixex/ex46"/>
@@ -2458,110 +2400,6 @@ None.
 <example file="unixex/ex65"/>
 <example file="unixex/ex65"/>
 </element>
 </element>
 
 
-<!-- function Visibility: default -->
-<element name="FpMMap">
-<short>Create memory map of a file</short>
-<descr>
-<p>
-<var>FpMMap</var> maps or unmaps files or devices into memory. The different
-arguments determine what and how the file is mapped:
-</p>
-<dl>
-<dt>adr</dt>
-<dd> Address where to mmap the device. This address is a hint,
-and may not be followed.</dd>
-<dt>len</dt><dd> Size (in bytes) of area to be mapped.</dd>
-<dt>prot</dt>
-<dd>
-<p> Protection of mapped memory. This is a OR-ed combination of the
-following constants:</p>
-<dl>
-<dt>PROT_EXEC</dt><dd> The memory can be executed.</dd>
-<dt>PROT_READ</dt><dd> The memory can be read.</dd>
-<dt>PROT_WRITE</dt><dd> The memory can be written.</dd>
-<dt>PROT_NONE</dt><dd> The memory can not be accessed.</dd>
-</dl>
-</dd>
-<dt>flags</dt><dd><p>Contains some options for the mmap call. It is an OR-ed
-combination of the following constants:</p>
-<dl>
-<dt>MAP_FIXED</dt>
-<dd> Do not map at another address than the given address. If the
-address cannot be used, <var>MMap</var> will fail.</dd>
-<dt>MAP_SHARED</dt>
-<dd> Share this map with other processes that map this object.</dd>
-<dt>MAP_PRIVATE</dt>
-<dd> Create a private map with copy-on-write semantics.</dd>
-<dt>MAP_ANONYMOUS</dt>
-<dd> <var>fd</var> does not have to be a file descriptor.</dd>
-</dl>
-<p>
-One of the options <var>MAP_SHARED</var> and <var>MAP_PRIVATE</var> must be present,
-but not both at the same time.
-</p>
-</dd>
-<dt>fd</dt><dd> File descriptor from which to map.</dd>
-<dt>off</dt><dd> Offset to be used in file descriptor <var>fd</var>.</dd>
-</dl>
-<p>
-The function returns a pointer to the mapped memory, or a -1 in case of en
-error.
-</p>
-</descr>
-<errors>
-<p>
-On error, -1 is returned and extended error information is returned by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link> function. 
-</p>
-<dl>
-<dt>Sys_EBADF</dt>
-<dd> <var>fd</var> is not a valid file descriptor and 
-<var>MAP_ANONYMOUS</var> was not specified.</dd>
-<dt>Sys_EACCES</dt>
-<dd><var>MAP_PRIVATE</var> was specified, but <var>fd</var> is not open for
-reading. Or <var>MAP_SHARED</var> was asked and <var>PROT_WRITE</var> is  set, fd
-is not open for writing</dd>
-<dt>Sys_EINVAL</dt>
-<dd> One of the record fields <var>Start</var>, <var>length</var> or
-<var>offset</var> is invalid.</dd>
-<dt>Sys_ETXTBUSY</dt>
-<dd><var>MAP_DENYWRITE</var> was set but the object specified
-by fd is open for writing.</dd>
-<dt>Sys_EAGAIN</dt>
-<dd><var>fd</var> is locked, or too much memory is locked.</dd>
-<dt>Sys_ENOMEM</dt>
-<dd> Not enough memory for this operation.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="FpMUnMap"/>
-</seealso>
-<example file="unixex/ex66"/>
-</element>
-
-<!-- function Visibility: default -->
-<element name="Fpmunmap">
-<short>Unmap previously mapped memory block</short>
-<descr>
-<p>
-<var>FpMUnMap</var> unmaps the memory block of size <var>Len</var>, pointed to by 
-<var>Adr</var>, which was previously allocated with <link id="FpMMap"/>.
-</p>
-<p>
-The function returns <var>True</var> if successful, <var>False</var> otherwise.
-</p>
-<p>
-For an example, see <link id="FpMMap"/>.
-</p>
-</descr>
-<errors>
-In case of error the function returns a nonzero value, 
-extended error information is returned by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link> function. 
-See <link id="FpMMap"/> for possible error values.
-</errors>
-<seealso>
-<link id="FpMMap"/>
-</seealso>
-</element>
 
 
 <!-- function Visibility: default -->
 <!-- function Visibility: default -->
 <element name="fpgettimeofday">
 <element name="fpgettimeofday">
@@ -2573,263 +2411,12 @@ See <link id="FpMMap"/> for possible error values.
 not taking into account timezones, daylight savings time and so on.
 not taking into account timezones, daylight savings time and so on.
 </p>
 </p>
 <p>
 <p>
-It is simply a wrapper to the kernel system call. To get the local time,
-<link id="GetTime"/>.
+It is simply a wrapper to the kernel system call. 
 </p>
 </p>
 </descr>
 </descr>
 <errors>
 <errors>
 None.
 None.
 </errors>
 </errors>
-<seealso>
-<link id="GetTime"/>
-<link id="GetDateTime"/>
-</seealso>
-</element>
-
-<!-- function Visibility: default -->
-<element name="fpNice">
-<short>Set process priority</short>
-<descr>
-<p>
-<var>Nice</var> adds <var>-N</var> to the priority of the running process. The lower the
-priority numerically, the less the process is favored.
-Only the superuser can specify a negative <var>N</var>, i.e. increase the rate at
-which the process is run.
-</p>
-<p>
-If the function is succesful, zero is returned. On error, a nonzero value is returned. 
-</p>
-</descr>
-<errors>
-<p>
-Extended error information is returned by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link> function. 
-</p>
-<dl>
-<dt>sys_eperm</dt><dd> A non-superuser tried to specify a negative <var>N</var>, i.e.
-do a priority increase.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="FpGetPriority"/>
-<link id="FpSetPriority"/>
-</seealso>
-<example file="unixex/ex15"/>
-</element>
-
-<!-- function Visibility: default -->
-<element name="fpGetPriority">
-<short>Return process priority</short>
-<descr>
-<p>
-GetPriority returns the priority with which a process is running.
-Which process(es) is determined by the <var>Which</var> and <var>Who</var> variables.
-<var>Which</var> can be one of the pre-defined <var>Prio_Process</var>,
-<var>Prio_PGrp</var>, <var>Prio_User</var>, in which case <var>Who</var> is the process ID, Process group ID or
-User ID, respectively.
-</p>
-<p>
-For an example, see <link id="FpNice"/>.
-</p>
-</descr>
-<errors>
-<p>
-Error information is returned solely by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
-function:  a priority can be a positive or negative value.
-</p>
-<dl>
-<dt>sys_esrch</dt>
-<dd> No process found using <var>which</var> and <var>who</var>. </dd>
-<dt>sys_einval</dt>
-<dd> <var>Which</var> was not one of <var>Prio_Process</var>,
-<var>Prio_Grp</var> or <var>Prio_User</var>.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="FpSetPriority"/>
-<link id="FpNice"/>
-</seealso>
-</element>
-
-<!-- function Visibility: default -->
-<element name="fpSetPriority">
-<short>Set process priority</short>
-<descr>
-<p>
-<var>fpSetPriority</var> sets the priority with which a process is running.
-Which process(es) is determined by the <var>Which</var> and <var>Who</var> variables.
-<var>Which</var> can be one of the pre-defined constants:
-</p>
-<dl>
-<dt>Prio_Process</dt><dd><var>Who</var> is interpreted as process ID</dd>
-<dt>Prio_PGrp</dt><dd><var>Who</var> is interpreted as process group ID</dd>
-<dt>Prio_User</dt><dd><var>Who</var> is interpreted as user ID</dd>
-</dl>
-<p>
-<var>Prio</var> is a value in the range -20 to 20.
-</p>
-<p>
-For an example, see <link id="FpNice"/>.
-</p>
-<p>
-The function returns zero on success, -1 on failure
-</p>
-</descr>
-<errors>
-<p>
-Extended error information is returned  by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
-function.
-</p>
-<dl>
-<dt>sys_esrch</dt>
-<dd>No process found using <var>which</var> and <var>who</var>.</dd>
-<dt>sys_einval</dt>
-<dd> <var>Which</var> was not one of <var>Prio_Process</var>,
-<var>Prio_Grp</var> or <var>Prio_User</var>.</dd>
-<dt>sys_eperm</dt>
-<dd>A process was found, but neither its effective or real
-user ID match the effective user ID of the caller.</dd>
-<dt>sys_eacces</dt>
-<dd>A non-superuser tried to a priority increase.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="FpGetPriority"/>
-<link id="FpNice"/>
-</seealso>
-</element>
-
-<!-- function Visibility: default -->
-<element name="fpLstat">
-<short>Return information about symbolic link. Do not follow the link</short>
-<descr>
-<var>FpLstat</var> gets information about the link specified in <var>Path</var>
-(or <var>FileName</var>, and stores it in <var>Info</var>, which points to a
-record of  type <var>TStat</var>. Contrary to <link
-id="#rtl.baseunix.FpFStat">FpFstat</link>, it stores
-information about the link, not about the file the link points to.
-The function returns zero if the call was succesful, a nonzero return value
-indicates failure.
-failed.
-</descr>
-<errors>
-<p>
-Extended error information is returned  by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
-function.
-</p>
-<dl>
-<dt>sys_enoent</dt><dd> <var>Path</var> does not exist.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="#rtl.baseunix.FpFStat"/>
-<link id="StatFS"/>
-</seealso>
-<example file="unixex/ex29"/>
-</element>
-
-
-<!-- function Visibility: default -->
-<element name="fpSymlink">
-<short>Create a symbolic link</short>
-<descr>
-<p>
-<var>SymLink</var> makes <var>NewName</var> point to the file in
-<var>OldName</var>, which doesn't necessarily exist. The two files 
-DO NOT have the same inode number. This is known as a 'soft' link.
-</p>
-<p>The permissions of the link are irrelevant, as they are not used when
-following the link. Ownership of the file is only checked in case of removal
-or renaming of the link.
-</p>
-<p>
-The function returns zero if the call was succesful, a nonzero value if the call
-failed.
-</p>
-</descr>
-<errors>
-<p>
-Extended error information is returned  by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
-function.
-</p>
-<dl>
-<dt>sys_eperm</dt>
-<dd>The filesystem containing oldpath and newpath does not
-support linking files.</dd>
-<dt>sys_eaccess</dt>
-<dd>Write access for the directory containing <var>Newpath</var>
-is disallowed, or one of the directories in <var>OldPath</var> or
-<var>NewPath</var> has no search (=execute) permission.</dd>
-<dt>sys_enoent</dt>
-<dd>A directory entry in <var>OldPath</var> or <var>NewPath</var> does
-not exist or is a symbolic link pointing to a non-existent directory.</dd>
-<dt>sys_enotdir</dt>
-<dd>A directory entry in <var>OldPath</var> or <var>NewPath</var> is
-nor a directory.</dd>
-<dt>sys_enomem</dt><dd>Insufficient kernel memory.</dd>
-<dt>sys_erofs</dt><dd>The files are on a read-only filesystem.</dd>
-<dt>sys_eexist</dt><dd><var>NewPath</var> already exists.</dd>
-<dt>sys_eloop</dt>
-<dd> <var>OldPath</var> or <var>NewPath</var> has a reference to a circular
-symbolic link, i.e. a symbolic link, whose expansion points to itself.
-</dd>
-<dt>sys_enospc</dt>
-<dd>The device containing <var>NewPath</var> has no room for another entry.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="#rtl.baseunix.FpLink"/>
-<link id="#rtl.baseunix.FpUnLink"/>
-<link id="FpReadLink"/>
-</seealso>
-<example file="unixex/ex22"/>
-</element>
-
-<!-- function Visibility: default -->
-<element name="fpReadLink">
-<short>Read destination of symbolic link</short>
-<descr>
-<p>
-<var>FpReadLink</var> returns the file the symbolic link <var>name</var> is pointing
-to. The first form of this function accepts a buffer <var>linkname</var> of
-length <var>maxlen</var> where the filename will be stored. It returns the
-actual number of characters stored in the buffer.
-</p>
-<p>
-The second form of the function returns simply the name of the file.
-</p>
-</descr>
-<errors>
-<p>
-On error, the first form of the function returns -1; the second one returns
-an empty string.
-Extended error information is returned  by the <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
-function.
-</p>
-<dl>
-<dt>SYS_ENOTDIR</dt>
-<dd>A part of the path in <var>Name</var> is not a directory.</dd>
-<dt>SYS_EINVAL</dt>
-<dd>maxlen is not positive, or the  file is not a symbolic link.</dd>
-<dt>SYS_ENAMETOOLONG</dt>
-<dd>A pathname, or a component of a pathname, was too long.</dd>
-<dt>SYS_ENOENT</dt>
-<dd>the link <var>name</var> does not exist.</dd>
-<dt>SYS_EACCES</dt>
-<dd>No permission to search a directory in the path</dd>
-<dt>SYS_ELOOP</dt>
-<dd>Too many symbolic links were encountered in  translating the pathname.</dd>
-<dt>SYS_EIO</dt>
-<dd>An I/O error occurred while reading from the file system.</dd>
-<dt>SYS_EFAULT</dt>
-<dd>The buffer is not part of the the process's memory space.</dd>
-<dt>SYS_ENOMEM</dt>
-<dd>Not enough kernel memory was available.</dd>
-</dl>
-</errors>
-<seealso>
-<link id="FpSymLink"/>
-</seealso>
-<example file="unixex/ex62"/>
 </element>
 </element>
 
 
 <!-- function Visibility: default -->
 <!-- function Visibility: default -->

+ 0 - 11
docs/unixutil.xml

@@ -66,7 +66,6 @@ None.
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="BaseName"/>
 <link id="BaseName"/>
-<link id="#rtl.unix.FExpand"/>
 </seealso>
 </seealso>
 <example file="unutilex/ex47"/>
 <example file="unutilex/ex47"/>
 </element>
 </element>
@@ -99,9 +98,7 @@ None.
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="ArrayStringToPPchar"/>
 <link id="ArrayStringToPPchar"/>
-<link id="#rtl.unix.CreateShellArgV"/>
 <link id="#rtl.baseunix.FpExecve"/>
 <link id="#rtl.baseunix.FpExecve"/>
-<link id="#rtl.unix.Execv"/>
 </seealso>
 </seealso>
 <example file="unutilex/ex70"/>
 <example file="unutilex/ex70"/>
 </element>
 </element>
@@ -149,7 +146,6 @@ None.
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="DirName"/>
 <link id="DirName"/>
-<link id="#rtl.unix.FExpand"/>
 </seealso>
 </seealso>
 <example file="unutilex/ex48"/>
 <example file="unutilex/ex48"/>
 </element>
 </element>
@@ -172,7 +168,6 @@ None.
 </errors>
 </errors>
 <seealso>
 <seealso>
 <link id="#rtl.unix.FSearch"/>
 <link id="#rtl.unix.FSearch"/>
-<link id="#rtl.unix.FExpand"/>
 </seealso>
 </seealso>
 <example file="unutilex/ex69"/>
 <example file="unutilex/ex69"/>
 </element>
 </element>
@@ -222,10 +217,7 @@ Converts the Local time to epoch time (=Number of seconds since 00:00:00 , Janua
 None
 None
 </errors>
 </errors>
 <seealso>
 <seealso>
-<link id="#rtl.unix.GetEpochTime"/>
 <link id="EpochToLocal"/>
 <link id="EpochToLocal"/>
-<link id="#rtl.unix.GetTime"/>
-<link id="#rtl.unix.GetDate"/> 
 </seealso>
 </seealso>
 <example file="unutilex/ex4"/>
 <example file="unutilex/ex4"/>
 </element>
 </element>
@@ -246,10 +238,7 @@ This function takes into account the timzeone settings of your system.
 None
 None
 </errors>
 </errors>
 <seealso>
 <seealso>
-<link id="#rtl.unix.GetEpochTime"/>
 <link id="LocalToEpoch"/>
 <link id="LocalToEpoch"/>
-<link id="#rtl.unix.GetTime"/>
-<link id="#rtl.unix.GetDate"/> 
 </seealso>
 </seealso>
 <example file="unutilex/ex3"/>
 <example file="unutilex/ex3"/>
 </element>
 </element>