AT INTERFACE and ATA COMMANDS
WA31273A / WA32543A / WA33203A / WA32163A / WA31083A / WA32162A 6-31
The transfer of the ECC bytes shall be 8 bits wide, and 4 or 11 bytes long.
6-4-13 Read Multiple Command (C4h)
The Read Multiple command performs similarly to the Read Sectors command.
Interrupts are not generated on every sector, but on the transfer of a block which
contains the number of sectors defined by a Set Multiple command.
Command execution is identical to the Read Sectors operation except that the number of
sectors defined by a Set Multiple command are transferred without intervening
interrupts. DRQ qualification of the transfer is required only at the start of the data block,
not on each sector.
The block count of sectors to be transferred without intervening interrupts is
programmed by the Set Multiple Mode command, which should be executed prior to
the Read Multiple command. When the Read Multiple command is issued, the Sector
Count Register contains the number of sectors (not the number of blocks or the block
count) requested.
If the number of requested sectors 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 shall be for n sectors, where
n = Remainder (Sector Count / 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 posted at the beginning of
the block or partial block transfer, but DRQ is still set and the data transfer takes place as
it normally would, including transfer of corrupted data, if any.
The contents of the Command Block Registers following the transfer of a data block
which had a sector in error are undefined. The host should retry the transfer as
individual requests to obtain valid error information.
Subsequent blocks or partial blocks are transferred 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.
6-4-14 Read Sector(s) (20h)
This command reads from 1 to 256 sectors as specified in the Sector Count Register. A
sector count of 0 requests 256 sectors. The transfer begins at the sector specified in the
Sector Number Register. See 6.6.1 for the DRQ, IRQ and BSY protocol on data transfers.