Студопедия

Главная страница Случайная страница

Разделы сайта

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






Формирование изображения в видеоадаптере VGA в графическом режиме






Цель работы: изучение организации и основных приемов рабо­ты с видеоадаптером ПК в графическом режиме.

 

При работе в графическом режиме программное обеспечение для вывода изображений на экран должно непосредственно управ­лять цветом всех точек на экране. Поэтому видеоадаптеры ПК в гра­фическом режиме позволяют программно обратиться ко всем точкам экрана.

Прообраз выводимого на экран монитора изображения записывается в видеопамять видеоадаптера. Прообраз – это закодированная информация по каждой точке экрана. Как известно, весь экран монитора разбивается на множество точек, размещенных по горизонтальным строкам (N) сканирования экрана. Количество точек (M) на каждой строке одинаковое. Общее количество точек экрана (M х N) называется разрешающей способностью экрана. В видеосистемах каждая точка экрана называется пиксель.

В цветных видеосистемах цвет каждого пикселя определяется интенсивностью трех лучей: R-красный, G-зеленый, B-синий, сфокусированных в местоположение пикселя. Таким образом, изображение, получаемое на экране монитора, строится по экранным пикселям. При этом для каждого пикселя необходимо задавать его цвет.

Видеоадаптер VGA поддерживает несколько монохромных и цветных графических режимов. Например, режим 11h является монохромным и имеет разрешение 640х480; режим 0Eh – цветной, имеет разрешение 640х200 и позволяет отображать 16 различных цветов; режим 13h – цветной, имеет разрешение 320х200 и позволяет отображать 256 различных цветов.

Рассмотрим схему управления цветами в видеоадаптере VGA в цветном графическом режиме 13h. Пусть разрешающая способность экрана монитора – (M x N). При этом экран монитора разбивается на N строк (0, 1, 2,...... (N-1)), а строка состоит из M пикселей (0, 1, 2,..... (M-1)). Для записи информации о цвете каждого пикселя в графическом режиме в VGA отводится один байт. Адрес первой ячейки видеопамяти для видеоадаптера VGA – A000: 0000. Видеопамять организована линейно (рис. 3.1). В каждой ячейке видеопамяти хранится код Pij о цвете соответствующего этой ячейке пикселя, то есть пикселя, расположенного на i – ой строке и j – ой позиции в строке.

 

Строка 0

A000: 0000

Р00 Р01 Р02 Р03 ............... P0(M-1)

 

Строка1

Р10 Р11 Р12 Р13 .............. P1(M-1)

........

........

 

Строка (Y-1)

P(N-1)0 P(N-1)1 .......... P(N-1)(M-1)

 

........

Рис.3.1. Размещение информации в видеопамяти в текстовом режиме

 

Значение смещения (SM) от начала видеопамяти для байта, управляющего пикселем Pij с координатами (i, j), то есть расположенного на i-й строке и j-колонке на экране монитора, определяется по формуле:

 

SM = (M * j + i),

 

где M – общее количество пикселей, расположенных на одной линейке.

Для видеорежима 13h значение М=320, а значение N=200. Таким образом, всего точек 320х200, следовательно, для их изображения на дисплее требуется 64 Кбайт видеопамяти для работы в режиме 13h.

Схема управления цветами в видеоадаптере VGA представлена на рис. 3.2. Видеоадаптер VGA работает с аналоговым монитором, имеющим три раздельных видеовхода R, G и B. Величина напряжения на каждом из них управляет соответственно интенсивностью красного, зеленого и синего изображения. Аналоговое напряжение для монитора формируется из двоичной цветовой информации при помощи трех цифро-аналоговых преобразователей (ЦАП).

Цветовая 8-битовая информация, поступающая из ячейки видеопамяти с адресом A000: SM, через регистр адреса таблицы цветов преобразуется согласно таблице цветов в три 6-битовых сигнала для трех ЦАП.

Одним из основных узлов в видеоадаптере VGA является RAMDAC (цифро-аналоговый преобразователь данных, хранящихся в его регистрах). Его назначение – преобразование кода цвета пикселя в аналоговый сигнал. В схему RAMDAC входят:

- 256 18-разрядных регистров (именно эти регистры и образуют оперативную память RAM в узле RAMDAC);

- выходной 18-разрядный регистр цвета (Рвых цвета), выходы которого соединяются с соответствующими входами ЦАП;

- трехканальный 6-разрядный ЦАП.

 

Видеопамять

А000: 0000 А000: SM

  .......   ...........  

Регистр адреса таблицы

цветов

 

 
 

 

 


18

18 бит

Рвых цвета

 

               
 
 
       

 

 


На монитор

 

Рис. 3.2. Схема управления цветами (VGA)

 

Разрядность ЦАП определяет количество оттенков цвета, которые потенциально может сформировать видеоадаптер VGA, т.е. размер его палитры. Несложно подсчитать, что палитра составляет (26)3 = 218 = 262144 оттенков. Оттенок цвета текущего пикселя определяется кодом, записанным в выходной регистр цвета Рвых цвета.

Однако на практике количество оттенков цвета, которые видеосистема VGA в состоянии отобразить одновременно, значительно меньше размера его палитры и равно количеству регистров цвета, т.е. 256. Видеоадаптер VGA не позволяет загрузить в выходной регистр цвета произвольное значение – туда заносятся данные только из регистров цвета, которых в видеоадаптере VGA насчитывается только 256.

Содержимое регистров цвета ЦАП можно изменять программно, т.е. центральный процессор ПК как считывает данные регистров, так и записывает в них информацию. Для регистров цвета в адресном пространстве портов ввода-вывода ПК выделены адреса (3С6 –3С9)h. Однако для пользователей более удобным инструментом при работе с палитрами пикселей является драйвер монитора (программа обслуживания видеосистемы) INT 10h.

Программа INT 10h позволяет выполнить множество операций обслуживания видеосистемы. Номер выполняемой операции устанавливается в регистре АН перед вызовом программы. Кроме того для выполнения конкретной операции необходимо перед вызовом программы задать некоторые исходные параметры. Для этого используются регистры микропроцессора.

Рассмотрим операцию программы INT 10h при работе с регистрами цвета RAMDAC. Регистр АН=16 – выбор операций для видеосервиса VGA. Регистр AL=16 – выбор операции «Установить регистр цвета». ВХ – номер регистра RAMDAC; CH, CL, DH – шестибитовые коды интенсивностей зеленого, синего и красного цветов для выбранного регистра.

Таким образом, при работе напрямую с видеопамятью в графи­ческом режиме необходимо сделать следующее:

1. Перевести адаптер в графический режим (для лабораторной работы - функция 0 (AH=0, AL=13h) программы прерывания 10h прерывания 10h).

2. Начать работу с видеопамятью.

3. Изменить цвет выводимого на экран монитора рисунка, используя функцию 16 (АН=16, АL=16) программы прерывания 10h.

4. По окончании работы с программой вернуть адаптер в текстовый режим (функция 0 (AH=0, AL=3) программы прерывания 10h).

Задание на лабораторную работу

 

Необходимо написать и отладить программу на ПК на языке Ассемблер, которая прямым доступом к видеопамяти в графическом режиме, выполнила следующие операции:

а) формирование одноцветного фона экрана, закрашивая одним цветом весь экран монитора, для чего все ячейки видеопамяти VGA в графическом режиме заполнить одинаковым кодом;

б) рисование на экране прямоугольника с координатами пикселей ((X1, Y1); (X2, Y1); (X2, Y2); (X1, Y2)) цветом отличным от установленного цвета фона (X – столбец, Y – строка пикселя на экране).

Затем путем программного обращения к регистрам цвета RAMDAC изменить цвет прямоугольника путем изменения содержимого соответствующего регистра цвета.

Алгоритм этой программы может быть, к примеру, следующий:

1. Установка работы видеосистемы в графический режим.

2. Инициализация ES, DI, CX (Инициализация регистра ES сегментным адресом видеобуфера и регистра DI начальным смещением в нем. Установка счетчика ячеек).

3. Формирование цвета фона экрана. Цвет фона выбрать по своему усмотрению.

4. Рисование прямоугольника с заданными координатами в соответствии с полученным номером задания. Цвет прямоугольника выбрать по своему усмотрению.

5. Изменение цвета прямоугольника в соответствии с полученным вариантом задания (параметр «С» в таблице заданий).

6. Переход в текстовый режим и выход из программы.

Чтобы иметь возможность успеть посмотреть на экране резуль­таты работы программы, необходимо после шагов 3, 4, 5 вызвать функцию 0 прерывания 16h (ожидание символа с клавиатуры).

 

 

Варианты заданий на лабораторную работу:

 

 

№ вар. X1 X2 Y1 Y2 C
1.         Светло-красный
2.         Светло-зеленый
3.         Светло-синий
4.         Красный
5.         Зеленый
6.         Синий
7.         Темно-красный
8.         Темно-синий

 

Содержание отчета по лабораторной работе

Отчет должен содержать задание и текст программы с коммен­тариями.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.