Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Vesa 1.2

7. Пример реализации

Приведенная ниже последовательность иллюстрирует каким образом прикладные программы должны взаимодействовать с VESA BIOS Extension. Гипотетическая прикладная программа совместима с VESA и вызывает функции VESA BIOS. Однако, она не ограничена поддержкой только тех режимов, которые определены VESA. Она будет запрашивать какие режимы доступны перед тем, как их установить.

1) Сначала программа должна разместить буфер длиной в 256 байтов. Этот буфер будет использоваться VESA BIOS для возврата информации о видео среде. Некоторые программы размещают этот буфер статически, другие могут использовать системные вызовы для получения временного пространства.

2) Программа должна затем вызвать функцию 00h из VESA BIOS (Возврат информации о Super VGA). Если регистр AX не равен 004Fh при возврате из этой функции, то программа должна определить, что VESA BIOS Extension отсутствует и не поддерживать такую ситуацию.

Если регистр AX не содержит кода ошибки, вызов функции был успешен. VESA BIOS Extension заполняет буфер разнообразной информацией. Программа может проверить правильность VESA-блока, идентифицируя символы 'VESA' в начале блока. Программа может также проверить поле VESAVersion для того, чтобы определить обладает ли VESA BIOS Extension достаточными функциональными возможностями. Программа может использовать OEMStringPtr для определения информации, специфичной для конкретной видеоплаты.

Наконец, программа может получить список поддерживаемых Super VGA режимов, используя VideoModePtr. Это поле содержит указатель на список видеорежимов, поддерживаемых видео средой.

3) Программа должна затем создать новый буфер и вызвать из VESA BIOS функцию 01h (Возврат информации о режиме Super VGA), чтобы получить информацию о поддерживаемых видеорежимах. Используя VideoModePtr, полученный на шаге 2, программа должна вызывать эту функцию до тех пор, пока не будет найден подходящий видеорежим. Если надлежащий видеорежим не найден, программа не поддерживает такую ситуацию.

Функция возврата информации о режиме Super VGA заполняет буфер, снабжая тем самым программу информацией, описывающей возможности видеорежима. Блок данных содержит всю необходимую информацию, позволяющую программе эффективно использовать возможности этого режима.

Программа должна проверить поле ModeAttributes. Чтобы проверить, что режим действительно поддерживается, программа должна проинспектировать бит D0. Еслион равен 0, то режим не поддерживается аппаратурой. Это может иметь место, если указанный режим требует монитор определенного типа, но такой монитор отсутствует.

4) После выбора программой видеорежима следующий шаг состоит в его инициализации. Однако, программа может пожелать сначала сохранить текущий видеорежим. Когда программа закончится, этот режим будет восстановлен. Для получения текущего видеорежима должна использоваться функция 03h (Чтение режима Super VGA). Если действует не-VESA режим (стандартный или специфичный для конкретной платы), заполняется только младший байт номера режима, а старший очищается.

5) Для инициализации видеорежима программа должна использовать функцию 02h VESA BIOS (Установка режима Super VGA). Из этой точки программа имеет полный доступ к аппаратуре VGA и видеопамяти.

6) Перед окончанием программа должна восстановить первоначальный видеорежим. Этот режим, полученный на шаге 4, может быть либо стандартным VGA-режимом, либо специфичным для конкретной платы, либо поддерживаемым VESA-режимом. Он должен быть инициализирован с помощью функции 02h VESA BIOS (Установка режима Super VGA). На этом программа завершает свою работу.


Предыдущая | Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог