Uptill теперь я использовал жесткий диск IDE и смог получить доступ, используя вызовы BIOS, и даже прямое аппаратное обеспечение LBA 28, использующее режим PIO без необходимости использования O.S. вызов. Теперь я купил новый жесткий диск SATA 500 ГБ, и это мой единственный жесткий диск, подключенный к порту SATA 1. Мой BIOS показывает его как 3-й мастер-жесткий диск, а первичный и вторичный мастер отсутствуют. Теперь я установил MS DOS 5.0 на первый раздел, который работает нормально. Но теперь я могу использовать только DOS INT 25h TO READ HARD DISK, начиная с логического сектора 0. Это означает, что я не могу читать какие-либо скрытые сектора, включая главную загрузочную запись. Когда я использую вызовы BIOS int 13H для чтения жесткого диска с помощью накопителя 80H, он не возвращает никаких ошибок, но ничего не читает. Если я использую диск 83H, он дает диск не существует ошибки. Если я использую функции DOS, я могу получить доступ к своему жесткому диску как диск c (диск 2). Но нельзя использовать для чтения MBR. Если я буду использовать расширение MS для int 13H, я должен знать, что диск BIOS отсутствует. Может ли кто-нибудь сказать мне, как найти диск нет. 3-го основного жесткого диска? Или какой порт я должен использовать для доступа к жесткому диску с использованием LBA 40 (01f0 не работает) в режиме совместимости?Как узнать диск Bios. для третьего жесткого диска SATA?
-1
A
ответ
0
Ralf Brown's Interrupt List рекомендует закреплять INT 13h и вызов INT 25h, чтобы увидеть, что в BIOS использует номер диска MS-DOS:
Способ для обнаружения фактических назначений номеров логических дисков блоков физических BIOS, привода (например, к обнаружение загрузочного диска), - временно подключить обработчик INT 13h, который записывает используемый блок DL для любых операций чтения INT 13/AH = 02h и отбрасывает любые попытки доступа к фактическим флоппи-дискам. Затем вызовите INT 25h для всех соответствующих DOS-приводов и посмотрите результаты, записанные перехватчиком INT 13h.
Большое спасибо. Фактически я обнаружил, что мой физический диск показан только на 80H, Моя программа читала секторы нет. 0 вместо сектора нет. Это была глупая ошибка. – user1445268