Как из программы на ассемблере перечислить имена(модель) жестких дисков установленных в системе из DOS ? Например, когда я захожу в BIOS Setup я вижу: Maxtor 30768H1.
Работай напрямую с портами ЖД. Сначала выбери нужный тебе диск. Код (Text): mov dx, 1F6h ;Порт выбора диска и головки mov al, 0A0h ;Диск 0, головка 0 out dx, al Потом посылай команду идентификации ЖД(0ECh). Код (Text): mov dx, 1F7h ;Коммандный порт mov al, EXh out dx,al Прочитать "паспорт" диска. Код (Text): oogle: in al,dx test al,8 ; дождаться готовности секторного буфера jz oogle mov cx,512/2 ;Размер сектора /2 mov si,offset buffer mov dx,1f0h ;Порт данных - данные приходят/уходят отсюда. rep outsw ;Послать в порт. Выполнить операцию. Теперь в buffer у тебя информация о ЖД. Байты 54-92 - модель диска.
Большое спасибо, это то что надо! Подскажи, где можно по этой теме почитать. Интерфейс работы с жестким диском, наверно, должен быть описан в какой-нибудь спецификации или стандарте...
В книгах: Кулаков. Программирование на аппаратном уровне. Ю.С.Лукач, А.Е.Сибиряков "А Р Х И Т Е К Т У Р А В В О Д А - В Ы В О Д А П Е Р С О Н А Л Ь Н Ы Х Э В М I B M P C" Михаил Гук - Аппаратные интерфейсы ПК Михаил Гук - Интерфейсы ПК. Справочник. Морозов и Тарахтелюк "Винчестеры IDE AT, их диагностика и ремонт." Также у Гука или Кулакова есть AFAIK книга отдельно по дисковой подсистеме Отдельные доки: www.t13.org "Описание поpтов винчестеpа" http://rusdoc.df.ru Это доки которые есть у меня, скорее всего их гораздо больше.