Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шп гр.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.81 Mб
Скачать

Стандарт 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 байт

Зарезервировано