Дисплейный адаптер, как обязательный компонент PC, имеет поддержку основных функций в BIOS.
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). Однако самым быстрым способом построения видеоизображений, будет прямая работа с видеопамятью или непосредственное общение с акселератором графического контроллера.
Таблица 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 |
Конфигурирование графической системы |