При установке текстовых режимов работы видеоадаптеров BIOS загружает таблицы знакогенератора из ПЗУ во второй цветовой слой видеопамяти. Впоследствии эти таблицы используются для отображения символов на экране монитора.
Благодаря этому, можно легко заменить стандартную таблицу знакогенератора своей собственной. Эта особенность, широко применяется при русификации компьютеров. У видеоадаптера CGA таблицы знакогенератора расположены в ПЗУ, поэтому изменить образы символов текстового режима нельзя.
Видеоадаптеры обеспечивают возможность одновременной загрузки в видеопамять нескольких различных таблиц знакогенератора. Видеоадаптер EGA позволяет загрузить четыре таблицы, а видеоадаптеры VGA и SVGA - восемь.
Каждая такая таблица знакогенератора содержит описание 256 символов. Активными могут быть одна или две таблицы знакогенератора. Это дает возможность одновременно отображать на экране до 512 различных символов.
Один бит из байта атрибутов указывает, какая из двух активных таблиц знакогенератора используется при отображении данного символа. Номера активных таблиц знакогенератора определяются регистром выбора знакогенератора. Этот регистр будет описан ниже.
Рисунок 3.6 иллюстрирует использование двух таблиц знакогенератора. В верхней части рисунка символ, имеющий код ASCII 31h, отображается на экране при помощи первой таблицы знакогенератора. В нижней части рисунка символ с тем же кодом ASCII отображается при помощи третей таблицы знакогенератора, и имеет другую форму.
PICTURE._FIG_23.PCX;6";4.308";PCX
Рисунок 3.6 Активные таблицы знакогенераторов
Видеоадаптер EGA поддерживает два размера для матриц символов - стандартный и улучшенный. Стандартный размер составляет 8 пикселов в ширину и 8 пикселов в высоту, а улучшенный - 8 пикселов в ширину и 14 пикселов в высоту. Один из этих наборов символов автоматически загружается BIOS в видеопамять при выборе текстового режима. Так как адаптеры VGA и SVGA имеют большую разрешающую способность, то их набор символов имеет в ширину 9 пикселов, а в высоту - 16.
Первая таблица знакогенератора |
Вторая таблица знакогенератора |
Символ ASCII 0 0000h-001Fh |
Символ ASCII 0 2000h-201Fh |
Символ ASCII 1 0020h-003Fh |
Символ ASCII 1 2020h-203Fh |
Символ ASCII 2 0040h-005Fh |
Символ ASCII 2 2040h-205Fh |
... ... |
... ... |
Символ ASCII 255 1FE0h-1FFFh |
Символ ASCII 255 3FE0h-3FFFh |
Третья таблица знакогенератора |
Четвертая таблица знакогенератора |
Символ ASCII 0 4000h-401Fh |
Символ ASCII 0 6000h-601Fh |
Символ ASCII 1 4020h-403Fh |
Символ ASCII 1 6020h-603Fh |
Символ ASCII 2 4040h-405Fh |
Символ ASCII 2 6040h-605Fh |
... ... |
... ... |
Символ ASCII 255 5FE0h-1FFFh |
Символ ASCII 255 7FE0h-7FFFh |
Пятая таблица знакогенератора (только VGA) |
Шестая таблица знакогенератора (только VGA) |
Символ ASCII 0 8000h-801Fh |
Символ ASCII 0 A000h-A01Fh |
Символ ASCII 1 8020h-803Fh |
Символ ASCII 1 A020h-A03Fh |
Символ ASCII 2 8040h-805Fh |
Символ ASCII 2 A040h-A05Fh |
... ... |
... ... |
Символ ASCII 255 9FE0h-9FFFh |
Символ ASCII 255 BFE0h-BFFFh |
Седьмая таблица знакогенератора (только VGA) |
Восьмая таблица знакогенератора (только VGA) |
Символ ASCII 0 C000h-C01Fh |
Символ ASCII 0 E000h-E01Fh |
Символ ASCII 1 C020h-C03Fh |
Символ ASCII 1 E020h-E03Fh |
Символ ASCII 2 C040h-C05Fh |
Символ ASCII 2 E040h-E05Fh |
... ... |
... ... |
Символ ASCII 255 DFE0h-DFFFh |
Символ ASCII 255 FFE0h-FFFFh |