Logical markup.

Convert a {description} list to a {tableii} environment.
diff --git a/Doc/lib/libcd.tex b/Doc/lib/libcd.tex
index b3ca8b2..e2571cc 100644
--- a/Doc/lib/libcd.tex
+++ b/Doc/lib/libcd.tex
@@ -6,9 +6,9 @@
 It is available only on Silicon Graphics systems.
 
 The way the library works is as follows.  A program opens the CD-ROM
-device with \code{cd.open()} and creates a parser to parse the data
-from the CD with \code{cd.createparser()}.  The object returned by
-\code{cd.open()} can be used to read data from the CD, but also to get
+device with \function{open()} and creates a parser to parse the data
+from the CD with \function{createparser()}.  The object returned by
+\function{open()} can be used to read data from the CD, but also to get
 status information for the CD-ROM device, and to get information about
 the CD, such as the table of contents.  Data from the CD is passed to
 the parser, which parses the frames, and calls any callback
@@ -27,34 +27,34 @@
 relative to the beginning of the CD, and to the beginning of the
 track.
 
-Module \code{cd} defines the following functions and constants:
+Module \module{cd} defines the following functions and constants:
 
-\setindexsubitem{(in module cd)}
 
 \begin{funcdesc}{createparser}{}
 Create and return an opaque parser object.  The methods of the parser
 object are described below.
 \end{funcdesc}
 
-\begin{funcdesc}{msftoframe}{min\, sec\, frame}
-Converts a \code{(minutes, seconds, frames)} triple representing time
-in absolute time code into the corresponding CD frame number.
+\begin{funcdesc}{msftoframe}{minutes, seconds, frames}
+Converts a \code{(\var{minutes}, \var{seconds}, \var{frames})} triple
+representing time in absolute time code into the corresponding CD
+frame number.
 \end{funcdesc}
 
-\begin{funcdesc}{open}{\optional{device\optional{\, mode}}}
+\begin{funcdesc}{open}{\optional{device\optional{, mode}}}
 Open the CD-ROM device.  The return value is an opaque player object;
 methods of the player object are described below.  The device is the
-name of the SCSI device file, e.g. /dev/scsi/sc0d4l0, or \code{None}.
-If omited or \code{None}, the hardware inventory is consulted to
-locate a CD-ROM drive.  The \code{mode}, if not omited, should be the
-string 'r'.
+name of the SCSI device file, e.g. \code{'/dev/scsi/sc0d4l0'}, or
+\code{None}.  If omitted or \code{None}, the hardware inventory is
+consulted to locate a CD-ROM drive.  The \var{mode}, if not omited,
+should be the string \code{'r'}.
 \end{funcdesc}
 
 The module defines the following variables:
 
-\begin{datadesc}{error}
+\begin{excdesc}{error}
 Exception raised on various errors.
-\end{datadesc}
+\end{excdesc}
 
 \begin{datadesc}{DATASIZE}
 The size of one frame's worth of audio data.  This is the size of the
@@ -65,7 +65,8 @@
 The size of one uninterpreted frame of audio data.
 \end{datadesc}
 
-The following variables are states as returned by \code{getstatus}:
+The following variables are states as returned by
+\function{getstatus()}:
 
 \begin{datadesc}{READY}
 The drive is ready for operation loaded with an audio CD.
@@ -95,7 +96,7 @@
 \end{datadesc}
 
 \begin{datadesc}{STILL}
-The equivalent of \code{PAUSED} on older (non 3301) model Toshiba
+The equivalent of \constant{PAUSED} on older (non 3301) model Toshiba
 CD-ROM drives.  Such drives have never been shipped by SGI.
 \end{datadesc}
 
@@ -108,14 +109,14 @@
 \dataline{ident}
 \dataline{control}
 Integer constants describing the various types of parser callbacks
-that can be set by the \code{addcallback()} method of CD parser
+that can be set by the \method{addcallback()} method of CD parser
 objects (see below).
 \end{datadesc}
 
-Player objects (returned by \code{cd.open()}) have the following
+Player objects (returned by \function{open()}) have the following
 methods:
 
-\setindexsubitem{(CD player object method)}
+\setindexsubitem{(CD player method)}
 
 \begin{funcdesc}{allowremoval}{}
 Unlocks the eject button on the CD-ROM drive permitting the user to
@@ -123,14 +124,14 @@
 \end{funcdesc}
 
 \begin{funcdesc}{bestreadsize}{}
-Returns the best value to use for the \code{num_frames} parameter of
-the \code{readda} method.  Best is defined as the value that permits a
-continuous flow of data from the CD-ROM drive.
+Returns the best value to use for the \var{num_frames} parameter of
+the \method{readda()} method.  Best is defined as the value that
+permits a continuous flow of data from the CD-ROM drive.
 \end{funcdesc}
 
 \begin{funcdesc}{close}{}
 Frees the resources associated with the player object.  After calling
-\code{close}, the methods of the object should no longer be used.
+\method{close()}, the methods of the object should no longer be used.
 \end{funcdesc}
 
 \begin{funcdesc}{eject}{}
@@ -140,15 +141,15 @@
 \begin{funcdesc}{getstatus}{}
 Returns information pertaining to the current state of the CD-ROM
 drive.  The returned information is a tuple with the following values:
-\code{state}, \code{track}, \code{rtime}, \code{atime}, \code{ttime},
-\code{first}, \code{last}, \code{scsi_audio}, \code{cur_block}.
-\code{rtime} is the time relative to the start of the current track;
-\code{atime} is the time relative to the beginning of the disc;
-\code{ttime} is the total time on the disc.  For more information on
-the meaning of the values, see the manual for CDgetstatus.
-The value of \code{state} is one of the following: \code{cd.ERROR},
-\code{cd.NODISC}, \code{cd.READY}, \code{cd.PLAYING},
-\code{cd.PAUSED}, \code{cd.STILL}, or \code{cd.CDROM}.
+\var{state}, \var{track}, \var{rtime}, \var{atime}, \var{ttime},
+\var{first}, \var{last}, \var{scsi_audio}, \var{cur_block}.
+\var{rtime} is the time relative to the start of the current track;
+\var{atime} is the time relative to the beginning of the disc;
+\var{ttime} is the total time on the disc.  For more information on
+the meaning of the values, see the man page \manpage{CDgetstatus}{3dm}.
+The value of \var{state} is one of the following: \constant{ERROR},
+\constant{NODISC}, \constant{READY}, \constant{PLAYING},
+\constant{PAUSED}, \constant{STILL}, or \constant{CDROM}.
 \end{funcdesc}
 
 \begin{funcdesc}{gettrackinfo}{track}
@@ -157,36 +158,37 @@
 the track and the duration of the track.
 \end{funcdesc}
 
-\begin{funcdesc}{msftoblock}{min\, sec\, frame}
+\begin{funcdesc}{msftoblock}{min, sec, frame}
 Converts a minutes, seconds, frames triple representing a time in
 absolute time code into the corresponding logical block number for the
-given CD-ROM drive.  You should use \code{cd.msftoframe()} rather than
-\code{msftoblock()} for comparing times.  The logical block number
+given CD-ROM drive.  You should use \function{msftoframe()} rather than
+\method{msftoblock()} for comparing times.  The logical block number
 differs from the frame number by an offset required by certain CD-ROM
 drives.
 \end{funcdesc}
 
-\begin{funcdesc}{play}{start\, play}
+\begin{funcdesc}{play}{start, play}
 Starts playback of an audio CD in the CD-ROM drive at the specified
 track.  The audio output appears on the CD-ROM drive's headphone and
 audio jacks (if fitted).  Play stops at the end of the disc.
-\code{start} is the number of the track at which to start playing the
-CD; if \code{play} is 0, the CD will be set to an initial paused
-state.  The method \code{togglepause()} can then be used to commence
+\var{start} is the number of the track at which to start playing the
+CD; if \var{play} is 0, the CD will be set to an initial paused
+state.  The method \method{togglepause()} can then be used to commence
 play.
 \end{funcdesc}
 
-\begin{funcdesc}{playabs}{min\, sec\, frame\, play}
-Like \code{play()}, except that the start is given in minutes,
-seconds, frames instead of a track number.
+\begin{funcdesc}{playabs}{minutes, seconds, frames, play}
+Like \method{play()}, except that the start is given in minutes,
+seconds, and frames instead of a track number.
 \end{funcdesc}
 
-\begin{funcdesc}{playtrack}{start\, play}
-Like \code{play()}, except that playing stops at the end of the track.
+\begin{funcdesc}{playtrack}{start, play}
+Like \method{play()}, except that playing stops at the end of the
+track.
 \end{funcdesc}
 
-\begin{funcdesc}{playtrackabs}{track\, min\, sec\, frame\, play}
-Like \code{play()}, except that playing begins at the spcified
+\begin{funcdesc}{playtrackabs}{track, minutes, seconds, frames, play}
+Like \method{play()}, except that playing begins at the spcified
 absolute time and ends at the end of the specified track.
 \end{funcdesc}
 
@@ -198,16 +200,16 @@
 \begin{funcdesc}{readda}{num_frames}
 Reads the specified number of frames from an audio CD mounted in the
 CD-ROM drive.  The return value is a string representing the audio
-frames.  This string can be passed unaltered to the \code{parseframe}
-method of the parser object.
+frames.  This string can be passed unaltered to the
+\method{parseframe()} method of the parser object.
 \end{funcdesc}
 
-\begin{funcdesc}{seek}{min\, sec\, frame}
+\begin{funcdesc}{seek}{minutes, seconds, frames}
 Sets the pointer that indicates the starting point of the next read of
 digital audio data from a CD-ROM.  The pointer is set to an absolute
-time code location specified in minutes, seconds, and frames.  The
-return value is the logical block number to which the pointer has been
-set.
+time code location specified in \var{minutes}, \var{seconds}, and
+\var{frames}.  The return value is the logical block number to which
+the pointer has been set.
 \end{funcdesc}
 
 \begin{funcdesc}{seekblock}{block}
@@ -232,46 +234,40 @@
 Pauses the CD if it is playing, and makes it play if it is paused.
 \end{funcdesc}
 
-Parser objects (returned by \code{cd.createparser()}) have the
+Parser objects (returned by \function{createparser()}) have the
 following methods:
 
-\setindexsubitem{(CD parser object method)}
+\setindexsubitem{(CD parser method)}
 
-\begin{funcdesc}{addcallback}{type\, func\, arg}
+\begin{funcdesc}{addcallback}{type, func, arg}
 Adds a callback for the parser.  The parser has callbacks for eight
 different types of data in the digital audio data stream.  Constants
-for these types are defined at the \code{cd} module level (see above).
-The callback is called as follows: \code{func(arg, type, data)}, where
-\code{arg} is the user supplied argument, \code{type} is the
-particular type of callback, and \code{data} is the data returned for
-this \code{type} of callback.  The type of the data depends on the
-\code{type} of callback as follows:
-\begin{description}
-\item[\code{cd.audio}: ]
-The argument is a string which can be passed unmodified to
-\code{al.writesamps()}.
-\item[\code{cd.pnum}: ]
-The argument is an integer giving the program (track) number.
-\item[\code{cd.index}: ]
-The argument is an integer giving the index number.
-\item[\code{cd.ptime}: ]
-The argument is a tuple consisting of the program time in minutes,
-seconds, and frames.
-\item[\code{cd.atime}: ]
-The argument is a tuple consisting of the absolute time in minutes,
-seconds, and frames.
-\item[\code{cd.catalog}: ]
-The argument is a string of 13 characters, giving the catalog number
-of the CD.
-\item[\code{cd.ident}: ]
-The argument is a string of 12 characters, giving the ISRC
-identification number of the recording.  The string consists of two
-characters country code, three characters owner code, two characters
-giving the year, and five characters giving a serial number.
-\item[\code{cd.control}: ]
-The argument is an integer giving the control bits from the CD subcode
-data.
-\end{description}
+for these types are defined at the \module{cd} module level (see above).
+The callback is called as follows: \code{\var{func}(\var{arg}, type,
+data)}, where \var{arg} is the user supplied argument, \var{type} is
+the particular type of callback, and \var{data} is the data returned
+for this \var{type} of callback.  The type of the data depends on the
+\var{type} of callback as follows:
+
+\begin{tableii}{|l|l|}{code}{Type}{Value}
+  \lineii{audio}{String which can be passed unmodified to
+\function{al.writesamps()}.}
+  \lineii{pnum}{Integer giving the program (track) number.}
+  \lineii{index}{Integer giving the index number.}
+  \lineii{ptime}{Tuple consisting of the program time in minutes,
+seconds, and frames.}
+  \lineii{atime}{Tuple consisting of the absolute time in minutes,
+seconds, and frames.}
+  \lineii{catalog}{String of 13 characters, giving the catalog number
+of the CD.}
+  \lineii{ident}{String of 12 characters, giving the ISRC
+identification number of the recording. \\
+&The string consists of two characters country code, three characters
+owner code, \\
+&two characters giving the year, and five characters giving a serial number.}
+  \lineii{control}{Integer giving the control bits from the CD
+subcode data}
+\end{tableii}
 \end{funcdesc}
 
 \begin{funcdesc}{deleteparser}{}
@@ -282,20 +278,20 @@
 
 \begin{funcdesc}{parseframe}{frame}
 Parses one or more frames of digital audio data from a CD such as
-returned by \code{readda}.  It determines which subcodes are present
-in the data.  If these subcodes have changed since the last frame,
-then \code{parseframe} executes a callback of the appropriate type
-passing to it the subcode data found in the frame.
-Unlike the C function, more than one frame of digital audio data can
-be passed to this method.
+returned by \method{readda()}.  It determines which subcodes are
+present in the data.  If these subcodes have changed since the last
+frame, then \method{parseframe()} executes a callback of the
+appropriate type passing to it the subcode data found in the frame.
+Unlike the \C{} function, more than one frame of digital audio data
+can be passed to this method.
 \end{funcdesc}
 
 \begin{funcdesc}{removecallback}{type}
-Removes the callback for the given \code{type}.
+Removes the callback for the given \var{type}.
 \end{funcdesc}
 
 \begin{funcdesc}{resetparser}{}
 Resets the fields of the parser used for tracking subcodes to an
-initial state.  \code{resetparser} should be called after the disc has
-been changed.
+initial state.  \method{resetparser()} should be called after the disc
+has been changed.
 \end{funcdesc}