Общие сведения.
Видеоподсистема состоит из 2-х основных компонентов: монитора (дисплей);
видеоадаптера (видеоплата, графическая плата, видеоконтроллер)
Основных типов адаптеров два:
-первый тип продолжает цветной адаптер CGA -второй тип продолжает адаптер дисплея MDA Существует 2 режима работы адаптеров:
-текстовый
-графический
(CGA работает в 2- х режимах, MDA-т только в текстовом)
Современные видеоконтроллеры поддерживают разнообразные текстовые и графические режимы.
Параметры определяющие режим. поддержка текста или графики разрешающая способность число одновременно выводимых цветов
число выводимых символов
число точек образующих каждый символ.
Текстовые режимы различают в основном по разрешению (числу отображаемых символов по горизонтали и вертикали) и цветовой палитре.
Графические режимы классифицируются по количеству одновременно отображаемых цветов,
Типы графических режимов:
монохромный
четырехцветный
шестнадцатицветный EGA/ VGA 256 цветный SVGA (8- битное)
|
|
16- битное (Hicolor)
True Color (24- битное)- True Color (32- битное)
В настоящее время используется только шеснадцатицветный текстовый и графические режимы 4, 5, 6,7
Видеорежим должен позволять выполнять все требуемые в программе операции.
Существует 2 основных способа программной установки видеорежима: с помощью функции VGA BIOS и VESA BIOS.
Если стандарт VESA поддерживается, то определенные им функции записываются производителями видеоадаптера в ПЗУ самого адаптера. Они называются расширением прерывания BIOS 10h- VESA BIOS EXTANTION (VBE).
Для вызова функции VBE в AH—4Fh, а в AL—номер функции. Функция может не выполнятся
если ее не поддерживает аппаратура адаптера она отсутствует в VBE
Всего может существовать 256 различных текстовых и графических режимов.
Видеопамять.
Физически расположена вместе с остальными видеокомпонентами на плате адаптера (логически - часть адресного пространства процессора).
Для работы с видео буфером необходимо знать, где в адресном пространстве он находится и какова ее организация.
Типичная схема использования адресного пространства в реальном режиме представлена на рисунке 11.
Физические адреса 00000h |
Сегментные адреса 0000h |
Объем адресного пространства |
Л
Системные таблицы и программы DOS
> |
A000h B000h B800h C000h D000h F000h |
A0000h B0000h B8000h C0000h D0000h F0000h |
64 Кбайт 32 Кбайт 32 Кбайт 64 Кбайт 128 Кбайт 64 Кбайт |
> |
Свободная память для загружаемых прикладных и системных программ |
ПЗУ - расширения BIOS |
Графический видеобуфер |
Свободные адреса |
Свободные адреса |
Текстовый видеобуфер |
COMMAND.COM |
ПЗУ BIOS |
Обычная память (640 Кбайт) |
Старшая память (384 Кбайт) |
Рисунок 11. Схема использования адресного пространства в реальном режиме
|
|
Текстовый видеобуфер включает 8 видеостраниц и занимает в адресном пространстве компьютера (за пределами обычной памяти) 32 Кбайт от сегментного адреса B800h. Начинается он с видеостраницы 0, адрес которой совпадает с адресом всего видеобуфера. Каждая страница занимает 4 Кбайт, таким образом, страница 1 начинается с сегментного адреса B900h, страница 2- е адреса BA00h и т.д. Весь видеобуфер простирается до границы (сегментной) C000h
При включении компьютера активной (видимой) становится видеостраница 0. Смена видеостраниц осуществляется вызовом функции 05h прерывания 10h BIOS.
Любой код, записываемый в видеобуфер, сразу же отображается на экране в виде цветного символа на одном из знакомест. Каждый символ занимает в буфере поле из двух байт Младшие (четные) байты всех полей отводятся под коды ASCII
отображаемых символов, старшие(нечетные) байты - под их атрибуты.
Двухбайтовые коды символов записываются в видеобуфер в том порядке, в каком они должны появляться на экране: первые 80 двухбайтовых полей соответствуют первой строке экрана, Вторые 80 полей - второй строке и т.д. Все управляющие коды теряют свои управляющие функции и отображаются в виде соответствующих им символов.
Для того, чтобы из программы получить доступ к видеобуферу надо занести его сегментный адрес в один из сегментных регистров данных. После этого, задавая те или иные смещения можно выполнить запись в любые места видеобуфера.
Пример -Прямое программирование видеобуфера:
; очистка экрана; на стр 0 видеобуфера
mov AX, 0B 800h; сегментный адрес видеоадаптера mov ES, AX;загрузим его в es
; выведем два символа mov BX, 80*2*5; смещение в видеобуфер в байтовый символ mov AL, ‘* ’
mov AH, 0eh; цвет желтый цвет по черному
mov ES:[BX], AX; запись в видеобуфере
mov ES:[BX+162], 0B0Fh; цвет от светло- бирюзового
; по черному символ 0fh Запись в видеобуфер непосредственно числа 0B0F, удобно когда на экран выводится символы не имеющие закрепленных за ними клавиш.
Формирование изображений.
Адаптеры хранят содержимое изображения в оперативной памяти, таким образом, что определенному адресу в памяти соответствует определенное место на экране дисплея. Цвет элемента изображения на экране формируется из 4- х сигналов:красного, синего, зеленого и яркость.
В текстовых режимах используется байт для задания цвета, яркости и мигания символа, а также цвета фона.
В графических режимах единица изображения - отдельный пиксель (от 132 битного кодирования).
Управление видеодисплеем.
Можно выполнить -4- я способами используя службы языка программирования используя службы ОС используя видео-службы ROM BIOS
прямое управление аппаратными средствами через обращения к памяти или портам ввода-вывода.
Графический режим.
Вывод текста
В графическом режиме знаки формируются пиксель за пикселем программным знаковым генератором, входящим в ROM BIOS(прерывание 10 h обеспечивает данную службу).
Программный знаковый генератор обращается к таблице битовых комбинаций, чтобы определить какие пиксели отображать на экране для данного знака (в ROM памяти каждой PC содержится таблица (принятая по умолчанию) битовых комбинаций знаков.
В стандартной таблице каждый символ описывают 8 байтов.
Основные графические режимы VGA
|
Отображение пикселей в памяти графических режимов.
При использовании графического режима пиксели хранятся в виде
последовательности битовой полей. При этом соблюдается
взаимнооднозначное соответствие между этими битовыми полями, хранящимися в памяти, и пикселями, отображаемыми на экране.
|
|
Расположение полей битов видеопамяти (видеобуфера) зависит от видеорежима. В 256 цветных режимах каждой точке изображений на экране монитора соответствует один байт видеопамяти, в который записывается код точки. Этот код не используется непосредственно, а служит индексом в специальном массиве, содержащем 256 строк по три элемента - таблице цветов ЦАП. Каждый из 3 - х элементов таблицы дает интенсивность одного из основных цветов электронно-лучевой трубки (красный, зеленый, синий).
Значения интенсивностей, выбранные из строки, соответствующей хранящемуся в видеопамяти кода, поступают в ЦАП.
Отображения видеопамяти на экран в цветном режиме с разрешением 640х480.
Столбец 0 столб 1 столб 2
|
В режиме VGA 320x200 с 256 цветами для отображения видеопамяти на основное адресное пространство используется 64 000 байт, располагающихся с адреса A000h:0000h. Дальнейшее увеличение разрешения или числа цветов приводит к тому, что объем видеопамяти превышает максимальные границы сегмента в реальном режиме (65 535 байт), а затем и размер участка адресного пространства, отводимого для видеопамяти (160 Кб, от A000h:0000h до B800h:FFFFh. С адреса C800h:0000h начинается область ROM BIOS). Чтобы вывести изображение, используются два механизма - переключение банков видеопамяти для реального режима и LFB (линейный кадровый буфер) для защищенного.
Работа в современных графических режимах.
Большинство из выпускаемых сейчас видеоадаптеров относятся к классу SVGA.
Некоторые режимы видеоадаптеров SVGA.
Разрешение в пикселях | Число цветов | Номер режима |
800х600 | 103h | |
800х600 | 115h | |
2024х768 | 117h | |
1280х1024 | 107h |
Современные видеоконтроллеры отличаются от VGA тем, что обеспечивают работу с высокими разрешениями и позволяют использовать линейную адресацию видеопамяти.
Организация видеопамяти в режимах типа Direct Drow.
В режимах группы Direct Drow (Hi Color u True Color) информация поступает на цифро- аналоговый преобразователь непосредственно из видеопамяти соответственно красная, зеленая и синяя составляющие цвета точки представлены отдельными полями и выделенной для хранения точки области видеопамяти (от 2 до 4 байтов на точку).
|
|
В режимах Hi Color точка кодируется 16 разрядным словом, причем существует 2 варианта представления цвета:
Формат HiColor15 Формат HiColor16 |
В режимах HiColor точка кодируется 16-разрядным словом, причем существует два варианта представления цвета,: HiColorl5 (формат 1:5:5:5) и HiColorl6 (формат 5:6:5). Через X на рисунке обозначена зарезервированная (неотображаемая) область данных. Из видеопамяти на экран информация отображается слева направо и сверху вниз.
14 10 | 4 0 | |||||
Х | Красный | Зеленый | Синий | |||
4 0 | ||||||
Красный | Зеленый | Синий | ||||
В режимах True Color для хранения каждого компонента цвета точки выделена по одному байту видеопамяти, существует два формата.
True Color 24
Байт 8 | Байт 2 | Байт 3 |
Красный | зеленый | Синий |
True Color 32
|
Т. о в 24- разр. True Color.
Основная литература: 6[131-266];
Дополнительная литература: 11[70-81],16[85-103,153-181], 18[152-153]
Контрольные вопросы:
1. Из каких основных компонентов состоит видеоподсистема.
2. Перечислите параметры, определяющие режим видеоконтроллера.
3.Перечислите типы графических режимов, используемых в настоящее время.
4. Из каких сигналов формируется цвет элемента изображения.