Specifications

INTERFACE COMMANDS
7 – 42
Read DMA
Multi-word DMA
Identical to the Read Sector(s) command, except that
1. The host initializes a slave-DMA channel prior to issuing the command,
2. Data transfers are qualified by DMARQ and are performed by the slave-DMA channel and
3. The drive issues only one interrupt per command to indicate that data transfer has terminated
and status is available.
Any unrecoverable error encountered during execution of a Read DMA command terminates data transfer
after the transfer of all sectors prior to the sector where the error was detected. The sector in error is not
transferred. The drive generates an interrupt to indicate that data transfer has terminated and status is available.
The error posting is identical to the Read Sector(s) command.
Read Multiple
Performs similarly to the Read Sector(s) command, except that for each READ MULTIPLE command data transfers are
multiple sector blocks and the Long bit is not valid.
Execution is also similar to that of the READ SECTOR(S) command, except that:
1. Several sectors are transferred to the host as a block, without intervening interrupts.
2. DRQ qualification of the transfer is required only at the start of each block, not of each sector.
The block count consists of the number of sectors to be transferred as a block. (The block count is programmed by the Set
Multiple Mode command, which must be executed prior to the Read Multiple command.) READ LONG command is
limited to single sector requests.
When the Read Multiple command is issued, the Sector Count register contains the number of sectors requested — not the
number of blocks or the block count. If the number of sectors is not evenly divisible by the block count, as many full
blocks as possible are transferred, followed by a final, partial block transfer. This final, partial block transfer is for N
sectors, where N = (sector count) modulo (block count)
The Read Multiple operation will be rejected with an Aborted Command error if attempted:
1. Before the Set Multiple Mode command has been executed, or
2. When Read Multiple commands are disabled.
The controller reports disk errors encountered during Read Multiple commands at the start of the block or partial block
transfer. However, DRQ still sets, and the transfer occurs normally, along with the transfer of any corrupt data. Remaining
block data from the following the sector in error is not valid.
Subsequent blocks or partial blocks transfer only if the error was a correctable data error. All other errors cause the
command to stop after transfer of the block which contained the error. Interrupts are generated when DRQ is set at the
beginning of each block or partial block.
Set Multiple Mode
Enables the controller to perform Read and Write Multiple operations, and establishes the block count for these
commands. Before issuing this command, the Sector Count register should be loaded with the number of sectors per block.
The drives support block sizes of 2, 4, 8 and 16 sectors.
When this command is received, the controller sets BSY and examines the Sector Count register contents. If they contain a
valid and supported block count value, that value is loaded for all subsequent Read and Write Multiple commands, and
execution of those commands is enabled. An invalid and unsupported block count in the register results in an Aborted
Command error and the disallows Read Multiple and Write Multiple commands.
If the Sector Count register contains 0 when the Set Multiple Mode command is issued, Read Multiple and Write
Multiple commands are disabled; no error is returned. Once the appropriate action has been taken, the controller resets
BSY and generates an interrupt. At power up, or after a hardware or software reset, Read Multiple and Write Multiple
commands are disabled by default.