5. IDE Command Descriptions
35
transfer is required only at the start of the block instead of on each sector. There is no
interrupt request prior to the first block transfer.
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
write multiple command. When the write multiple command is issued, the sector count
register contains 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 write multiple command is attempted before the set multiple mode command has
been executed or when write multiple commands are disabled, the write multiple
operation is rejected with an aborted command error.
All disk errors encountered during write multiple commands are reported after the
attempted disk write of the block or partial block is transferred. The write operation ends
with the sector in error, even if in mid-block. In the event of an error, subsequent blocks
are not transferred. Interrupts are generated when DRQ is set at the beginning of each
block or partial block.
Set Multiple Code (C6h)
This command enables the controller to perform read and write multiple operations and
establishes the block count for these commands. Prior to command issuance, the sector
count register should be loaded with the number of sectors per block. Block sizes
supported are 1, 2, 4, 8, and 16.
Upon receipt of the command, the controller sets BSY and looks at the sector count
register contents. If the register contents are valid and supported block count is
supplied, that value is loaded for all subsequent read and write multiple commands and
execution of these commands is enabled. Any unsupported block count in the register
will result in an aborted command error and read and write multiple commands being
disabled. If the sector count register contains 0 when the command is issued, read and
write multiple commands are disabled.
Read Buffer (E4h)
The read buffer command allows the host to read the current contents of the drive's
sector buffer. Only the command register is valid for this command. When this command
is issued the drive will set BSY, set up the sector buffer for a read operation, set DRQ,
reset BSY, and generate an interrupt. The host may then read up to 512 bytes of data
from the buffer.
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com