Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Кодирование данных в графических режимах




В графических режимах каждый блок видеопамяти описывает один пиксел, причем размер блока определяется количеством отображаемых цветов (или градаций серого цвета). Например, в монохромных (двухцветных) режимах №6 и 11h для описания пиксела достаточно одного бита, в 4-цветных режимах №4, №5 и 0Fh – двух битов, в 16-цветных режимах №0D, №0E, №10h и №12h – четырех битов, а в 256-цветном режиме №13h для описания пиксела потребуется один байт.

Таким образом, одним байтом видеопамяти может быть описано от 1 до 8 пикселов, причем старшие биты байта отвечают за «левые» пикселы, а младшие – за «правые». Например, цвет левого верхнего пиксела экрана кодируется: в режимах №6 и 11h - старшим битом, в режимах №4 и №5 - двумя старшими битами, а в режиме №13h – всеми восемью битами нулевого байта видеостраницы.

Размер видеостраницы определяется разрешающей способностью (количеством пикселов на экране) и размером блока, описывающего один пиксел. Например, в режимах №4 и №5[12] (4 цвета, разрешение 320 х 200) и в режиме №6 (2 цвета, разрешение 640 х 200) для одной видеостраницы потребуется 16000 байт (фактически – 16 Кб). В этих режимах объема видеопамяти достаточно для размещения двух страниц, однако адаптеры CGA, EGA и VGA поддерживают в этих режимах одну страницу с начальным адресом B800:0000. В режиме №13h (256 цветов, разрешение 320 х 200) одна страница занимает 64 Кбайт, то есть целый банк видеопамяти, располагающийся с адреса A000:0000.

Знакогенераторы

Знакогенератор (или таблица знакогенератора) – это специальная структура данных, описывающая растровое (точечное) изображение символа и используемая видеоадаптером для преобразования ASCII-кода символа в последовательность сигналов, управляющих состоянием пикселов.

Графический образ каждого символа описывается битовой матрицей, размерность которой определяется разрешающей способностью видеосистемы и различна для разных видеоадаптеров (CGA – 8х8, EGA – 8х8 и 8х14, VGA – 9х16). Каждый узел матрицы описывается одним битом, при этом единичное значение бита соответствует активному (светлому) пикселу, а нулевое – пассивному (темному).

Следующий рисунок иллюстрирует описание графического образа символа «А» для видеоадаптера CGA.

Образ символа Коды строки матрицы
                0000 0000 00h
        n n n   0000 1110 0Eh
      n     n   0001 0010 12h
    n       n   0010 0010 22h
    n n n n n   0011 1110 3Eh
    n       n   0010 0010 22h
    n       n   0010 0010 22h
    n       n   0010 0010 22h

Рисунок 3.2 - Описание символа битовой матрицей 8х8

Как видно из рисунка, для описания одного символа матрицей 8х8 требуется блок памяти размером в 8 байтов – по одному байту на каждую строку матрицы. Так, символ «А» будет описан следующей последовательностью байтов: 00h, 0Eh, 12h, 22h, 3Eh, 22h, 22, 22h.

При использовании матрицы 8х14 (EGA) для описания одного символа достаточно 14 последовательных байтов, а при использовании матрицы 9х16 (VGA) – 16 байтов (по одному байту на строку матрицы)[13].

В таблице знакогенератора блоки описаний символов расположены в порядке возрастания их ASCII-кодов. При этом адрес блока (смещение относительно начала таблицы знакогенератора) может быть вычислен по формуле: m * <Код символа>, где m – число байтов, отводимых для описания одного символа.

Видеоадаптер CGA хранит таблицу знакогенератора, используемую в текстовых режимах, во внутреннем ПЗУ, расположенном вне адресного пространства центрального процессора. Эта таблица описывает стандартные символы с кодами ASCII от 0 до 255, не содержит символов кириллицы и недоступна прикладным программам ни для чтения, ни для записи. Единственной возможностью изменения образа символов в текстовых режимах CGA является перепрограммирование ПЗУ видеоадаптера. В графических режимах CGA доступна таблица знакогенератора для символов с кодами от 127 до 255, расположенная в области ROM BIOS. Указателем на начало этой таблицы является вектор прерывания 1Fh, что используется программами – русификаторами, которые формируют битовые матрицы для каждого символа, записывают их в определенную область ОЗУ и соответственно переустанавливают вектор прерывания 1Fh.

Таблицы знакогенераторов EGA / VGA для символов с кодами от 0 до 255 хранятся в ROM BIOS и доступны по вектору прерывания 43h. EGA поддерживает 4 различных таблицы, а VGA – 8 таблиц, при этом одновременно могут быть активны две любые таблицы, что позволяет отображать на экране до 512 различных символов[14].

Таблицы знакогенератора автоматически загружаются в видеопамять (во второй «цветовой слой») при выборе любого из текстовых режимов, что позволяет программно заменить стандартную таблицу знакогенератора своей собственной. BIOS EGA/VGA содержит специальную функцию, управляющую загрузкой шрифтов (функция 11h прерывания 10h).

Лабораторная работа №6





Поделиться с друзьями:


Дата добавления: 2015-11-05; Мы поможем в написании ваших работ!; просмотров: 593 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

2486 - | 2163 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.006 с.