User's Manual

Interface
5-32 C141-E262
(2) READ SECTOR(S) (X '20' or X '21')
This command reads data of sectors specified in the Sector Count field from the
address specified in the Device/Head, Cylinder High, Cylinder Low and Sector
Number fields. Number of sectors can be specified from 1 to 256 sectors. To
specify 256 sectors reading, '00' is specified. For the protocols related to data
transfer, see Subsection 5.4.1.
If the head is not on the track specified by the host, the device performs an
implied seek. After the head reaches to the specified track, the device reads the
target sector.
If an error occurs, retry reads are attempted to read the target sector before
reporting an error, irrespective of the R bit setting.
If an error does not occur, PIO Setup is always transferred prior to the data
transfer.
Upon the completion of the command execution, shadow block registers contain
the cylinder, head, and sector addresses (in the CHS mode) or logical block
address (in the LBA mode) of the last sector read.
If an unrecoverable disk read error occurs in a sector, the read operation is terminated
at the sector where the error occurred. Shadow block registers contain the cylinder,
the head, and the sector addresses of the sector (in the CHS mode) or the logical
block address (in the LBA mode) where the error occurred, and remaining
number of sectors of which data was not transferred (including sector when the
error occurred).
Error reporting conditions
(1) A specified address exceeds the range where read operations are allowed
(ST = 51h, ER = 10h).
(2) The range where read operations are allowed will be exceeded by an address
during a read operation (ST = 51h, ER = 10h).
(3) An uncorrectable disk read error occurred (ST = 51h, ER = 40h).
(4) The sync byte indicating the beginning of a sector was not found
(ST = 51h, ER = 01h).
(5) A communication error occurred (ST = 51h, ER = 0Ch).
(6) An error other than the above errors occurred (ST = 51h, ER = 04h).