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

Ваш аккаунт

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

Последние темы форума

Показать новые сообщения »

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

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

Vesa 1.2

6. Расширение VGA BIOS

Определено несколько новых вызовов BIOS для поддержки режимов Super VGA. Для достижения максимума совместимости со стандартным VGA BIOS эти вызовы сгруппированы в одной функции. Номер этой функции передается в обработчик int 10h на регистре AH.

Номер расширенной функции Super VGA установлен равным 4Fh. Функция с таким номером до настоящего времени не использовалась в большинстве, если не во всех, реализациях VGA BIOS. Стандартный VGA BIOS при вызове функции 4Fh не выполняет никаких действий. Super VGA стандарт VS900602 определяет подфункции с номерами от 00H до 07H. Подфункции с номерами от 08H до 0FFH зарезервированы для будущего использования.

6.1 Информация о состоянии

Каждая функция возвращает информацию о состоянии на регистре AX. Установлен следующий формат слова состояния:

        AL == 4Fh:      Функция поддерживается
        AL != 4Fh:      Функция не поддерживается
        AH == 00h:      Функция выполнена успешно
        AH == 01h:      Ошибка при вызове функции

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

6.2 Функция 00h - Вернуть Super VGA информацию

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

        Вход:   AH = 4Fh        Поддержка Super VGA
                AL = 00h        Возврат Super VGA информации
                ES:DI         = Указатель на буфер

        Output: AX            = Состояние
                Все другие регистры сохраняются

Информационный блок имеет следующую структуру:

VgaInfoBlock    struc
  VESASignature   db      'VESA'          ; 4 байта сигнатуры
  VESAVersion     dw      ?               ; номер версии VESA
  OEMStringPtr    dd      ?               ; указатель на строку
                                          ; идентификации видеоплаты
  Capabilities    db      4 dup (?)       ; возможности среды Super VGA
  VideoModePtr    dd      ?               ; указатель на поддерживаемые
                                          ; режимы Super VGA
  TotalMemory     dw      ?               ; Число 64kb блоков на плате
  Reserved        db      236 dup (?)     ; Остаток
VgaInfoBlock VgaInfoBlock    ends

Поле VESASignature содержит символы 'VESA', если этот блок корректен.

VESAVersion является двоичным полем, в котором указан номер версии стандарта VESA, соответствующий Super VGA BIOS. Старший байт указывает основной номер версии, а младший - вспомогательный. Текущий номер версии VESA равен 1.2. Прикладным программам, рассчитанным на использование возможностей определенной версии, гарантируется работа в последующих версиях. В дальнейшем VESA BIOS Extension будет обновляться с сохранением совместимости.

Поле OEMStringPtr является длинным указателем на строку идентификации конкретной видеоплаты, которая заканчивается символом NULL. Эта строка может использоваться аппаратно зависимыми драйверами устройств для идентификации видео чипа, видеоплаты, конфигурации памяти и т.д. Никаких ограничений на формат этой строки не накладывается.

Поле Capabilities описывает какие общие возможности поддерживаются видео средой. Его биты определены следующим образом:

        D0      = возможность переключения DAC
                        0 = DAC имеет фиксированную ширину по 6 бит на
                            каждый основной цвет
                        1 = ширина DAC переключается
        D1-31   = зарезервировано

VideoModePtr указывает на список поддерживаемых номеров Super VGA режимов (как определенных VESA, так и специфичных для конкретной платы). Каждый номер режима занимает одно слово (16 бит). Список номеров режимов заканчивается -1 (0FFFFh). Описание номеров режимов VESA см. в разделе 2 настоящего документа. Указатель может ссылаться на ПЗУ или ОЗУ в зависимости от особенностей реализации. Список может быть либо статической строкой, хранящейся в ПЗУ, либо генерироваться в процессе выполнения программы в информационном блоке (см. выше) в ОЗУ. Ответственность за проверку реализуемости любого из этих режимов возложена на прикладную программу. Она может быть выполнена по информации, возвращаемой при вызове функции 1 (возврат информации о режиме Super VGA). Некоторые из возвращенных режимов могут быть недоступны при конкретной комплектации памятью или монитором.

Поле TotalMemory указывает число блоков памяти, установленных на плате VGA. Его значение выражается числом 64kb блоков памяти, установленных в данный момент.


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

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

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