K6610170
Rev.2
Dec 22, 2004
- 85 -
7.5.20. Read Multiple EXT [29h]
Task
File
Register
7 6 5 4 3 2 1 0
Command 29h
Feature Previous
setting
XX
Current
setting
XX
LBA High
Previous setting
LBA bit 47 - 40
Current setting
LBA bit 23 - 16
LBA Mid
Previous setting
LBA bit 39 - 32
Current setting
LBA bit 15 - 8
LBA Low
Previous setting
LBA bit 31 - 24
Current setting
LBA bit 7 - 0
Sector Count
Previous setting
Sector Count bit 15 - 8
Current setting
Sector Count bit 7 - 0
Device
X 1 X
DEV
X X X X
The READ MULTIPLE EXT command is similar to the READ SECTORS EXT command, except 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 MODE command. The number of sectors defined by a SET MULTIPLE MODE
command is transferred without intervening interrupts. DRQ qualification of the transfer is required only at
the start of the data block, not on each sector. The SET MULTIPLE MODE command, which must be
executed prior to the READ MULTIPLE EXT command, sets the block count of sectors to be transferred.
When the READ MULTIPLE EXT 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 for n sectors, where n = residue of {Sector Count / Sector Count per Block}.
Disk errors encountered during READ MULTIPLE EXT commands are posted at the beginning of the block
or partial block transfer, but DRQ is still set and the data transfer should be executed as it normally would,
including transfer of corrupted data, if any. 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 that
contained the error. Interrupts are generated when DRQ is set at the beginning of each block or partial block.