Command          Operation
--------         ----------
CMD_CLEAR        Mark track buffer as invalid. Forces the track to be
ETD_CLEAR        re-read.  ETD_CLEAR also checks for a diskchange.
CMD_READ         Read one or more sectors from a disk.  ETD_READ also
ETD_READ         reads the sector label area and checks for a diskchange.
CMD_UPDATE       Write out track buffer if it has been changed. ETD_UPDATE
ETD_UPDATE       also checks for a diskchange.
CMD_WRITE        Write one or more sectors to a disk.  ETD_WRITE also
ETD_WRITE        writes the sector label area and checks for a diskchange.
TD_ADDCHANGEINT  Add an interrupt handler to be activated on a diskchange.
TD_CHANGENUM     Return the current value of the diskchange counter used
                 by the ETD commands to determine if a diskchange has
                 occurred.
TD_CHANGESTATE   Return the disk present/not-present status of a drive.
TD_EJECT         Eject a disk from a drive.  This command will only work
                 on drives that support an eject command (V36).
TD_FORMAT        Initialize one or more tracks with a data buffer.
ETD_FORMAT       ETD_FORMAT also initializes the sector label area.
TD_GETDRIVETYPE  Return the type of disk drive in use by the unit.
TD_GETGEOMETRY   Return the disk geometry table (V36).
TD_GETNUMTRACKS  Return the number of tracks usable with the unit.
TD_MOTOR         Turn the motor on or off.  ETD_MOTOR also checks for a
ETD_MOTOR        diskchange.
TD_PROTSTATUS    Return the write-protect status of a disk.
TD_RAWREAD       Read RAW sector data from disk (unencoded MFM).
ETD_RAWREAD      ETD_RAWREAD also checks for a diskchange.
TD_RAWWRITE      Write RAW sector data to disk.  ETD_RAWWRITE also checks
ETD_RAWWRITE     for a diskchange.
TD_REMCHANGEINT  Remove a diskchange interrupt handler.
TD_SEEK          Move the head to a specific track.  ETD_SEEK also checks
                 for a
ETD_SEEK         diskchange.
Exec Functions as Used in This Chapter
--------------------------------------
AbortIO()        Abort a command to the trackdisk device.
BeginIO()        Initiate a command and return immediately (asynchronous
                 request).
CloseDevice()    Relinquish use of a disk unit.
DoIO()           Initiate a command and wait for completion (synchronous
                 request).
OpenDevice()     Obtain exclusive use of a particular disk unit.
Exec Support Functions as Used in This Chapter
----------------------------------------------
CreateExtIO()    Create an extended I/O request structure of type IOExtTD.
                 This structure will be used to communicate commands to
                 the trackdisk device.
CreatePort()     Create a signal message port for reply messages from the
                 trackdisk device.  Exec will signal a task when a message
                 arrives at the reply port.
DeleteExtIO()    Delete an I/O request structure created by CreateExtIO().
DeletePort()     Delete the message port created by CreatePort().