Приветсвую всех, нужен сабж, по 0xEC в буффере размер винта не возвращается если верить ATA/ATAPI-6.. Есть ещё READ NATIVE MAX LBA думал то что нужно, возвращает бред, вобщем хелп.. Какой командой я могу получить размер ХДД в секторах?
Вернее канеш READ NATIVE MAX LBA возвращает почти то что нужно на на несколько Гб больше к примеру для 10 Гб винта - 15, для 80 Гб - 87...
Разуй глаза с 121 100-103 O V Maximum user LBA for 48-bit Address feature set. нормально все возвращается вот вики почитай http://wiki.osdev.ru/index.php/HDD
я бы канеш и разул, а толку? В буффере по нолям один чёрт, если девайсина о 48 битных адресах даже не знает.
Кстати винт как я понял нормально будет вопринимать 5в. уровни к примеру если я его к АТмеге подцеплю, касательно стробов DIOR/DIOW он регистр защёлкивает по спаду или по фронту?.. И ещё после подачи питалово на винт нужно ли его как нить инициализировать или сходу можно выбирать регистры и засылать комманды?
int_13h Возьми ATA-1 там это както проще расписанно и понятнее. Хотя винты старши ATA/ATAPI-4 не совместимы с ATA-1,2,3. 6.3.6 DIOR- (Drive I/O read) This is the Read strobe signal. The falling edge of DIOR- enables data from a register or the data port of the drive onto the host data bus, DD0-DD7 or DD0-DD15. The rising edge of DIOR- latches data at the host. 6.3.7 DIOW- (Drive I/O write) This is the Write strobe signal. The rising edge of DIOW- clocks data from the host data bus, DD0-DD7 or DD0-DD15, into a register or the data port of the drive. Поповоду инициализации не скажу. Вроде как есть или она автоматом стартует. Но время инициализации насколько я знаю может состовлять от нескольких секунд до минуты.
Pavia ага гляну первую ату, кстати бивис никто не реверсил?.. интересно как он определяет размер диска и показывает не 15 а 10 Гб как и положано, IDENTIFY DEVICE он дёргает в любом случае, или может по 0xEC есть какие то недокументированные структуры в буффере ибо READ NATIVE MAX ADDRESS не понял как юзать... кол-во секторов*512/(1024*1024*1024)=больше чем надо
int_13h Может ты в CHS запрашиваешь, а думаешь что LBA? У меня функция все нормально выдавала. Тут вспомнил что число секторов лежит в IDENTIFY DEVICE слова 60-61 M F Total number of user addressable sectors Биос не реверсел. Есть же исходники. .