ФЭНДОМ


VESA (англ. Video Electronics Standards Association) - Ассоциация Стандартов Видеоэлектроники. Появление новых видеоадаптеров SVGA с большими разрешениями и числим цветов привело к появлению новых стандартов, собранных под эгидой ассоциации VESA. Одним из таких стандартов является VBE (англ. VESA BIOS EXTENSION) - расширение VESA для BIOS.

Функции VBEПравить

Для вызова функций VBE используем прерывание 10h

mov ax,4Fxxh  
Int 10h
 
Где xx- номер функции весы.
После вызова функции в ax возвращается статус вызванной функции.
Статус это значения стандартны для всех функций VESA:
AL = 4Fh; Функция поддерживается
AL <>4Fh; Функция не поддерживается
AH = 00h; Вызов функции удачен
AH = 01h; Вызов функции не удачен

Функция AL=00- Return VBE Controller Information Получение Информации о VBE контролере. Input: AX = 4F00h ES:DI = Буфер 512 байт для структуры VbeInfoBlock Перед вызовом функции нужно записать в поле VESASignature=”VBE2” – дело совместимости.

+---------------+----------+----+----------------------------------+
|VESASignature  | 4 Байта  | 00h| "VESA"                           |
+---------------+----------+----+----------------------------------+
|VESAVersion    | 2 Байта  | 04h| номер версии VBA, BCD            |
+---------------+----------+----+----------------------------------+
|OEMStringPtr   | 4 Байта  | 06h| указатель на строку с названием  |
|               |          |    | производителя (OEM), ASCIIZ      |
+---------------+----------+----+----------------------------------+
|Capabilities   | 4 Байта  | 0Ah| флаги графических возможностей   |
+---------------+----------+----+----------------------------------+
|VideoModePtr   | 4 Байта  | 0Eh| указатель на список              |
|               |          |    | поддерживаемых  видеорежимов     |
+---------------+----------+----+----------------------------------+
|TotalMemory    | 2 Байта  | 12h| количество видеопамяти в         |
|               |          |    | 64-килобайтных блоках            |
+---------------+----------+----+----------------------------------+
|InVersion      | 2 Байта  | 14h| внутренняя версия реализации VBA |
+---------------+----------+----+----------------------------------+
|NameFirme      | 4 Байта  | 16h| указатель на название            |
|               |          |    | производителя, ASCIIZ            |
+---------------+----------+----+----------------------------------+
|NameVESA       | 4 Байта  | 1Ah| указатель на название            |
|               |          |    | видеоадаптера, ASCIIZ            |
+---------------+----------+----+----------------------------------+
|PTRVESAVersion | 4 Байта  | 1Eh| указатель на название версия     |
|               |          |    | видеоадаптера, ASCIIZ            |
+---------------+----------+----+----------------------------------+
|Reserved       | 222 Байт | 20h| зарезервировано                  |
+---------------+----------+----+----------------------------------+
|Reserved2      | 256 Байт |100h| зарезервировано для внутренних   |
|               |          |    |  данных                          |
+---------------+----------+----+----------------------------------+

Для тех, кто не знает: ASCIIZ – это строка, закачивающаяся на 0 BCD десятичный формат. Старшая часть хранится во втором байте, младшая - в первом байте. Каждые 4 бита это числа от 0 до 9. Примеры: 0102h=>1.02; 0300h=>3.0 VideoModePtr – указатель на список WORDов. Значение FFFFh - последний элемент в списке. Каждый Word это номер поддерживаемого видео режима (за исключением FFFFh). Capabilities – возможности видеоадаптера.

D0 = 0 DAC is fixed width, with 6 bits per primary color
   = 1 DAC width is switchable to 8 bits per primary color
D1 = 0 Controller is VGA compatible
   = 1 Controller is not VGA compatible
D2 = 0 Normal RAMDAC operation
   = 1 When programming large blocks of information to the RAMDAC,
       use the blank bit in Function 09h.
D3 = 0 No hardware stereoscopic signaling support
   = 1 Hardware stereoscopic signaling supported by controller
D4 = 0 Stereo signaling supported via external VESA stereo connector
   = 1 Stereo signaling supported via VESA EVC connector
D5-31 = Reserved

Reserved2 – предназначено для хранения OEM такой информации, как строки PTRVESAVersion, NameFirme, NameVESA.

Функция AL=01- Return VBE mode information Получение информации об одном из режимов VBE. Input: AX = 4F01h CX=MODE ES:DI = Указатель на буфер для структуры ModeInfoBlock


VBE в защищенном режимеПравить

В защищенном режиме поддержка функций VESA реализована крайне странно. Во второй версии стандарта введена функция 0AH - RETURN VBE PROTECTED MODE INTERFACE, которая позволяет вызывать ряд функций, но функционал её очень мал. Зато появился линейный буфер LFB. Почти вся видео память доступна одним окном в верхних адресах физической памяти. Есть расширение “PMID”, но оно может и отсутствовать. Расширение “PMID” введено в третьей версии стандарта.

Для проверки поддержки БИОСом видео карты “PMID”, следует произвести поиск сигнатуры “PMID” в диапазоне адресов 0C0000h-0DFFFFh “PMID” – это расширение VESA 3, поэтому может и отсутствовать. Структура PMID такова:

 
+-----------------------+--------+------+------------+
|Назначение поля        |Смещение|размер|  Значение  |
+-----------------------+--------+------+------------+
|Сигнатура              |  00h   |4Байта|”PMID”ASCII |
+-----------------------+--------+------+------------+
|точка входа            |  04h   |2Байта| смещение   |
+-----------------------+--------+------+------------+
|PM инициализация       |  06h   |2Байта| смещение   |
+-----------------------+--------+------+------------+
| BIOSDataSel           |  08h   |2Байта|     0      |
+-----------------------+--------+------+------------+
| A0000 Селектор        |  0Ah   |2Байта|   A000h    |
+-----------------------+--------+------+------------+
| B0000 Селектор        |  0Ch   |2Байта|   B000h    |
+-----------------------+--------+------+------------+
| B8000 Селектор        |  0Eh   |2Байта|   B800h    |
+-----------------------+--------+------+------------+
|Селектор сегмента кода |  10h   |2Байта|   C000h    |
+-----------------------+--------+------+------------+
|Защищенный режим       |  12h   | Байт |0 или 1 Bool|
+-----------------------+--------+------+------------+
|Контрольная сумма      |  13h   | Байт |  Сумма     |
+-----------------------+--------+------+------------+

СсылкиПравить

1. VBE версия 3.0 от ассоциации VESA
vbe3.pdf
2. VBE версия 2.0 от ассоциации VESA
vbe20.txt
3. VBE версия 1.2 от ассоциации VESA
vesasp12.txt

Обнаружено использование расширения AdBlock.


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

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