|
Для более
сложных процедур обычно требуются законченные интерфейсные
подпрограммы на ассемблере, которые могут загружаться из
Бейсика процедурой BLOAD).
Следующая из дополнительных процедур системы BIOS -
процедура вывода списка оборудования, которая вызывается с
помощью прерывания номер 17, шестнадцатеричное значение 11.
При первом включении IBM/PC процедуры запуска и самопроверки
проверяют, какое оборудование подключено к IBM/PC (в
основном, проверка сводится к считыванию позиций
переключателей, установленных на системной плате IBM/PC; эти
переключатели должны выставляться определенным образом в
зависимости от состава подключенного оборудования. Такой
метод не слишком точен, поскольку переключатели могут быть
выставлены неправильно).
Ваши программы могут выяснить конфигурацию системы,
запрашивая прерывание 17. При выполнении процедуры
обслуживания этого прерывания не производится ни новая
проверка состава оборудования, ни повторное считывание
положений переключателей. Происходит всего лишь пересылка
двух байтов, содержащих код конфигурации системы, вызывающей
программы в регистрах AH и AL.
Ниже приведена таблица кодов оборудования:
Регистр Бит Значение
_______ ___ ________
AH 1-2 число адаптеров устройства печати
(от 0 до 3)
AH 3 не используется
AH 4 игровой адаптер подключен или нет
AH 5-7 число адаптеров связи (от 0 до 7)
AH 8 не используется
AL 1-2 число дисководо в без единицы
(если установлен 8-ой бит)
AL 3-4 начальный видеорежим (см.таблицу
ниже)
AL 5-6 объем памяти на системной плате
(см.таблицу ниже)
AL 7 не используется
AL 8 дисководы подключены (если да, см.
1 и 2 биты)
Заметим, что число дисководов, задаваемое первыми двумя
битами AL, копируется числом, на единицу меньше
действительного числа, так что значение 00 соответствует
одному дисководу, 01 - двум и так далее. С помощью такой
схемы кодирования указывается наличие до 4-х дисководов.
Восьмой бит указывает, имеются ли вообще дисководы в системе.
Если этот бит установлен, то используются бва бита счетчика.
Проще было бы использовать три бита для кодирования числа
дисководов, что позволило бы задавать числа от 0 до 7.
Следующая таблица поясняет значения битов для начального
видеорежима:
Биты Значение
____ _____________________________________________
00 (не используется)
01 графический режим, 40 столбцов, черно-белое
изображение
10 графический режим, 80 столбцов, черно-белое
изображение
11 монохромный режим
Следующая таблица поясняет установку битов для кода
объема памяти на системной плате:
Бит Значение
___ ______________________
00 16К
01 32К
10 48К
11 64К
Ваши программы могут использовать эту информацию для
настройки своей работы на конфигурацию системы.
Следующая процедура сообщает, какой объем памяти
подключен к компьютеру. Имеется ввиду объем рабочей памяти,
включающий объем памяти на системной плате (сообщаемый
предыдущей процедурой) и дополнительные платы памяти. Для
ызова этой процедуры служит прерывание 18, шестнадцатиричное
значение 12, а значение, возвращаемое в регистре AX,
равняется числу блоков памяти размером 1К. Такой способ
позволяет определить полный объем памяти в один мегабайт.
Значение объема памяти не устанавливается прямой
проверкой, а берется из стандартной ячейки памяти. Это
позволяет программно изменять объем используемой памяти.
Одно из самых полезных средств для работы с IBM/PC с
большим объемом памяти (например, 512К) включает системную
программу, которая использует часть памяти как некий очень
быстрый накопитель на гибком диске, т.е. так называемый
элекронный диск .
|