5. IDE Command Descriptions
34
Initialize Drive Parameters (91h)
This command enables the host to set the head switch and cylinder increment points for
multiple sector operations. The drive activates translate mode only if the sector count
register contains the value 17 at the issuance of this command.
In the translate mode the logical head, sector numbers, and cylinder number in the
command block are translated to their native physical values as part of the command's
execution. The sector, head, and cylinder values in the command block are not checked
for validity by this command. If they are invalid no error is reported until an illegal access
is made by some other command.
Read Multiple Command (C4h)
The read multiple command is identical to the read sectors operation except that
several sectors are transferred to the host as a block without intervening interrupts, and
DRQ qualification of the transfer is required only at the start of the block count on each
sector. Long transfers are not permitted. The block count, which is the number of
sectors to be transferred as a block, is programmed by the set multiple mode command,
which must be executed prior to the read multiple command. When the read multiple
command is issued the sector count register will contain the number of sectors (not the
number of blocks or the block count) requested. If this sector count is not evenly
divisible by the block count, as many full blocks as possible are transferred, followed by
a final, partial block transfer. The partial block transfer is for n sectors, where
n = (sector count) modulo (block count)
If the read multiple command is attempted before the set multiple mode command has
been executed or when read multiple commands are disabled, the read multiple
operation is rejected with an aborted command error.
Disk errors encountered during read multiple commands are reported at the beginning
of the block or partial block transfer, but DRQ is set and the transfer takes place as it
normally would, including transfer of corrupt data, if any. Subsequent blocks or partial
blocks are transferred only if the error is a correctable data error. All other errors cause
the command to stop after transfer of the block containing the error. Interrupts are
generated when DRQ is set at the beginning of each block or partial block.
Read look-aheads are not active for this command.
Write Multiple Command (C5h)
The write multiple command performs similarly to the write sectors command except
that the controller sets BSY immediately upon receipt of the command, data transfers
are multiple sector blocks, and the long bit is not valid. Several sectors are transferred
to the host as a block without intervening interrupts, and DRQ qualification of the
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com