Операционная система MS DOS (том 2)


Характеристики дисководов - часть 2


то наш компьютер не имеет НМД - это одна из разновидностей IBM PC. Значения 0xfe, 0xfb могут соответствовать IBM XT и совместимым с ним машинам. Такие машины могут быть оборудованы НМД. И, наконец, значение 0xfc соответствует IBM AT. Для этой машины конфигурация дисковой подсистемы должна определяться исходя из содержимого КМОП-памяти.

Следует заметить, что новые модели компьютеров могут иметь другие, не перечисленные выше, коды идентификации.

Прерывание BIOS INT11h возвращает в регистре AX

байт конфигурации системы, который можно использовать для определения количества НГМД и наличия НМД. Самый младший бит байта конфигурации - бит 0 - содержит признак наличия в системе НМД. Если этот бит установлен в 1, то НМД присутствует в системе, иначе дисковая подсистема состоит только из накопителей на гибких магнитных дисках.

Биты 7 и 6 содержат информацию о количестве флоппи-дисков:

Содержимое битов 7 и 6 Количество установленных флоппи-дисков
00 1
01 2
10 3
11 4

Это прерывание лучше всего использовать для машин XT и PC. Для машин AT необходимо исследовать содержимое КМОП-памяти. Займемся этим.

КМОП-память не адресуема непосредственно из программы, как обычная оперативная память. Для работы с ней необходимо использовать команды ввода/вывода в порты с адресами 70h и 71h. Перед началом операции чтения/записи в порт 70h

надо записать адрес для КМОП-памяти (0...3Fh). Затем из порта 71h можно прочитать содержимое требуемой ячейки КМОП-памяти или записать в этот порт байт, который будет записан в КМОП-память.

Приведем фрагмент программы, составленной на языке ассемблера, который считывает байт из КМОП-памяти с адресом 12h:

mov al,12h out 70h,al ; задаем адрес в КМОП-памяти jmp $+2 ; небольшая задержка in al,71h ; записываем в AL считанное значение

Запись в КМОП-память выполняется аналогично.

При анализе конфигурации дисковой подсистемы для нас представляют наибольший интерес ячейки КМОП-памяти со следующими адресами:

14h - байт конфигурации




- Начало -  - Назад -  - Вперед -