|
Ресурсы BIOS
Программы,
находящиеся в BIOS, используют ряд ресурсов компьютера для хранения данных,
полученных в ходе инициализации оборудования, тестирования и для работы служебных
подпрограмм. На рис. показано распределение оперативной памяти компьютера
PC.
Наиболее важная
служебная зона адресов размером в 1 Кбайт начинается с нулевого адреса. В ней
находятся векторы аппаратных и программных прерываний, с которыми работают процессор
и программное обеспечение. Сами векторы представляют собой инструкцию безусловного
перехода на подпрограмму обработки прерывания. Каждый вектор занимает
4 байта, соответственно, всего может быть всего 256 прерываний.
С прерываниями
связана одна из проблем персональных компьютеров, которая осложняет жизнь системным
программистам. Дело в том, что зону векторов, расположенную с нулевого адреса,
используют как сами процессоры семейства х8б, так и различные устройства компьютера,
в чем виноваты разработчики IBM PC. Вначале это не особенно осложняло жизнь
программистам, поскольку у процессора было не так много аппаратных прерываний,
но в дальнейшем, по мере совершенствования процессоров, 256 векторов стало маловато.
Ниже, только
для иллюстрации использования таблицы векторов приведено назначение нескольких
прерываний компьютера IBM PC AT (для современных процессоров назначение ряда
векторов несколько иное):
- INT 00h — деление на
0;
- INT 01h — пошаговый
режим;
- INT 02h — немаскируемое
прерывание;
- ТХТТ ATI INT ОЗп — точка
останова;
- INT 04h — переполнение;
- INT 08h — таймер;
- INT 09h — клавиатура;
- INT 33h — поддержка
мыши;
- INT 4Ah — будильник
пользователя.
После зоны
векторов прерываний идет область, называемая BIOS Data Area, где размещаются
данные, полученные в ходе тестирования оборудования, буфера системных устройств,
например буфер клавиатуры, и различные служебные регистры. Эта область данных
имеет размер не менее 256 байтов и начинается с адреса 0000:0400h или 0040:0000h.
Назначение наиболее интересных для пользователя зон в области BIOS Data Area
приведено в табл.
Назначение ячеек BIOS Data Area
|
|
|
|
|
|
|
|
|
|
|
|
|
Базовые адреса
портов СОМ 1— COM4
|
|
|
|
|
Базовые адреса
портов LPT1— LPT3
|
|
|
|
|
Установленное
оборудование Область флагов и буфер клавиатуры
|
|
|
|
|
|
|
|
|
|
Ширина экрана
(число колонок символов)
|
|
|
|
|
Позиция курсора
(младшая половина — колонка, старшая — ряд)
|
|
|
|
|
Размер курсора
(в младшем байте — последняя строка, в старшем — первая)
|
|
|
|
|
|
|
|
|
|
|
|
Для работы
с видеоадаптером BIOS использует область видеопамяти, расположенную выше 640
Кбайт. Видеопамять занимает 128 Кбайт, начиная с адреса A0000h и до C0000h,
но для конкретного режима работы видеоадаптера (монитора) используется строго
определенная часть памяти. Например, в текстовом режиме могут использоваться
только 4 Кбайт
|
|