Browse Source

+ added portability section
* some cleanup

carl 24 years ago
parent
commit
f761eb36dc
1 changed files with 159 additions and 92 deletions
  1. 159 92
      docs/dos.tex

+ 159 - 92
docs/dos.tex

@@ -21,8 +21,11 @@
 \chapter{The DOS unit.}
 \chapter{The DOS unit.}
 \FPCexampledir{dosex}
 \FPCexampledir{dosex}
 
 
-This chapter describes the \var{DOS} unit for Free pascal, both under
-\dos, \ostwo, \windows and \linux. 
+This chapter describes the \var{DOS} unit for Free pascal. The \var{DOS}
+unit gives access to some operating system calls related to files, the
+file system, date and time. Except for the \palmos target, this unit is
+available to all supported platforms.
+
 The unit was first written for \dos by Florian kl\"ampfl. It was ported to 
 The unit was first written for \dos by Florian kl\"ampfl. It was ported to 
 \linux by Mark May\footnote{Current e-mail address \textsf{[email protected]}}, 
 \linux by Mark May\footnote{Current e-mail address \textsf{[email protected]}}, 
 and enhanced by Micha\"el Van Canneyt. The \amiga version was ported by
 and enhanced by Micha\"el Van Canneyt. The \amiga version was ported by
@@ -42,8 +45,53 @@ interface part of the DOS unit.
 \end{itemize}
 \end{itemize}
 
 
 \section{Types, Variables, Constants}
 \section{Types, Variables, Constants}
+
+
 \subsection {Constants}
 \subsection {Constants}
 The DOS unit implements the following constants:
 The DOS unit implements the following constants:
+
+\subsubsection{File attributes}
+
+The File Attribute constants are used in \seep{FindFirst}, \seep{FindNext} to
+determine what type of special file to search for in addition to normal files. 
+These flags are also used in the \seep{SetFAttr} and \seep{GetFAttr} routines to 
+set and retrieve attributes of files. For their definitions consult 
+\seet{fileattributes}.
+
+\begin{FPCltable}{lll}{Possible file attributes}{fileattributes}
+\hline
+Constant & Description & Value\\ \hline
+\var{readonly} & Read only file & \$01\\
+\var{hidden} & Hidden file & \$02 \\
+\var{sysfile} & System file & \$04\\
+\var{volumeid} & Volume label & \$08\\
+\var{directory} & Directory & \$10\\
+\var{archive} & Archive & \$20\\ 
+\var{anyfile} & Any of the above special files & \$3F\\
+\hline
+\end{FPCltable}
+
+\subsubsection{fmXXXX}
+
+These constants are used in the \var{Mode} field of the \var{TextRec}
+record. Gives information on the filemode of the text I/O. For their
+definitions consult \seet{fmxxxconstants}.
+
+\begin{FPCltable}{lll}{Possible mode constants}{fmxxxconstants}
+\hline
+Constant & Description & Value\\ \hline
+\var{fmclosed} & File is closed & \$D7B0\\
+\var{fminput} & File is read only & \$D7B1 \\
+\var{fmoutput} & File is write only & \$D7B2\\
+\var{fminout} & File is read and write & \$D7B3\\
+\hline
+\end{FPCltable}
+
+\subsubsection{Other}
+
+The following constants are not portable, and should not be used. They
+are present for compatibility only.
+
 \begin{verbatim}
 \begin{verbatim}
   {Bitmasks for CPU Flags}
   {Bitmasks for CPU Flags}
   fcarry =     $0001;
   fcarry =     $0001;
@@ -52,19 +100,8 @@ The DOS unit implements the following constants:
   fzero =      $0040;
   fzero =      $0040;
   fsign =      $0080;
   fsign =      $0080;
   foverflow  = $0800;
   foverflow  = $0800;
-  {Bitmasks for file attribute}
-  readonly =   $01;
-  hidden =     $02;
-  sysfile =    $04;
-  volumeid =   $08;
-  directory =  $10;
-  archive =    $20;
-  anyfile =    $3F;
-  fmclosed =   $D7B0;
-  fminput =    $D7B1;
-  fmoutput =   $D7B2;
-  fminout =    $D7B3;
-\end{verbatim}
+\end{verbatim}  
+  
 \subsection{Types}
 \subsection{Types}
 The following string types are defined for easy handling of
 The following string types are defined for easy handling of
 filenames :
 filenames :
@@ -205,8 +242,8 @@ Routines to handle files on disk.
 \procref{FSplit}{Split filename in parts}
 \procref{FSplit}{Split filename in parts}
 \procref{GetFAttr}{Return file attributes}
 \procref{GetFAttr}{Return file attributes}
 \procref{GetFTime}{Return file time}
 \procref{GetFTime}{Return file time}
-\funcref{GetLongName}{Convert short filename to long filename}
-\funcref{GetShortName}{Convert long filename to short filename}
+\funcref{GetLongName}{Convert short filename to long filename (DOS only)}
+\funcref{GetShortName}{Convert long filename to short filename (DOS only)}
 \procref{SetFAttr}{Set file attributes}
 \procref{SetFAttr}{Set file attributes}
 \procref{SetFTime}{Set file time}
 \procref{SetFTime}{Set file time}
 \end{funclist}
 \end{funclist}
@@ -214,7 +251,7 @@ Routines to handle files on disk.
 \subsection{Directory and disk handling}
 \subsection{Directory and disk handling}
 Routines to handle disk information.
 Routines to handle disk information.
 \begin{funclist}
 \begin{funclist}
-\procref{AddDisk}{Add disk to list of disks}
+\procref{AddDisk}{Add disk to list of disks (UNIX only)}
 \funcref{DiskFree}{Return size of free disk space}
 \funcref{DiskFree}{Return size of free disk space}
 \funcref{DiskSize}{Return total disk size}
 \funcref{DiskSize}{Return total disk size}
 \end{funclist}
 \end{funclist}
@@ -285,16 +322,15 @@ None
 
 
 \begin{function}{DiskFree}
 \begin{function}{DiskFree}
 \Declaration
 \Declaration
-Function DiskFree (Drive: byte) : Int64;
+Function DiskFree (Drive: byte) : int64;
 \Description
 \Description
 
 
 \var{DiskFree} returns the number of free bytes on a disk. The parameter
 \var{DiskFree} returns the number of free bytes on a disk. The parameter
 \var{Drive} indicates which disk should be checked. This parameter is 1 for
 \var{Drive} indicates which disk should be checked. This parameter is 1 for
 floppy \var{a:}, 2 for floppy \var{b:}, etc. A value of 0 returns the free
 floppy \var{a:}, 2 for floppy \var{b:}, etc. A value of 0 returns the free
 space on the current drive. 
 space on the current drive. 
-Typically, the free space is the size of a disk block, multiplied by the
-number of free blocks on the disk.
-\textbf{For \linux only:}\\
+
+\textbf{For \unix only:}\\
 The \var{diskfree} and \var{disksize} functions need a file on the 
 The \var{diskfree} and \var{disksize} functions need a file on the 
 specified drive, since this is required for the \var{statfs} system call.
 specified drive, since this is required for the \var{statfs} system call.
 These filenames are set in the initialization of the dos unit, and have 
 These filenames are set in the initialization of the dos unit, and have 
@@ -310,7 +346,7 @@ There is room for 1-26 drives. You can add a drive with the
 These settings can be coded in \var{dos.pp}, in the initialization part.
 These settings can be coded in \var{dos.pp}, in the initialization part.
 
 
 \Errors
 \Errors
--1 when a failure occurs, or an invalid \var{drivenr} is given.
+-1 when a failure occurs, or an invalid drive number is given.
 \SeeAlso
 \SeeAlso
 \seef{DiskSize}, \seep{AddDisk}
 \seef{DiskSize}, \seep{AddDisk}
 \end{function}
 \end{function}
@@ -319,14 +355,15 @@ These settings can be coded in \var{dos.pp}, in the initialization part.
 
 
 \begin{function}{DiskSize}
 \begin{function}{DiskSize}
 \Declaration
 \Declaration
-Function DiskSize (Drive: byte) : Int64;
+Function DiskSize (Drive: byte) : int64;
 \Description
 \Description
 
 
 \var{DiskSize} returns the total size (in bytes) of a disk. The parameter
 \var{DiskSize} returns the total size (in bytes) of a disk. The parameter
 \var{Drive} indicates which disk should be checked. This parameter is 1 for
 \var{Drive} indicates which disk should be checked. This parameter is 1 for
 floppy \var{a:}, 2 for floppy \var{b:}, etc. A value of 0 returns the size
 floppy \var{a:}, 2 for floppy \var{b:}, etc. A value of 0 returns the size
 of the current drive. 
 of the current drive. 
-\textbf{For \linux only:}\\
+
+\textbf{For \unix only:}\\
 The \var{diskfree} and \var{disksize} functions need a file on the specified drive, since this
 The \var{diskfree} and \var{disksize} functions need a file on the specified drive, since this
 is required for the \var{statfs} system call.
 is required for the \var{statfs} system call.
   These filenames are set in the initialization of the dos unit, and have 
   These filenames are set in the initialization of the dos unit, and have 
@@ -366,9 +403,15 @@ None.
 \Declaration
 \Declaration
 Function DosVersion  : Word;
 Function DosVersion  : Word;
 \Description
 \Description
-\var{DosVersion} returns the \dos version number. On \linux systems, it
-returns the Linux version (The first 2 numbers, e.g Linux version 2.1.76 will
-give you DosVersion 2.1)
+\var{DosVersion} returns the operating system or kernel version. The
+low byte contains the major version number, while the high byte 
+contains the minor version number.
+\Portability
+On systems where versions consists of more then two numbers, 
+only the first two numbers will be returned. For example Linux version 2.1.76 
+will give you DosVersion 2.1. Some operating systems, such as \freebsd, do not
+have system calls to return the kernel version, in that case a value of 0 will
+be returned.
 \Errors
 \Errors
 None.
 None.
 \SeeAlso
 \SeeAlso
@@ -397,8 +440,7 @@ Function EnvStr (Index: integer) : string;\Description
 of environment variables. 
 of environment variables. 
 The index of the first pair is zero.
 The index of the first pair is zero.
 \Errors
 \Errors
-The length is limited to 255 characters. This may cause problems under
-\linux. The \linux unit solves this problem.
+The length is limited to 255 characters. 
 \SeeAlso
 \SeeAlso
 \seef{EnvCount}, \seef{Dos:GetEnv}
 \seef{EnvCount}, \seef{Dos:GetEnv}
 \end{function}
 \end{function}
@@ -428,10 +470,10 @@ Function FExpand (const path: pathstr) : pathstr;
 
 
 \var{FExpand} takes its argument and expands it to a complete filename, i.e.
 \var{FExpand} takes its argument and expands it to a complete filename, i.e.
 a filename starting from the root directory of the current drive, prepended
 a filename starting from the root directory of the current drive, prepended
-with the drive-letter (under \dos).
-The resulting name is converted to uppercase on \dos systems. Under \linux,
-the name is left as it is. (filenames are case sensitive under Unix)
-
+with the drive-letter or volume name (when supported).
+\Portability
+On case sensitive file systems (such as \unix and \linux), the resulting
+name is left as it is, otherwise it is converted to uppercase.
 \Errors
 \Errors
 \seep{FSplit}
 \seep{FSplit}
 \SeeAlso
 \SeeAlso
@@ -442,17 +484,12 @@ the name is left as it is. (filenames are case sensitive under Unix)
 \Declaration
 \Declaration
 Procedure FindClose (Var F: SearchRec);
 Procedure FindClose (Var F: SearchRec);
 \Description
 \Description
-\textbf{\linux, \windows and \ostwo wonly}
 \var{FindClose} frees any resources associated with the search record
 \var{FindClose} frees any resources associated with the search record
 \var{F}.
 \var{F}.
 
 
-Under \linux, \windows and \ostwo the \var{findfirst/findnext} calls have 
-to be mimicked. This call is needed to free any internal resources allocated
-by the \seef{FindFirst} or \seef{FindNext} calls.
+This call is needed to free any internal resources allocated by the 
+\seef{FindFirst} or \seef{FindNext} calls.
 
 
-E.g. on \linux, an internal table of file descriptors is kept. 
-When using different \var{searchrecs} at the same time, 
-the system may run out of file descriptors for directories.
 
 
 The \linux implementation of the \dos unit therefore keeps a table of open
 The \linux implementation of the \dos unit therefore keeps a table of open
 directories, and when the table is full, closes one of the directories, and
 directories, and when the table is full, closes one of the directories, and
@@ -464,6 +501,7 @@ this to the \dos unit by issuing a \var{FindClose} call. The directory
 which is kept open for this \var{searchrec} is then closed, and the table slot
 which is kept open for this \var{searchrec} is then closed, and the table slot
 freed.
 freed.
 
 
+\Portability
 It is recommended to use the \linux call \var{Glob} when looking for files 
 It is recommended to use the \linux call \var{Glob} when looking for files 
 on \linux.
 on \linux.
 
 
@@ -478,9 +516,11 @@ None.
 Procedure FindFirst (const Path: pathstr; Attr: word; var F: SearchRec);
 Procedure FindFirst (const Path: pathstr; Attr: word; var F: SearchRec);
 \Description
 \Description
 
 
-\var{FindFirst} searches the file specified in \var{Path}, checks the
-atrributes specified in \var{Attr}. It returns a \var{SearchRec} record for
-further searching in \var{F}.
+\var{FindFirst} searches the file specified in \var{Path}. Normal files,
+as well as all special files which have the attributes specified in
+\var{Attr} will be returned.
+
+It returns a \var{SearchRec} record for further searching in \var{F}.
 \var{Path} can contain the wildcard characters \var{?} (matches any single
 \var{Path} can contain the wildcard characters \var{?} (matches any single
 character) and \var{*} (matches 0 ore more arbitrary characters). In this
 character) and \var{*} (matches 0 ore more arbitrary characters). In this
 case \var{FindFirst} will return the first file which matches the specified
 case \var{FindFirst} will return the first file which matches the specified
@@ -488,15 +528,12 @@ criteria.
 If \var{DosError} is different from zero, no file(s) matching the criteria 
 If \var{DosError} is different from zero, no file(s) matching the criteria 
 was(were) found.
 was(were) found.
 
 
+\Portability
 On \ostwo, you cannot issue two different \var{FindFirst} calls. That is,
 On \ostwo, you cannot issue two different \var{FindFirst} calls. That is,
 you must close any previous search operation with \seep{FindClose} before
 you must close any previous search operation with \seep{FindClose} before
 starting a new one. Failure to do so will end in a Run-Time Error 6 
 starting a new one. Failure to do so will end in a Run-Time Error 6 
 (Invalid file handle)
 (Invalid file handle)
 
 
-Also, on \ostwo, the boolean variable \var{FileNameCaseSensitive} indicates
-whether searches are conducted case-sensitive or not. By default, searches
-are not case sensitive. If the varieble is set to \var{True}, searches on
-\ostwo are case sensistive.
 \Errors
 \Errors
 Errors are reported in DosError.
 Errors are reported in DosError.
 \SeeAlso
 \SeeAlso
@@ -528,10 +565,11 @@ Function FSearch (Path: pathstr; DirList: string) : pathstr;
 \Description
 \Description
 \var{FSearch} searches the file \var{Path} in all directories listed in
 \var{FSearch} searches the file \var{Path} in all directories listed in
 \var{DirList}. The full name of the found file is returned.
 \var{DirList}. The full name of the found file is returned.
-\var{DirList} must be a list of directories, separated by semi-colons (or
-colons under \linux).
+\var{DirList} must be a list of directories, separated by semi-colons.
 When no file is found, an empty string is returned.
 When no file is found, an empty string is returned.
-
+\Portability
+On \unix systems, \var{DirList} can also be separated by colons, as is
+customary on those environments.
 \Errors
 \Errors
 None.
 None.
 \SeeAlso
 \SeeAlso
@@ -566,13 +604,15 @@ None.
 Procedure GetCBreak (var breakvalue: boolean);
 Procedure GetCBreak (var breakvalue: boolean);
 \Description
 \Description
 
 
-\var{GetCBreak} gets the status of CTRL-Break checking under \dos.
+\var{GetCBreak} gets the status of CTRL-Break checking under \dos and \amiga.
 When \var{BreakValue} is \var{false}, then \dos only checks for the 
 When \var{BreakValue} is \var{false}, then \dos only checks for the 
 CTRL-Break key-press when I/O is performed. When it is set to \var{True},
 CTRL-Break key-press when I/O is performed. When it is set to \var{True},
 then a check is done at every system call.
 then a check is done at every system call.
-\Errors
-Under Linux, this exists but is 
-not implemented, i.e. the call does nothing.
+\Portability
+Under non-\dos and non-\amiga operating systems, \var{BreakValue} always returns 
+\var{True}.
+\Errors 
+None
 \SeeAlso
 \SeeAlso
 \seep{SetCBreak}
 \seep{SetCBreak}
 \end{procedure}
 \end{procedure}
@@ -598,9 +638,11 @@ Function GetEnv (EnvVar: String) : String;
 \Description
 \Description
 
 
 \var{Getenv} returns the value of the environment variable \var{EnvVar}.
 \var{Getenv} returns the value of the environment variable \var{EnvVar}.
-Under \linux, case is important when looking for \var{EnvVar}.
 When there is no environment variable \var{EnvVar} defined, an empty
 When there is no environment variable \var{EnvVar} defined, an empty
 string is returned.
 string is returned.
+\Portability
+Under some operating systems (such as \unix), case is important when looking
+for \var{EnvVar}.
 \Errors
 \Errors
 None.
 None.
 \SeeAlso
 \SeeAlso
@@ -619,12 +661,12 @@ Procedure GetFAttr (var F; var Attr: word);
 have been assigned, but not opened. The attributes can be examined with the
 have been assigned, but not opened. The attributes can be examined with the
 following constants :
 following constants :
 \begin{itemize}
 \begin{itemize}
-\item \var{ReadOnly  = 01h}
-\item \var{Hidden    = 02h}
-\item \var{SysFile   = 04h}
-\item \var{VolumeId  = 08h}
-\item \var{Directory = 10h}
-\item \var{Archive   = 20h}
+\item \var{ReadOnly}
+\item \var{Hidden}
+\item \var{SysFile}
+\item \var{VolumeId}
+\item \var{Directory}
+\item \var{Archive}
 \end{itemize}
 \end{itemize}
 Under \linux, supported attributes are:
 Under \linux, supported attributes are:
 \begin{itemize}
 \begin{itemize}
@@ -665,8 +707,10 @@ Procedure GetIntVec (IntNo: byte; var Vector: pointer);
 
 
 \var{GetIntVec} returns the address of interrupt vector
 \var{GetIntVec} returns the address of interrupt vector
 \var{IntNo}.
 \var{IntNo}.
+\Portability
+Under non-\dos operating systems, this call does nothing.
 \Errors
 \Errors
-Under non- \dos operating systems, this call does nothing.
+None.
 \SeeAlso
 \SeeAlso
 \seep{SetIntVec}
 \seep{SetIntVec}
 \end{procedure}
 \end{procedure}
@@ -719,6 +763,9 @@ Procedure GetTime (var hour, minute, second, sec100: word);
 \var{GetTime} returns the system's time. \var{Hour} is a on a 24-hour time
 \var{GetTime} returns the system's time. \var{Hour} is a on a 24-hour time
 scale. \var{sec100} is in hundredth of a
 scale. \var{sec100} is in hundredth of a
 second.
 second.
+\Portability
+Certain operating systems (such as \amiga), always set the \var{sec100} field
+to zero.
 \Errors
 \Errors
 None.
 None.
 \SeeAlso
 \SeeAlso
@@ -739,9 +786,11 @@ Procedure GetVerify (var verify: boolean);
 \var{Verify} is \var{True}, then \dos checks data which are written to disk,
 \var{Verify} is \var{True}, then \dos checks data which are written to disk,
 by reading them after writing. If \var{Verify} is \var{False}, then data
 by reading them after writing. If \var{Verify} is \var{False}, then data
 written to disk are not verified.
 written to disk are not verified.
+\Portability
+Under non-\dos systems (excluding \ostwo applications running under vanilla DOS),  
+Verify is always \var{True}.
 \Errors
 \Errors
-Under \linux,  Verify is always
-\var{True}.
+None.
 \SeeAlso
 \SeeAlso
 \seep{SetVerify}
 \seep{SetVerify}
 \end{procedure}
 \end{procedure}
@@ -753,9 +802,10 @@ Procedure Intr (IntNo: byte; var Regs: registers);
 \var{Intr} executes a software interrupt number \var{IntNo} (must be between
 \var{Intr} executes a software interrupt number \var{IntNo} (must be between
 0 and 255), with processor registers set to \var{Regs}. After the interrupt call
 0 and 255), with processor registers set to \var{Regs}. After the interrupt call
 returned, the processor registers are saved in \var{Regs}.
 returned, the processor registers are saved in \var{Regs}.
+\Portability
+Under non-\dos operating systems, this call does nothing.
 \Errors
 \Errors
-Under \linux this call does nothing, because interrupts are managed by the
-kernel. The only allowed interrupt is 80h, the Linux kernel entry interrupt.
+None.
 \SeeAlso
 \SeeAlso
 \seep{MSDos}, see the \linux unit.
 \seep{MSDos}, see the \linux unit.
 \end{procedure}
 \end{procedure}
@@ -777,8 +827,11 @@ Under non-\dos operating systems, this call does nothing.
 Procedure MSDos (var regs: registers);
 Procedure MSDos (var regs: registers);
 \Description
 \Description
 
 
-\var{MSDos} executes an MS-\dos call (int 21h). This is the same as doing a
-\var{Intr} call with an interrupt number of 21h.
+\var{MSDos} executes an operating system. This is the same as doing a
+\var{Intr} call with the interrupt number for an os call.
+\Portability
+Under non-\dos operating systems, this call does nothing. On \dos systems,
+this calls interrupt \$21.
 \Errors
 \Errors
 None.
 None.
 \SeeAlso
 \SeeAlso
@@ -804,13 +857,14 @@ None.
 Procedure SetCBreak (breakvalue: boolean);
 Procedure SetCBreak (breakvalue: boolean);
 \Description
 \Description
 
 
-\var{SetCBreak} sets the status of CTRL-Break checking under \dos.
-When \var{BreakValue} is \var{false}, then \dos only checks for the 
-CTRL-Break key-press when I/O is performed. When it is set to \var{True},
-then a check is done at every system call.
+\var{SetCBreak} sets the status of CTRL-Break checking. When 
+\var{BreakValue} is \var{false}, then \dos only checks for the CTRL-Break 
+key-press when I/O is performed. When it is set to \var{True}, then a 
+check is done at every system call.
+\Portability
+Under non-\dos and non-\amiga operating systems, this call does nothing.
 \Errors
 \Errors
-Under Linux, this call exists
-but is not implemented, i.e. it does nothing.
+None.
 \SeeAlso
 \SeeAlso
 \seep{GetCBreak}
 \seep{GetCBreak}
 \end{procedure}
 \end{procedure}
@@ -821,10 +875,12 @@ Procedure SetDate (year,month,day: word);
 
 
 \var{SetDate} sets the system's internal date. \var{Year} is a number
 \var{SetDate} sets the system's internal date. \var{Year} is a number
 between 1980 and 2099.
 between 1980 and 2099.
+\Portability
+On a \linux machine, there must be root privileges, otherwise this
+routine will do nothing. On other \unix systems, this call currently
+does nothing.
 \Errors
 \Errors
-On a \linux  machine, this is not implemented (allthough a procedure
-exists, it just doesn't do anything. The setting of the date is a
-root-only privilege, and is hence not implemented.
+None.
 \SeeAlso
 \SeeAlso
 \seep{Dos:GetDate},
 \seep{Dos:GetDate},
 \seep{SetTime}
 \seep{SetTime}
@@ -840,18 +896,19 @@ Procedure SetFAttr (var F; Attr: word);
 have been assigned, but not opened. The attributes can be a sum of the
 have been assigned, but not opened. The attributes can be a sum of the
 following constants:
 following constants:
 \begin{itemize}
 \begin{itemize}
-\item \var{ReadOnly  = 01h}
-\item \var{Hidden    = 02h}
-\item \var{SysFile   = 04h}
-\item \var{VolumeId  = 08h}
-\item \var{Directory = 10h}
-\item \var{Archive   = 20h}
-\item \var{AnyFile   = 3fh}
+\item \var{ReadOnly}
+\item \var{Hidden}
+\item \var{SysFile}
+\item \var{VolumeId}
+\item \var{Directory}
+\item \var{Archive}
 \end{itemize}
 \end{itemize}
 
 
+\Portability
+Under \unix like systems (such as \linux and \beos) the call exists, but is not implemented, 
+i.e. it does nothing.
 \Errors
 \Errors
 Errors are reported in \var{DosError}.
 Errors are reported in \var{DosError}.
-Under \linux the call exists, but is not implemented, i.e. it does nothing.
 \SeeAlso
 \SeeAlso
 \seep{GetFAttr}
 \seep{GetFAttr}
 \end{procedure}
 \end{procedure}
@@ -864,6 +921,9 @@ Procedure SetFTime (var F; Time: longint);
 this time is encoded and must be encoded with \var{PackTime}. 
 this time is encoded and must be encoded with \var{PackTime}. 
 \var{F} must be a file type, which has been assigned, and
 \var{F} must be a file type, which has been assigned, and
 opened.
 opened.
+\Portability
+Under \unix like systems (such as \linux and \beos) the call exists, but is not implemented, 
+i.e. it does nothing.
 \Errors
 \Errors
 Errors are reported in \var{DosError}
 Errors are reported in \var{DosError}
 \SeeAlso
 \SeeAlso
@@ -877,7 +937,7 @@ Procedure SetIntVec (IntNo: byte; Vector: pointer);
 \var{SetIntVec} sets interrupt vector \var{IntNo} to \var{Vector}.
 \var{SetIntVec} sets interrupt vector \var{IntNo} to \var{Vector}.
 \var{Vector} should point to an interrupt procedure.
 \var{Vector} should point to an interrupt procedure.
 \Errors
 \Errors
-Under non- \dos operating systems, this call does nothing.
+Under non-\dos operating systems, this call does nothing.
 \SeeAlso
 \SeeAlso
 \seep{GetIntVec}
 \seep{GetIntVec}
 \end{procedure}
 \end{procedure}
@@ -888,9 +948,12 @@ Procedure SetTime (hour,minute,second,sec100: word);
 \Description
 \Description
 \var{SetTime} sets the system's internal clock. The \var{Hour} parameter is
 \var{SetTime} sets the system's internal clock. The \var{Hour} parameter is
 on a 24-hour time scale.
 on a 24-hour time scale.
+\Portability
+On a \linux machine, there must be root privileges, otherwise this
+routine will do nothing. On other \unix systems, this call currently
+does nothing.
 \Errors
 \Errors
-this call exists, but is not implemented on \linux, 
-as setting the time is a root-only privilege.
+None.
 \SeeAlso
 \SeeAlso
 \seep{Dos:GetTime}, \seep{SetDate}
 \seep{Dos:GetTime}, \seep{SetDate}
 \end{procedure}
 \end{procedure}
@@ -903,8 +966,11 @@ Procedure SetVerify (verify: boolean);
 \var{Verify} is \var{True}, then \dos checks data which are written to disk,
 \var{Verify} is \var{True}, then \dos checks data which are written to disk,
 by reading them after writing. If \var{Verify} is \var{False}, then data
 by reading them after writing. If \var{Verify} is \var{False}, then data
 written to disk are not verified.
 written to disk are not verified.
+\Portability
+Under non-\dos operating systems (excluding \ostwo applications running
+under vanilla dos), Verify is always \var{True}.
 \Errors
 \Errors
-Under \linux,  Verify is always
+None.
 \var{True}.
 \var{True}.
 \SeeAlso
 \SeeAlso
 \seep{SetVerify}
 \seep{SetVerify}
@@ -919,8 +985,8 @@ vectors with the current contents of the interrupt vectors.
 This is called typically in before and after an \var{Exec} call.
 This is called typically in before and after an \var{Exec} call.
 
 
 \Errors
 \Errors
-Under \linux this call does nothing, as the interrupt vectors are 
-managed by the kernel.
+Under certain operating systems, this routine may be implemented
+as an empty stub.
 \SeeAlso
 \SeeAlso
 \seep{Exec}, \seep{SetIntVec}
 \seep{Exec}, \seep{SetIntVec}
 \end{procedure}
 \end{procedure}
@@ -939,3 +1005,4 @@ None.
 \end{procedure}
 \end{procedure}
 For an example, see \seep{PackTime}.
 For an example, see \seep{PackTime}.
 
 
+