
Interface
At command issuance (I/O registers setting contents)
1F7H(CM) | 0 | 1 | 0 | 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 |
|
|
|
|
|
|
|
At command completion (I/O registers contents to be read)
1F7H(ST) | Status information |
|
| |||
1F6H(DH) | x |
| L | x | DV | End head No. / LBA [MSB] |
|
|
|
|
|
| |
1F5H(CH) | End cylinder No. [MSB] / LBA | |||||
1F4H(CL) | End cylinder No. [LSB] / LBA | |||||
1F3H(SN) | End sector No. / LBA [LSB] | |||||
1F2H(SC) | 00 (*1) |
|
|
|
| |
1F1H(ER) | Error information |
|
| |||
|
|
|
|
|
|
|
*1 If the command is terminated due to an error, the remaining number of sectors of which data was not transferred is set in this register.
(5) WRITE SECTOR(S) (X’30’ or X’31’)
This command writes data of sectors from the address specified in the Device/Head, Cylinder High, Cylinder Low, and Sector Number registers to the address specified in the Sector Count register. Number of sectors can be specified from 1 to 256 sectors. A sector count of 0 requests 256 sectors. Data transfer begins at the sector specified in the Sector Number register. For the DRQ, INTRQ, and BSY protocols related to data transfer, see Subsection 5.4.2.
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 writes the target sector.
If an error occurs when writing to the target sector, retries are attempted irrespectively of the R bit setting.
The data stored in the buffer, and CRC code and ECC bytes are written to the data field of the corresponding sector(s). Upon the completion of the command execution, the command block registers contain the cylinder, head, and sector addresses of the last sector written.