Информационные функции VBE
Таблица 1.2. (Продолжение).
Адрес поля | Размер поля | Что хранится в поле | Режим 101h | Режим 110h | Режим 112h |
1Dh | 1 | Номер последнем страницы | 0Bh | 05 | 02 |
1Еh | 1 | Резервный байт | 01 | 01 | 01 |
IFh | 1 | Размер маски красного цвета | 00 | 05 | 08 |
20h | 1 | Позиция маски красного цвета | 00 | 0Ah | 10h |
21h | 1 | Размер маски зеленого цвета | 00 | 05 | 08 |
22h | 1 | Позиция маски зеленого цвета | 00 | 05 | 08 |
23h | 1 | Размер маски синего цвета | 00 | 05 | 08 |
24h | 1 | Позиция маски синего цвета | 00 | 00 | 00 |
25h | 1 | Размер резервного поля | 00 | 01 | 08 |
26h | 1 | Позиция резервного поля | 00 | 0Fh | 18 |
27h | 1 | Флаги для режимов direct color | 00 | 00 | 00 |
Следующие 3 поля заполняются при VBE 2.0 и выше | |||||
28h | 4 | Адрес начала видеопамяти | 0000 F800 | ||
2Ch | 4 | Адрес свободного пространства | 00 | 00 | 00 |
30h | 2 | Размер свободного пространства | 00 | 00 | 00 |
Часть величин, перечисленных в табл. 1.2, уже обсуждалась выше, назначение остальных будет описано по мере изложения материала, в тех случаях, когда они используются при программировании. Здесь мы ограничимся одним замечанием и опишем байт атрибутов режима.
Замечание
Начиная с версии VBE 1.2, появились поля, в которых указываются количество банков видеопамяти (lAh) и размер банка в килобайтах (ich). У всех исследованных видеокарт указан один банк, а его размер равен нулю. Непонятно о каких банках идет речь, тем более, если их размер, выраженный в килобайтах, помещается в пределах одного байта. Поэтому эти поля лучше не использовать до выяснения их назначения.
Атрибуты видеорежима
Нулевое слово информационного массива, возвращаемого по запросу 4FOih, содержит характеристики видеорежима, которые называются атрибутами. Каждый разряд этого слова имеет конкретное назначение, кроме первого, который зарезервирован. Стандарты VBE 1.2 и 2.0 описывают только назначение разрядов младшего байта этого слова (его адрес в массиве 0), а старший байт зарезервирован. В табл. 1.3 показано, что обозначает 1 в каждом из разрядов.
Таблица 1.3. Назначение разрядов кода атрибутов режимов.
Бит | Код | Что обозначает установка разряда |
---|---|---|
0 | 1 | Видеокарта поддерживает режим |
1 | Резервный разряд (состояние безразлично) | |
2 | 1 | BIOS поддерживает вывод на экран |
3 | 1 | Используется цветной монитор |
4 | 1 | Режим графический |
5 | 1 | Режим не совместим с VGA |
6 | 1 | Невозможна работа с окнами видеопамяти |
7 | 1 | Доступно все пространство видеопамяти (VBE 2. 0) |
При программировании для защищенного режима надо проверять состояние бита 7. Если он установлен, то возможна непосредственная работа со всем пространством видеопамяти без переключения окон.