INTERFACECOMMANDS
Read Commands
Read Sector(s)
Reads from 1 to 256 sectors, as specified in the Command Block, beginning at the specified sector. (A sector count of 0 requests 256 sectors.) Immediately after the Command register is written, the drive sets the BSY bit and begins execution of the command. If the drive is not already on the desired track, an implied seek is performed.
Once at the desired track, the drive searches for the data address mark of the requested sector. The data address mark must be recognized within a specified number of bytes, or the Data Address Mark Not Found error will be reported. Assuming the data address mark is found:
1.The data field is read into the sector buffer.
2.Error bits are set (if an error was encountered).
3.The DRQ bit is set.
4.An interrupt is generated.
The DRQ bit is always set, regardless of the presence or absence of an error condition after the sector. Upon command completion, the Command Block registers contain the numbers of the cylinder, head and sector of the last sector read.
If an error occurs during Read Sector commands, the read terminates at the sector where the error occurred. The host may then read the Command Block to determine the nature of that error, and the sector where it happened. If the error type is a correctable or an
A Read Long command sets the Long bit in the command code and returns the data and the ECC bytes in the data field of the specified sector. During a Read Long, the drive does not check the ECC bytes to determine if there has been a data error. The Read Long command is limited to single sector requests.
Read Verify Sector(s)
Identical to the Read Sector(s) command, except that:
1.DRQ is never set,
2.No data is transferred back to the host and
3.The long bit is not valid.
7 – 2