Интегральной характеристикой особенностей работы адаптера является совокупность поддерживаемых им режимов. Режимы работы видеоадаптера, или видеорежимы, представляют собой совокупность параметров, обеспечиваемых видеоадаптером: разрешение, цветовая палитра, частоты строчной и кадровой развертки, способ адресации участков экрана и др.
Поведение адаптера в том или ином режиме является фактическим стандартом и полностью характеризует все особенности адаптера. Режимы принято нумеровать, начиная с нуля. Чем совершеннее видеоадаптер, тем больше режимов он поддерживает. Как правило, более совершенные адаптеры полностью совместимы со своими "младшими братьями. При всем многообразии режимов работы видеоадаптеров существуют два основных режима вывода информации — графический и текстовый. Причем в различных режимах видеоадаптера используются разные механизмы формирования видеосигнала, а монитор в обоих режимах работает одинаково. Переключение из текстового режима в графический и наоборот означает полное изменение логики работы видеоадаптера с видеобуфером.
Текстовый режим
Текстовые режимы различают по разрешению (числу отображаемых символов по горизонтали и вертикали) и цветовой палитре (возможен монохромный или 16-цветный режим).
При включении компьютера видеоконтроллер обычно начинает работу с текстового 16-цветного режима с разрешением 80x25 символов (код режима 03h). В этом режиме для работы с видеопамятью выделено окно размером 32 Кбайт в первом мегабайте адресного пространства процессора (начальный линейный адрес окна B8000h).
Текстовый режим до сих пор широко применяется, так как для решения многих задач он является вполне достаточным, отличается простотой, надежностью и невысокими требованиями к аппаратуре компьютера. Основные операции в текстовом режиме: вывод символов, управление курсором и загрузка шрифта.
В текстовом режиме экран монитора разбивается на отдельные символьные позиции, в каждой из которых может выводиться только один символ.
Если видеоадаптер включен в текстовый режим, он "рассматривает" экран как совокупность так называемых текселов. При выводе текста различные видеосистемы работают одинаково. Каждому знакоместу экрана в текстовом режиме соответствуют два байта памяти видеобуфера, т.е., для экрана отводится 4000 байт (25 строк х 80 строк). Байт по четному адресу хранит ASCII-код символа, а следующий за ним байт по нечетному адресу кодирует особенности отображения символа на экране: цвет пикселей, из которых формируется очертание символа, цвет всех остальных пикселей знакоместа или цвет фона символа, мерцание символа и необходимость повышения яркости символа при отображении. Этот байт называется байтом атрибута.
Закрепление битов байта атрибута приведено на рисунке.
Видеопамять текстового режима находится по адресу B800h:0000h. Видеопамять адаптера при работе в текстовых режимах доступна для непосредственного доступа из программы. Это значит, что любая ячейка видеобуфера может быть прочитана программой так же, как и обычная ячейка оперативной памяти. И как в обычную ячейку памяти, в видеобуфер возможна запись значений из программы. Придавая различные числовые значения байту атрибута и, помещая их в видеобуфер, можно управлять цветом символов и их фона.
Для преобразования кодов символов, хранимых в видеопамяти адаптера, в точечные изображения на экране служит таблица знакогенератора. Она задает карту, по которой видеоадаптер "расставляет" пиксели для изображения того или иного символа. Число строк и столбцов пикселей в этой карте различно для различных типов видеоадаптеров. Обычно таблица знакогенератора представляет собой ПЗУ, где хранятся изображения символов, "разложенные" по строкам. Байт символа служит индексом для входа в таблицу знакогенератора. При получении кода символа знакогенератор формирует на своем выходе соответствующий двоичный код, который затем преобразуется в видеосигнал.