Vesa 1.2
3. Стандартный VGA BIOS
Главная цель создания VESA BIOS Extension состоит в минимизации эффектов для стандартного VGA BIOS. Функции стандартного VGA BIOS почти не нуждаются в модификации. Это важно, поскольку могут реализовываться версии расширений, как в ПЗУ, так и в ОЗУ.
Однако, VESA Extension оказывает влияние на две функции стандартного VGA BIOS. Этими функциями являются функция 00h (Установка видеорежима) и функция 0Fh (чтение текущего видео состояния). Программы, основанные на VESA, не будут использовать для установки видеорежима функцию 00h, которая используется в стандартном VGA BIOS. Такие программы не будут также использовать и функцию 0Fh из VGA BIOS. Вместо них они используют функции 02h (Установка Super VGA режима) и 03h (Чтение номера Super VGA режима) VESA BIOS.
Однако, программы, не использующие VESA (такие, как старые резидентные программы или команда CLS в MS-DOS), могут использовать функцию 0Fh из VGA BIOS для определения текущего видеорежима. Позднее они могут вызывать функцию 00h из VGA BIOS для восстановления или повторной инициализации старого видеорежима.
Чтобы такие программы были работоспособны, VESA рекомендует, чтобы значение, возвращаемое из функции 0Fh VGA BIOS (они могут не совпадать для разных карт), могло использоваться для повторной инициализации видеорежима с помощью функции 00h VGA BIOS. Следовательно, BIOS должен выполнять трассировку последнего действующего Super VGA режима.
Рекомендуется, но не обязательна, поддержка функций вывода (таких, как текстовой вывод, скроллинг, установка пиксела и т.д.) в Super VGA режимах. Если расширение BIOS'а не поддерживает такие функции, бит D2 (Поддержка функций вывода) в поле ModeAttributes (возвращаемом VESA BIOS функцией 01h) должен очищаться.
4. Номера режимов Super VGA
Номера стандартных VGA-режимов имеют ширину 7 битов и находятся в диапазоне от 00h до 13h. На конкретных картах определены номера видеорежимов от 14h до 7Fh. Значения в диапазоне от 80h до FFh не могут быть использованы, поскольку функция 00h VGA BIOS (установка видеорежима) интерпретирует бит 7 как флаг очистки видеопамяти.
Из-за ограничения в 7 бит для номеров режимов, видеорежимы VESA имеют ширину в 15 битов. Для инициализации Super VGA режима его номер помещается на регистр BX при вызове функции 02h VESA BIOS (Установка Super VGA режима).
Номера режимов VESA имеют следующий формат:
D0-D8 = Номер режима Если D8 == 0, это режим, определенный VESA Если D8 == 1, это не-VESA режим D9-D14 = Зарезервировано VESA для будущих расширений (= 0) D15 = Зарезервирован (= 0)
Таким образом, номера VESA-режимов начинаются со 100h. При такой схеме нумерации номера стандартных VGA-режимов и режимов, определенных для конкретных видеоплат, реализуются, как подмножество номеров VESA. Это означает, что обычные режимы VGA могут инициализироваться с помощью функции 02h VESA (установка Super VGA режима), за счет простого помещения номера режима на BL и очисткой старшего байта. Видеорежимы, определенные для конкретных видеоплат, инициализируются аналогично.
В настоящее время VESA определила 7-битный номер режима 6Ah для графического 4-слойного 16-цветного режима с разрешением 800x600. Соответствующий 15-битный номер режима для этого режима 102h.
Определены следующие номера VESA режимов:
Графика
Номер режима | Разрешение | Цвета |
---|---|---|
100h | 640x400 | 256 |
101h | 640x480 | 256 |
102h | 800x600 | 16 |
103h | 800x600 | 256 |
104h | 1024x768 | 16 |
105h | 1024x768 | 256 |
106h | 1280x1024 | 16 |
107h | 1280x1024 | 256 |
10Dh | 320x200 | 32K (1:5:5:5:) |
10Eh | 320x200 | 64K (5:6:5) |
10Fh | 320x200 | 16.8M (8:8:8) |
110h | 640x480 | 32K (1:5:5:5:) |
111h | 640x480 | 64K (5:6:5) |
112h | 640x480 | 16.8M (8:8:8) |
113h | 800x600 | 32K (1:5:5:5:) |
114h | 800x600 | 64K (5:6:5) |
115h | 800x600 | 16.8M (8:8:8) |
116h | 1024x768 | 32K (1:5:5:5:) |
117h | 1024x768 | 64K (5:6:5) |
118h | 1024x768 | 16.8M (8:8:8) |
119h | 1280x1024 | 32K (1:5:5:5:) |
11Ah | 1280x1024 | 64K (5:6:5) |
11Bh | 1280x1024 | 16.8M (8:8:8) |
Текст
Номер режима | Разрешение |
---|---|
108h | 80x60 |
109h | 132x25 |
10Ah | 132x43 |
10Bh | 132x50 |
10Ch | 132x60 |