BIOS (Basic Input/Output System) видеоадаптера.
BIOS (Basic Input/Output System) видеоадаптера располагается в видео-ПЗУ (Video ROM), кроме него там находятся экранные шрифты, служебные таблицы и т.п.
BIOS не используется видеоконтроллером напрямую. К BIOS обращается только центральный процессор, и в результате выполнения им программ BIOS, происходят обращения к видеоконтроллеру и видеопамяти. На многих современных видеоадаптерах устанавливаются перепрограммируемые посредством электричества видео-ПЗУ (EEPROM, Flash ROM), допускающие обновление BIOS видеоадаптера пользователем с помощью специальной программы из комплекта видеоадаптера.
Дисплейный адаптер, как обязательный компонент персонального компьютера, имеет поддержку основных функций в BIOS. Эти функции выполняются через вызов программного прерывания INT 10h - видеосервиса BIOS. Видеосервис позволяет установить видеорежим (BIOS Video Mode), определяющий формат экрана. Первоначально для задания номера режима отводился один байт, и режим устанавливался параметром функции “0h” INT 10h (АН=0, AL=Mode). Режимы 0-13h являются стандартными для адаптеров MDA, CGA, EGA, VGA. Режимы 14h-7Fh используются с нестандартными VGA- или SVGA-расширениями BIOS, они специфичны для конкретных моделей графических адаптеров. Позже появилось стандартизованное расширение функций видеосервиса VBE (VESA BIOS Extensions) для адаптеров VGA, SVGA и были определены новые видеорежимы с двухбайтными номерами старше 100h. Эти режимы устанавливаются параметром функции “4F02h” INT 10h (AX=4F02h, BX=VMode).
В пределах возможностей установленного видеорежима видеосервис предоставляет возможности отображения информации на различных уровнях качества. Простейший для программиста телетайпный режим позволяет посылать поток символов, которые будут построчно отображаться на экране с отработкой символов возврата каретки, перевода строки, обеспечивая «прокрутку» изображения при заполнении экрана. Есть функции и для полноэкранной работы с текстом, при которой доступны и атрибуты символа. В графическом режиме имеется возможность чтения и записи пиксела с указанными координатами.
Однако видеосервисом INT 10h программисты пользуются далеко не всегда, поскольку работает он довольно медленно. Существенно ускорить работу видеосервиса позволяет затенение области ROM BIOS, хранящей программный код драйверов (Video BIOS Shadowing). Однако самым быстрым способом построения видеоизображений, будет прямая работа с видеопамятью или непосредственное общение с акселератором графического контроллера.
Так что у программиста (и пользователя) обычно есть выбор - от медленной работы, не задумываясь об архитектуре конкретного дисплейного адаптера, до быстрой работы с конкретной моделью адаптера. Во втором варианте расплатой за скорость будет забота о разработке драйверов для всех (или хотя бы популярных) моделей графических адаптеров. Архитектура допускает установку до двух графических адаптеров с раздельными мониторами. Аппаратного конфликта ресурсов не будет, если один из адаптеров - MDA или HGC, а другой - CGA, EGA или VGA. При этом оба адаптера будут поддерживаться функциями видеосервиса. Двойные графические системы используются довольно редко. Пакеты САПР, для которых такое разделение может быть эффективным, работают с адаптерами через собственные драйверы. Графические адаптеры класса SVGA, поддерживающие РnР, могут обеспечивать перемещение адресов требуемых системных ресурсов, и, следовательно, в системе может присутствовать несколько таких адаптеров. Существуют также и многоканальные графические карты, которые содержат несколько независимых однотипных графических адаптеров. Такие карты применяют в многотерминальных компьютерах на базе PC.
Таблица 1. Функции видеосервиса BIOS INT 10h
Функция |
Название |
Стандартные (базовые) функции |
|
00h |
Установка видеорежима |
01h |
Установка размера и формы курсора |
02h |
Установка позиции курсора |
03h |
Чтение позиции курсора |
04h |
Чтение светового пера |
05h |
Выбор активной видеостраницы |
06h |
Прокрутка (очистка) в окне вверх |
07h |
Прокрутка в окне вниз |
08h |
Чтение символа и атрибута |
09h |
Запись символа и атрибута |
0Ah |
Запись символа |
0Bh |
Выбор палитры и бордюра |
0Ch |
Запись графического пиксела |
0Dh |
Чтение графического пиксела |
0Eh |
Вывод в телетайпном режиме |
0Fh |
Чтение видеорежима |
Расширенные функции для адаптеров EGA и VGA |
|
10h |
Установка палитры (EGA, VGA) |
11h |
Знакогенератор (EGA, VGA) |
12h |
Специальные функции (EGA, VGA) |
12h |
Вывод строки (EGA, VGA) |
14h-15h |
Функции LCD-дисплея (PC Convertable) |
1Ah |
Чтение/установка кодов активного и дополнительного дисплеев (VGA) |
1Bh |
Чтение блока данных состояния и возможностей видеосистемы (VGA) |
1Ch |
Сохранение и восстановление состояния видеосистемы (VGA) |
Графические функции SVGA VBE (VESA BIOS Extensions):
|
|
4F00h |
Проверка наличия поддержки VBE |
4F01h |
Информация о режимах VBE |
4F02h |
Установка видеорежимов VBE |
4F03h |
Информация о текущем видеорежиме VBE |
4F04h |
Сохранение и восстановление состояния видеосистемы SVGA |
4F05h |
Определение окна видеопамяти SVGA |
4F06h |
Установка/чтение длины строки |
4F07h |
Установка/чтение начала экрана |
4F08h |
Установка/чтение формата палитр DAC |
4F09h |
Установка/чтение регистров палитр (RAMDAC) |
4F0Ah |
Интерфейс VBE защищенного режима |
Функции дополнительной поддержки VBE |
|
4F10h |
Управление энергопотреблением |
4F11h |
Интерфейс плоских экранных панелей (Flat Panel Interface Extensions — FP) |
4F12h |
Расширение интерфейса курсора |
4F13h |
Расширение аудиоинтерфейса |
4F14h |
Расширение по усмотрению производителя |
4F15h |
Канал связи с монитором (DDC) |
4F16h |
Конфигурирование графической системы |