Цитата Сообщение от Sayman Посмотреть сообщение
ещё сразу попутно вопрос:
предполодим есть винт....я не знаю что он умеет. я его подрубил. делаю проверку на на его способности путём определения его параметров....там кажется 512 байт считывается. кладём в буфер для разбора и сразу смотрим, поддерживает ли винт ЛБА. проверка по адресу буфера + #72 смещение. если там лежит 0, то винт ЛБА не умеет. тогда переходим к чтению параметров CHS (далее ЦГС - цилиндр голова сектор). отсуюда две ситуации предположим:
ситуация 1: винт поддерживает ЛБА. тогда конвертить все его параметры (собственно тупо адресация от нуля до последнего сектора -1 вроде как) соответственно при чтении или записи на винт ЛБА я просто кидаю их в регистры чтения/записи...т.е. вполне просто.
ситуация 2: винт не поддерживает ЛБА. читаем данные ЦГС. соответственно конвертить тоже ничего не нада, есть порты (регистры иде) соответствующие - кидаем или читаем прямо в этом формате...мне кажется что это должно сработать..или нет?!
Насколько помню где-то про Скорпион и SMUC было написано примерно так: врубаешь LBA и начинаешь читать все сектора с нуля. Если счетчик дойдет до 2 и более, то винт поддерживает LBA режим. Иначе нет. Примерно так, сам не проверял.