Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика-Лабораторный практикум.doc
Скачиваний:
8
Добавлен:
19.04.2019
Размер:
868.35 Кб
Скачать

3.2 Структуры данных, обслуживающие видеосистему

  • Видеопамять - основная структура данных, выполняющая функции буфера обмена между прикладными программами и видеоадаптером. Видеопамять логически расположена в основном адресном пространстве в диапазоне адресов с A000:0000 по B000:FFFF (128 Кбайт). Физически видеопамять расположена на плате видеоадаптера и может иметь объем, многократно превышающий 128 Кбайт. Структура видеопамяти, ее объем и расположение в адресном пространстве определяются типом видеоадаптера и режимом его работы.

  • Переменные BIOS. Для обслуживания видеосистемы используются также часть области данных BIOS, формируемой в процессе инициализации (загрузки DOS). Знание адресов этих переменных позволяет определять количество и типы установленных видеоадаптеров, режимы их работы, объем видеопамяти и ряд других параметров видеосистемы.

  • Таблица окружения. Содержит восемь адресов – указателей на различные таблицы и буфера данных, используемые функциями BIOS, обслуживающих видеосистему: таблицу параметров, область сохранения, вспомогательные таблицы символов для текстовых и графических видеорежимов. Если элемент таблицы окружения равен нулю, то соответствующий блок данных не используется. Указатель на таблицу окружения хранится в области данных BIOS по адресу 0000:04A8h.

  • Таблица параметров. Содержит описания для каждого поддерживаемого видеоадаптером режима. Используется BIOS для установки регистров видеоадаптера.

  • Область сохранения. В этой области BIOS EGA/VGA хранит значения регистров цветовой палитры видеоадаптера. Прикладные программы могут косвенно определять значения этих регистров, обращаясь к данной области.

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

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

  • Таблицы знакогенераторов – специальные структуры данных, располагающиеся в ОЗУ и ПЗУ и используемые в процессе формирования символов на экране.

  • Указатели на таблицы знакогенераторов - вектора прерываний INT 1Fh и INT 43h. Различные программы (например, программы-русификаторы) могут загружать в видеопамять собственные знакогенераторы и переустанавливать соответствующие вектора прерываний.

3.3 Кодирование данных в видеопамяти

Процесс вывода информации на экран дисплея реализуется по следующей схеме.

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

  • Одна из страниц объявляется активной, и ее номер записывается в области данных BIOS по адресу 0040:0062.

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

  • Видеоадаптер циклически читает данные активной видеостраницы, преобразует (декодирует) их и формирует соответствующие сигналы управления дисплеем11.

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

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

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