5.3 Host Commands
(2) READ SECTOR(S) (X’20’ or X’21’)
This command reads data of sectors specified in the Sector Count register from the address specified in the Device/Head, Cylinder High, Cylinder Low and Sector Number registers. Number of sectors can be specified from 1 to 256 sectors. To specify 256 sectors reading, ‘00’ is specified. For the DRQ, INTRQ, and BSY 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.
The DRQ bit of the Status register is always set prior to the data transfer regardless of an error condition.
Upon the completion of the command execution, command 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 error occurs in a sector, the read operation is terminated at the sector where the error occurred. Command 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.
At command issuance (I/O registers setting contents)
1F7H(CM) | 0 | 0 | 1 | 0 | 0 | 0 | 0 | R |
|
|
|
|
|
|
| ||
1F6H(DH) | x | L | x | DV | Start head No. / LBA |
| ||
|
|
|
|
| [MSB] |
|
|
|
|
|
|
|
|
|
|
|
|
1F5H(CH) | Start cylinder No. [MSB] / LBA |
|
|
| ||||
1F4H(CL) | Start cylinder No. [LSB] / LBA |
|
|
| ||||
1F3H(SN) | Start sector No. / LBA [LSB] |
|
|
| ||||
1F2H(SC) | Transfer sector count |
|
|
|
| |||
1F1H(FR) | xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|