Проверка состава оборудования
В программе, предназначенной для тиражирования, очень важной характеристикой является переносимость. Поскольку ПЭВМ разных пользователей могут иметь существенные отличия в конфигурации оборудования, важно, чтобы программа при ее запуске могла "произвести рекогносцировку" - проанализировать состав оборудования и выбрать ту ветвь своего алгоритма, которая обеспечивает функционирование на данном составе, или выдать отказ, если конфигурация не соответствует спецификациям.
К действиям по рекогносцировке относятся:
- определение типа ПЭВМ;
- определение конфигурации подключенных внешних устройств;
- определение объема ОЗУ;
- определение версии DOS (хотя последняя проверка и не связана с оборудованием, логически ее место здесь).
Тип ПЭВМ
В конце ПЗУ BIOS по адресу FF00:0FFE записан байт типа ПЭВМ. Специфицированы следующие 4 значения этого байта для машин фирмы IBM: 0xFF - IBM PC; 0xFE - XT; 0xFD - PCjr; 0xFC - AT. Для ПЭВМ других производителей все наши эксперименты давали один из этих кодов в соответствии с классом компьютера, однако, стопроцентной гарантии этого дать нельзя.
Кроме того, 8 байт ПЗУ начиная с адреса 0xFF00:0x0FF5, содержат дату выпуска данной версии BIOS в символьном виде, например: 01/01/84. Эта информация может быть полезна только для пользователей продукции IBM, в условиях же калейдоскопа фирм-производителей пользу из этих данных извлечь трудно (мы встречали даже ПЭВМ, в которых дата выпуска BIOS отсутствовала вообще). Приведенная ниже программа извлекает из ПЗУ тип ПЭВМ и дату выпуска BIOS (пример 2.).
|
|
Состав оборудования
Опеределять состав оборудования следует только после того, как мы определили тип ПЭВМ. Это обусловлено тем, что способы получения информации о составе оборудования различны для XT и для AT. Рассмотрим сначала машины класса XT.
Состав оборудования XT (и PC) определяется положением переключателей на специальных колодках. Состояние этих переключателей может быть прочитано из программы обращением к порту 0x60. Но необходимости в этом нет - эту операцию выполняет BIOS при инициализации системы. На основании этой информации BIOS формирует так называемый список оборудования - 2-байтное слово по адресу 0040:0010. Прочитать это слово можно либо обратившись по указанному адресу, либо обратившись к BIOS через прерывание 0x11. Назначения разрядов списка оборудования следующие:
|
|
0 | - установлен в 1, если есть НГМД (см.разряды 6, 7); |
1 | - установлен в 1, если есть сопроцессор; |
2,3 | - число 16-Кбайтных блоков ОЗУ на системной плате; |
4,5 | - код видеоадаптера: 11 - MDA, 10 - CGA, 80 колонок, 01 - CGA, 40 колонок, 00 - другой; |
6,7 | - число НГМД-1 (если в разряде 0 единица); |
8 | - 0, если установлен канал ПДП; |
9,10,11 | - число последовательных портов RS-232; |
12 | - 1, если установлен джойстик; |
13 | - 1, если установлен последовательный принтер; |
14,15 | - число параллельных принтеров. |
Для XT и AT биты 8 и 13 всегда будут нулевыми.
Ниже приведен пример получения и интерпретации списка оборудования.
Дата добавления: 2019-09-13; просмотров: 222; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!