Вот что написано в старом стандартеСообщение от SMT
--------
9.13 Read Sector(s)
/Чтение сектора(ов)/
Эта команда читает от 1 до 256 секторов. Количество секто-
ров определяется в Регистре Счетчика Секторов. Hоль соответ-
ствует 256 секторам. Передача начинается с сектора, записанного
в Регистре Hомера Сектора. См. 10.1 для определения протокола
обмена сигналами DRQ, IRQ и BSY при передаче данных.
Если головка не находится на нужной дорожке, то она уста-
навливается туда. После установки на требуемую дорожку накопи-
тель один раз ищет идентификатор (ID).
Если повторения запрещены и между двумя индексными импуль-
сами требуемый индетификатор не найдет, то выдается ошибка
"Идентификатор не найден" (ID Not Found).
Если повторения разрешены, то число попыток поиска иденти-
фикатора до регистрации ошибки зависит от конкретной фирмы про-
изводителя и модели накопителя.
После чтения правильного идентификатора ищется адресный
маркер. Если маркер не найден, то выдается ошибка "Hе найден
адресный маркер" (Address Mark Not Found).
После нахождения адресного маркера читается поле данных в
буфер секторов. Если при чтении встречались ошибки, то устанав-
ливаются соответствующие биты ошибок. Затем устанавливается DRQ
и генерируется прерывание.
Бит DRQ всегда устанавливается независимо от того, была
ошибка или нет.
После завершения команды Блок Регистров Команды содержит
цилиндр, головку и номер сектора последнего прочитанного секто-
ра.
Если происходит ошибка, то чтение завершается в том секто-
ре, где произошла ошибка и Блок Регистров Команды содержит ци-
линдр, головку и сектор, где произошла ошибка.
Ошибочные данные остаются в буфере секторов.
------------
Драйвер ide+3.blk читает регистр сектора в некоторых ситуациях
и считает что там последний прочитанный сектор.