Текстовый режим.
В символьном, или текстовом, режиме формирование изображения происходит иначе. В текстовом режиме ячейка видеопамяти хранит информацию о символе, занимающем на экране знакоместо определенного формата.
Знакоместо представляет собой матрицу точек, в которой может быть отображен один из символов определенного набора. Здесь умышленно применяется слово «точка», а не «пиксель», поскольку пиксель является сознательно используемым элементом изображения, в то время как точки разложения символа, в общем случае, программиста не интересуют.
В ячейке видеопамяти хранится код символа, определяющий его индекс в таблице символов, и атрибуты символа, определяющие вид его отображения. К атрибутам относится цвет фона, цвет символа, инверсия, мигание и подчеркивание символа.
В текстовом режиме экран организуется в виде матрицы знакомест, образованной горизонтальными линиями LIN (Line) и вертикальными колонками COL (Column). Этой матрице соответствует аналогичным образом организованная видеопамять. Адаптер, работающий в текстовом режиме, имеет дополнительный блок — знакогенератор. Во время сканирования экрана выборка данных из очередной ячейки видеопамяти происходит при подходе к соответствующему знакоместу (рис. 3.5), причем одна и та же ячейка видеопамяти будет выбираться при проходе по всем строкам растра, образующим линию знакомест. Считанные данные попадают в знакогенератор, который вырабатывает построчную развертку соответствующего символа — его изображение на экране.
Знакогенератор представляет собой запоминающее устройство — ОЗУ или ПЗУ. На его старшие адресные входы поступает код текущего символа из "видеопамяти, а на младшие — номер текущей строки в отображаемой линии знакомест. Выходные данные содержат побитную развертку текущей строки разложения символа (в графическом режиме эти данные поступали из видеопамяти). Необходимый объем памяти знакогенератора определяется форматом знакоместа и количеством отображаемых символов. Самый «скромный» знакогенератор имеет формат знакоместа 8х8 точек, причем для алфавитно-цифровых символов туда же входят и межсимвольные зазоры, необходимые для читаемости текста. Лучшую читаемость имеют матрицы 9 х14и9х16 символов. Если знакогенератор выполнен на микросхеме ПЗУ, то набор отображаемых символов оказывается жестко фиксированным (в лучшем случае переключаемым, для чего может использоваться несколько выбираемых банков памяти знакогенератора). Для знакогенераторов на ПЗУ изменение таблицы символов (например, русификация) становится сложным делом.
Каждому знакоместу в видеопамяти, кроме кода символа, соответствует еще и поле атрибутов, обычно имеющее размер 1 байт. Этого вполне достаточно, чтобы задать цвет и интенсивность воспроизведения символа и его фона. Для монохромных мониторов, допускающих всего три градации яркости, атрибуты можно трактовать иначе: подчеркивание, инверсия, повышенная интенсивность и мигание символов в разных сочетаниях. Поскольку в текстовом режиме в адаптер передаются только коды символов, заполнение всего экрана займет в десятки раз меньше времени, чем построение того же изображения в графическом режиме. Интеллектуальные адаптеры позволяют выводить символы и в графическом режиме. При этом адаптер получает только команду с указанием координат отображаемых символов и сам поток кодов символов, после чего быстро строит их изображение, не используя центральный процессор.