
- •4. 3. Архитектура видеоадаптеров ega и vga
- •Монитор
- •Видеопамять
- •Текстовый режим
- •Знакогенератор
- •Атрибуты символов
- •Атрибуты символов (монохромный режим)
- •Видеопамять в графических режимах
- •Режимы 4 и 5
- •Режим 6
- •Режимы 0Dh и 0Eh
- •Режим 0Fh
- •Режим 10h
- •Режим 11h
- •Режим 12h
- •Режим 13h
- •5. 7. Видеоадаптеры svga
- •Видеопамять svga
- •Слоеный пирог
- •Увидеть весь мир через замочную скважину
- •Больше цветов больше бит
- •Стандарт vesa
- •6. 11.1. Введение
- •11.2. Преобразование отрезков из векторной формы в растровую
- •Простейший пошаговый алгоритм
- •Алгоритм Брезенхэма для отрезков прямых
- •11.3. Растровая развертка литер
- •Пропорциональное размещение литер. Нижние выносные элементы
- •17,18 Введение в модели закрашивания
- •Геометрические составляющие для нахождения отраженного света.
- •Вычисление диффузионной составляющей
- •Зеркальное отражение
- •Фоновые источники и фоновые отражения
- •Комбинирование компонентов освещения
- •Добавление цвета
- •[Править] Описание алгоритма
- •0.6.1 Двумерный алгоритм Коэна-Сазерленда
- •[Править] Достоинства
- •[Править] Недостатки
- •О трассировке лучей
- •Матрицы и вектора
- •Обратная трассировка лучей Определение цвета точки. Текстурные карты и свойства материалов
- •16 15. Цвет в компьютерной графике
- •Перспективная проекция
- •10 Лекции по компьютерной графике
- •3.1. Координаты и преобразования
- •3.3. Преобразование в однородную систему координат
- •Поворот вокруг фиксированной точки
- •[Править] Отличия от ega
- •[Править] Текстовые режимы
- •[Править] Графические режимы
- •[Править] Стандартные графические режимы
- •[Править] Нестандартные графические режимы (X-режимы)
Стандарт vesa
Стандарт VESA описывает расширение прерывания BIOS номер 10h (VESA BIOS Extention - VBE), отвечающего за управление видеоадаптерами. Поддержка VBE обычно включается производителями видеоадаптеров в ПЗУ самого адаптера или поставляется в виде отдельной резидентной программы. Во втором случае перед использованием функций VBE необходимо загрузить данную резидентную программу в оперативную память компьютера. Ниже мы полностью опишем функции VBE версии 1.2 и опишем некоторые функции VBE версии 2.0.
Перед вызовом функций VBE следует записать в регистр AH значение 4Fh. Если ваша реализация VBE поддерживает данную функцию, то в регистре AL возвращается значение 4Fh. Если функция не реализована, тогда в регистре AL возвращается значение, отличное от 4Fh.
Результат выполнения функции записывается в регистр AH. В случае успешного завершения функции в регистре AH возвращается нулевое значение. Если в регистре AH записано значение 1h, значит функция завершилась с ошибкой. И, наконец, если в регистре AH возвращается значение 2h, значит аппаратура видеоадаптера не поддерживает данную функцию.
Возможна ситуация, когда VBE может выполнить запрашиваемую функцию, а аппаратура видеоадаптера - нет. В этом случае после завершения функции регистр AH содержит значение 4Fh, а регистр AH - 2h.
Получить информацию о реализации VBE и видеоадаптере
Функция позволяет получить различную информацию о возможностях VBE и видеоадаптера. Вы должны использовать данную функцию, чтобы определить, наличие VBE и его версию. Формат вызова функции отличается для VBE версии 2.0 и VBE более ранних версий.
В следующей таблице представлен формат вызова функции для VBE версии 1.2 и более ранних версий:
На входе: |
AH |
4Fh |
|
AL |
00h |
|
ES:DI |
Указатель на буфер размером 256 байт (формат буфера см. ниже). В этот буфер записывается различная информация о видеоадаптере SVGA и реализации VBE |
На выходе: |
AL |
4Fh |
|
AH |
0, в случае успешного завершения, 1 в случае ошибки |
Примечание: |
|
Значения остальных регистров сохраняются |
Теперь приведем расширенный формат этой же функции соответствующий VBE версии 2.0:
На входе: |
AH |
4Fh |
|
AL |
00h |
|
ES:DI |
Указатель на буфер размером 512 байт (формат буфера см. ниже). Первые четыре байта буфера должны содержать строку "VBE2". В буфер записывается различная информация о видеоадаптере SVGA и реализации VBE |
На выходе: |
AL |
4Fh |
|
AH |
0, в случае успешного завершения, 1 в случае ошибки |
Примечание: |
|
Значения остальных регистров сохраняются |
В следующей таблице представлен формат буфера, содержащего информацию об адаптере SVGA и реализации VBE. В таблице мы объединили разные версии VBE.
Смещение |
Размер |
Описание |
00h |
4 байта |
В случае успешного завершения в это поле записывается строка 'VESA' |
04h |
Слово |
Номер версии VBE. Старший байт содержит старшую часть номера версии, младший байт - младшую часть номера версии |
06h |
Двойное слово |
Дальний указатель на строку, закрытую нулем. В строке содержится информация, определяемая производителем. Как правило, она служит для описания видеоадаптера и реализации VBE |
0Ah |
Двойное слово |
Возможности видеоадаптера. В реализации VBE версии 1.2 задействуется только бит D0. Бит D0 содержит единицу, если ЦАП видеоадаптера может работать с данными переменной длинны. В противном случае ЦАП может использовать для представления каждой компоненты цвета (RGB-красный, зеленый, синий) только 6 бит. Бит D1 (VBE 2.0) содержит единицу, если видеоадаптер не полностью совместим с VGA. Бит D2 (VBE 2.0) содержит единицу, если BIOS не поддерживает другие функции VBE |
0Eh |
Двойное слово |
Дальний указатель на список режимов, поддерживаемых функциями VBE. Список состоит из 16-битовых величин, являющихся номерами режимов и заканчивается числом 0FFFFh |
Следующие поля таблицы поддерживаются только VBE версии 1.2 |
||
12h |
Слово |
Объем памяти видеоадаптера, представленный в блоках размером по 64 Кбайт |
Следующие поля таблицы поддерживаются только VBE версии 2.0 |
||
14h |
Слово |
Дополнительный номер версии VBE (номер пересмотренной версии) |
16h |
Двойное слово |
Дальний указатель на строку, закрытую нулем. В строке содержится имя фирмы разработчика |
1Ah |
Двойное слово |
Дальний указатель на строку, закрытую нулем. В строке содержится название видеоадаптера |
1Eh |
Двойное слово |
Дальний указатель на строку, закрытую нулем. В строке содержится дополнительный номер версии видеоадаптера |
22h |
222 байт |
Не используется |
100h |
256 байт |
Информация фирмы разработчика |
Получить информацию о режиме видеоадаптера
Функция позволяет определить различные характеристики любого режима видеоадаптера, отвечающего стандарту VESA. Программа должна подготовить буфер и передать указатель на него функции. В случае успешного завершения в буфер будут записаны характеристики режима.
На входе: |
AH |
4Fh |
|
AL |
01h |
|
CX |
Номер режима |
|
ES:DI |
Указатель на буфер размером 256 байт (см. ниже) для таблицы описания режима |
На выходе: |
AL |
4Fh |
|
AH |
Результат: 0, в случае успешного завершения, 1 в случае ошибки |
Формат таблицы описания режима представлен ниже:
Смещение |
Размер |
Описание |
00h |
Слово |
Атрибуты режима: D0 режим поддерживается D1 доступна дополнительная информация D2 поддерживаются функции BIOS D3 1 - цветной режим, 0 - монохромный режим D4 1 - графический режим, 0 - текстовый режим |
02h |
Байт |
Атрибуты окна A D0 доступно (поддерживается) D1 окно доступно для чтения D2 окно доступно для записи D3-D7 не используется |
03h |
Байт |
Атрибуты окна B (см. атрибуты окна A) |
04h |
Слово |
Шаг позиционирования окна в Кбайтах |
06h |
Слово |
Размер окна в Кбайтах |
08h |
Слово |
Начало сегмента окна A |
0Ah |
Слово |
Начало сегмента окна B |
0Ch |
Двойное слово |
Указатель на функцию перемещения (позиционирования) окна |
10h |
Слово |
Количество байт на линию сканирования. Не является обязательным для режимов VESA |
Следующие поля таблицы поддерживаются только VBE версии 1.2 |
||
12h |
Слово |
Разрешение по горизонтали в пикселах |
14h |
Слово |
Разрешение по вертикали в пикселах |
16h |
Байт |
Ширина символа в пикселах |
17h |
Байт |
Высота символа в пикселах |
18h |
Байт |
Количество слоев видеопамяти |
19h |
Байт |
Количество бит на пиксел |
1Ah |
Байт |
Количество банков памяти |
1Bh |
Байт |
Тип модели памяти |
1Ch |
Байт |
Размер банка памяти в Кбайтах |
1Dh |
Байт |
Количество страниц видеопамяти, доступных в данном режиме минус один |
1E |
Байт |
Зарезервировано |
1Fh |
Байт |
Количество бит, представляющих красную компоненту цвета пикселов |
20h |
Байт |
Положение младшего бита поля, представляющего красную компоненту цвета пикселов |
21h |
Байт |
Количество бит, представляющих зеленую компоненту цвета пикселов |
22h |
Байт |
Положение младшего бита поля, представляющего зеленую компоненту цвета пикселов |
23h |
Байт |
Количество бит, представляющих синюю компоненту цвета пикселов |
24h |
Байт |
Положение младшего бита поля, представляющего синюю компоненту цвета пикселов |
25h |
Байт |
Количество бит, представляющих запасное поле цвета пикселов |
26h |
Байт |
Положение младшего бита запасного поля, предоставляющего цвет пикселов |
27h |
Байт |
D0 равен единице, если в данном режиме видеоадаптера вы можете программировать регистры ЦАП; D1 равен единице, если в данном режиме видеоадаптера каждое значение пиксела представлено 4 полями (красное, зеленое, синее, дополнительное) и дополнительное поле можно использовать. Если бит равен нулю, тогда дополнительное поле зарезервировано и не используется; D2-D7 зарезервировано |
Следующие поля таблицы поддерживаются только VBE версии 2.0 |
||
28h |
Двойное слово |
Поле содержит физический 32-разрядный адрес начала видеобуфера для использования его в защищенном режиме |
2Сh |
Двойное слово |
Смещение от начала видеобуфера области памяти неиспользуемой для отображения изображения на экране монитора |
30h |
Слово |
Размер области памяти, неиспользуемой для отображения изображения |
32h |
206 байт |
Зарезервировано |