- •2.2. Структура видеоадаптера.
- •2.3. Графические режимы работы видеоадаптера vga и организация видеопамяти.
- •Линейная организация видеопамяти.
- •Плоскостная организация видеопамяти.
- •2.4. Понятие палитры. Организация палитры ega, vga.
- •2.5. Видеостраницы.
- •2.7. Нестандартные режимы видеоадаптера vga.
- •2.8. Регистры контроллера элт.
- •Регистры синхронизатора.
- •2.10. Формирование изображения.
- •Постановка задачи и задания на лабораторную работу.
- •Задание 1.
- •Задание 2.
- •Приложение.
- •Int 10h ; средствами bios
- •ClearPage(0);
- •ClearPage(1);
- •PutPixel(I,1,I,0);
- •PutPixel(I,1,I,1);
- •DrawPenta(X,y,с,k,0); ; начальный пятиугольник
- •SetPage(Page);
- •DrawPenta(X,y,с,k,Page);
- •SetPage(Page); ; установка активной страницы
- •DrawPenta(...,1-Page); ; стирание предыдущ. Пятиуг.
- •; На скрытой странице, т.Е.
- •; Рисование черным цветом
- •Конец цикла
- •Asm ; возврат в текстовый режим
Плоскостная организация видеопамяти.
Для 16-цветных режимов (тиках как 0Dh, 0Eh, 10h и 12h) под каждый пиксел необходимо выделить 4 бита видеопамяти (24=16). Однако эти 4 бита выделяются н последовательно в одном байте, а разнесены в 4 разных блока (цветовые плоскости) видеопамяти.
Вся видеопамять карты (обычно для VGA - 256 Кб) делится на 4 равные части, называемые цветовыми плоскостями. Каждому пикселу ставится в соответствие по одному биту в каждой плоскости, причем все эти биты одинаково расположены относительно ее начала. Обычно эти плоскости представляют параллельно расположенными одна над другой, так что каждому пикселу соответствует 4 расположенных друг под другом бита. Все эти плоскости проектируются на один и тот же участок адресного пространства процессора, начиная с адреса А000:0000h.
При этом все операции чтения/записи видеопамяти определяются логикой карты, но для программиста существует возможность известного управления этой логикой (при работе одновременно сразу с 8 пикселами).
Для работы с пикселом необходимо определить адрес байта в видеопамяти, содержащий данный пиксел, и позицию пиксела внутри байта (поскольку один пиксел отображается на один бит в каждой плоскости, то байт соответствует сразу 8 пикселам).
Поскольку видеопамять под пикселы отводится последовательно слева направо и сверху вниз, то одна строка в 16-цветном режиме соответствует 80 байтам адреса (например, для режимов с разрешением 640 пикселов по горизонтали) и каждым 8 последовательным пикселам, начинающимися с позиции, кратной 8, соответствует один байт. Т.о. смещение байта от начала страницы видеопамяти и номер бита в нем, управляющего пикселом с координатами (x,y), определяется формулами:
-
Смещение байта = 80 * y + (x >> 3), (x>>3 – целое деление на 8)
-
Номер бита в байте = x & 7 (- 3 младших двоичных разряда).
Плоскостная организация видеопамяти используется в режимах 0Dh, 0Eh, 10h и 12h. В этих режимах используются все четыре цветовых слоя. Режимы отличаются лишь разрешающей способностью.
Н иже приводится структура видеопамяти для режимов 0Dh, 0Eh, 10h и 12h.
2.4. Понятие палитры. Организация палитры ega, vga.
Практически любой видеоадаптер способен отобразить значительно большее количество цветов, чем определяется количеством бит, отводимых в видеопамяти под один пиксел. Для использования этой возможности вводится понятие палитры.
Палитра позволяет экономить пространство видеопамяти и размер графических файлов.
Палитра — массив, в котором каждому возможному значению пиксела сопоставляется значение цвета (r, g, b), выводимое на экран. Размер палитры и ее организация зависят от типа используемого видеоадаптера.
EGA : Контроллер атрибутов в графических режимах работы видеоадаптера управляет цветом пикселов изображения. Значениям цветовых атрибутов ставится в соответствие определенный цвет. Для этого используется таблица цветовой палитры. Таблица цветовой палитры ставит в соответствие 4 битам, взятым из видеопамяти, 6 битов цветовой информации. Изменяя данные, записанные BIOS’ом в таблицу цветовой палитры, можно менять используемую палитру цветов. Для видеоадаптера EGA эта информация поступает непосредственно на видеовход монитора.
Элементами палитры являются RGB значения цветов. Разрядность регистров палитры EGA — 6. Количество регистров палитры – 16.
Н иже приведена организация палитры EGA.
VGA : Видеоадаптеры VGA и SVGA выполняют более сложные операции по преобразованию цвета. Четыре бита, считанные из цветовых слоев видеопамяти, определяют 1 пиксел. Значения этих битов служат индексами регистров палитры, в которых хранятся индексы цветовых регистров. В результате получаются три 6-битовых значения, представляющих красный, зеленый и синий (R,G,B) компоненты цвета. Эти значения поступают на 3 цифро-аналоговых преобразователя (ЦАП) и уже в аналоговом виде попадают в монитор.
Таким образом, элементами палитры являются индексы цветовых регистров. Разрядность регистров палитры— 8. Количество регистров – 16.
В ыше была описана организация палитры для графических режимов с плоскостной организацией видеопамяти (т.е. кроме режима 13h).
Палитра VGA для режима 13h не используется, поскольку в этом режиме организация видеопамяти является линейной. Таким образом, из видеопамяти читается 8 битов — значение одного пиксела, которое является указателем (индексом) на цветовой регистр. Регистры палитры в этом режиме не используются.
Также как и в режимах с плоскостной организацией видеопамяти, в этом режиме видеоадаптер может отражать 256К оттенков цветов (26+6+6=256К, т.к. на каждую компоненту RGB-разложения цвета приходится по 6 битов).