Программирование видеосистем. Васильев С.А. - 8 стр.

UptoLike

Составители: 

В режиме 13h видеокарта одновременно отображает на экране 256 цветов при разрешении
растра 320200. Для этого под каждый пиксель отводится 8 бит видеопамяти. В данном режиме эти 8
бит идут последовательно один за другим, образуя один байт. В этом режиме плоскости видеопамяти
не используются. Видеопамять начинается с адреса A000 : 0. К точке с координатами (x, y) соответству-
ет байт видеобуфера по адресу 320y+x.
VESA BIOS EXTENTION ВИДЕОКАРТ SUPER VGA
После появления на рынке видеокарт с объемом памяти более предусмотренных стандартом 256
килобайт, появилась возможность создавать на экране изображения с лучшими, чем когда-либо до этого
параметрами. Такие видеокарты стали называть видеокартами Super VGA.
Из-за того, что различные Super VGA продукты имеют разную аппаратную реализацию, приклад-
ные программы испытывают значительные трудности при адаптации к каждой конкретной среде. Для
исправления подобного неудобства в 1991 г. ассоциацией VESA был предложен одноименный стандарт
на адаптеры Super VGA.
VESA BIOS Extention унифицирует подходы разработчиков графических приложений к программи-
рованию видеокарт Super VGA с различными аппаратными особенностями. Стандарт предлагает не-
сколько функций для интерфейса с многообразием аппаратных реализаций Super VGA. Наиболее важ-
ная из нихфункция 02: Установка видеорежима Super VGA. Эта функция освобождает прикладные
программы от решения скучной и запутанной задачи установки видеорежима. Функция 05h обеспечива-
ет интерфейс с аппаратной адресацией памяти. Функция 04h позволяет прикладным программам сохра-
нять и восстанавливать состояние Super VGA без знания особенностей конкретной реализации.
ЛАБОРАТОРНАЯ РАБОТА 1
Программирование видеокарты VGA в режиме чтения 0
Цель работы: приобретение навыков в программировании видеокарты VGA в режимах чтения 0
для 16-цветового режима (12h).
Задание: организовать работу видеокарты VGA в режиме чтения 0. По заданным координатам
изображения определить индекс цвета пикселя. Предложить наглядный интерфейс пользователя.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
Для перехода видеокарты в режим чтения 0 необходимо 3 бит регистра режима работы графическо-
го контроллера (3CF/05h) установить в 0. Данный режим позволяет считывать байты из каждой отдель-
ной битовой плоскости видеопамяти. Значение, содержащееся в регистре выбора читаемой карты
(3CF/04h), указывает на то, из какого регистра защелки будет производиться чтение байта данных (рис.
2). Для чтения пикселя с координатами x и y необходимо в регистр битовой маски (3CF/08h) записать
номер интересующего бита, используя, например, следующее выражение 80h shr (x mod 8). За четыре
цикла чтения памяти видеобуфера по конкретному адресу (80y + (x div 8)) с изменяющимся номером
читаемой карты (0, 1, 2 и 3) процессор получит значения всех регистров-защелок. И в каждом слу-
чае необходимо выделить соответствующий бит значения байта данных процессора и выделить соот-
ветствующий бит пикселя.
Содержание отчета
1 Дать описание данного режима.
2 Отобразить текст процедуры для чтения значения пикселя.
3 Оценить производительность представленной процедуры по отношению к стандартной GetPixel.