Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
29.03.2016
Размер:
460.29 Кб
Скачать

14

Видеосистема

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

Введение

В этой главе выполняется углубленное рассмотрение материала по работе с дисплеем. В первом параграфе описаны компоненты видеосистемы: Монитор, область видеоданных и видеоконтроллер. В следующем параграфе рассмотрены такие свойства дисплея, как режимы, атрибуты и страницы. Далее, в большом параграфе, посвященном прерыванию ВIОSINT10H, предназначенному для работы с дисплеем, описаны такие действия, как установка режима, установка курсора, прокрутка экрана, вывод символов и установка атрибутов.

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

В этой главе рассмотрены следующие функции INT10H:

00HУстановить видеорежим 0ВН Установить цветовую палитру

00HУстановить размер курсора 0СН Записать пиксель

02Н Установить положение курсора 00Н Прочитать пиксель

03Н Вернуть состояние курсора 0ЕН Записать в режиме телетайпа

05Н Установить активную страницу 0FН Получить текущий видеорежим

06Н Прокрутить экран вверх 10Н Обратиться к регистрам палитры

07HПрокрутить экран вниз 11HОбратиться к знакогенератору

08Н Прочитать символ/атрибут 12Н Выбрать альтернативную программу

09Н Вывести символ/атрибут 1ЗН Вывести строку символов

0AН Вывести символ 1ВН Вернуть видеоинформацию

Компоненты видеосистемы

Стандартные (или когда-то бывшие таковыми) адаптеры дисплея — это МDА (адаптер монохромного дисплея), СGА (цветной графический адаптер), ЕGА (улучшенный графический адаптер) иVGA(видеографический адаптер).VGAи последовавшие за ним различные системыSVGA(SuperVGA) полностью вытеснили ранее использовавшиеся. Вследствие общедоступностиVGA, в этой книге описывается только этот видеоадаптер.

Основные компоненты видеосистемы — это монитор, область видеоданных, видео-BIOSи видеоконтроллер. Другие встроенные устройства включают в себя знакогенератор, контроллер режима, генератор видеосигнала и декодер атрибутов. На рис. 9.1 показана взаимосвязь между этими устройствами.

Монитор

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

Три электронных луча вызывают свечение этих зерен, формируя цвет пикселов. Лучи перемещаются по экрану вдоль строки слева направо и сверху вниз, начиная свое движение в каждом кадре с верхнего левого угла и заканчивая его в нижнем правом. Изменения в интенсивности лучей вызывают изменение яркости свечения люминофора и, соответственно, изменения в яркости пикселов. Различные сочетания интенсивностей трех основных цветов создают всевозможные цвета и оттенки.

Область памяти дисплея

Программа посылает данные — символы в текстовом режиме и пиксели в графическом — в область памяти дисплея (также называемую буфером) в оперативной памяти при помощи операций INTили, помещая данныё непосредственно в эту область памяти. Данные проходят довольно сложный процесс пре образования, перед тем как, наконец, выводятся на экран. Начальный адрес этой области зависит от типа видеоадаптера и выбранного режима. Прерывания, обслуживающие вывод на экран, передают ваши данные непосредственно в эту область памяти. Далее приводятся адреса начала сегментов для основных видео режимов:

  • A000:[0] используется для дескрипторов шрифтов в текстовом режиме и для графики высокого разрешения в видеорежимах от 0DHдо 13H;

  • B000:[0] — для монохромного текста в режиме 07Н;

  • B800:[0] — для текста и графики в рёжимах от 00Н до 06Н.

Схемы видеоадаптера непрерывно просматривают данные в видеообласти и в соответствии с ними обновляют экран. Данные в видеообласти могут быть символами таблицы ASCII(текстом) или графикой. В текстовом режиме каждый символ в видеообласти занимает два байта: один байт — для, собственно, кода символа, а второй — для определения его цвета и яркости. В графическом режиме в видеообласти хранятся группы битов, определяющие цвет и интенсивность каждого пикселя.

Область памяти дисплея позволяет хранить данные в страницах. Страница содержит данные для одного полного экрана, а всего страниц 8, с номерами от 0 до 7. Страница 0 всегда выбрана по умолчанию и, для текстовых режимов, начинается с адреса области памяти дисплея B800[0]. Страница 1 начинается с адреса В900[0], страница 2 — с адреса ВА00[0], страница 3 — с адреса ВВ00[0], и т.д.

Вы можете работать с любой страницей в памяти, но одновременно на экран выводится только одна страница. Как отмечалось выше, в текстовом режиме каждый выводимый на экран символ занимает два байта. Следовательно, одна страница занимает 80х25х2 = 4000 байт. В действительности для одной страницы выделяется область памяти размером 4 Кбайт (4096 байт). Так что за каждой страницей следует блок из 96 неиспользуемых байтов.

Соседние файлы в папке Лекции