Расширения VESA BIOS - VESA BIOS Extensions

Расширения VESA BIOS (VBE) это VESA стандарт, в настоящее время в версии 3, который определяет интерфейс, который может использоваться программным обеспечением для доступа к совместимым видеоплатам с высоким разрешением и битовой глубиной. Это противоположно «традиционному» int 10h BIOS звонки, которые ограничены разрешением 640 × 480 пиксели с глубиной цвета 16 цветов (4 бита) или меньше. VBE доступен через BIOS видеокарты, который устанавливается во время загрузиться немного прервать векторы, которые указать на сам.

Большинство новых карт реализуют более мощный стандарт VBE 3.0. Более старые версии VBE предоставляют только реальный режим интерфейс, который нельзя использовать без значительного снижения производительности изнутри защищенный режим операционные системы. Следовательно, стандарт VBE почти никогда не использовался для написания драйверов видеокарт; Таким образом, каждому продавцу пришлось изобрести проприетарный протокол для связи с собственной видеокартой. Несмотря на это, обычно водитель thunk в прерывание реального режима, чтобы инициализировать режимы экрана и получить прямой доступ к карте линейный буфер кадра, потому что в противном случае эти задачи потребовали бы обработки многих сотен патентованных вариантов, которые существуют от карты к карте.

В EFI 1.x, INT 10H и Расширения VESA BIOS (VBE) заменены протоколом EFI UGA. В широко используемых UEFI 2.x INT 10H и VBE заменяются на UEFI GOP.[1][2]

Стандарты

Ранний VBE

VBE 1.0 (VS891001) был определен в 1989 году. VBE 1.1 (VS900602) был определен в 1990 году. VBE 1.2 (VS911022) был определен в 1991 году. Эти версии VBE требуют для работы реального режима.

VBE определяет несколько новых функций, вызываемых через ИНТ 10H. Нумерация функций начинается с AX = 4F00 или (AH = 4F, AL = 00) для Функция 00h. 00h до 05h были определены в VBE 1.0, 06h и 07h в 1.1 и 08h в 1.2.

Расширения VESA BIOS (ядро VBE) 2.0 [ноябрь 1994 г.]

Этот стандарт обеспечивает основные функции расширений VESA BIOS. Это позволяет приложениям определять возможности видеокарта и предоставляет возможность устанавливать найденные режимы отображения. VBE 2.0 добавляет некоторые новые функции по сравнению с предыдущим стандартом VBE 1.2, включая линейный кадровый буфер доступ и защищенный режим банковское дело. Некоторые из функций VBE Core 2.0 включают:

Линейный доступ к фреймбуферу
Обеспечивает прямой доступ к кадровому буферу в защищенном режиме как к одной большой области памяти вместо менее эффективных небольших фрагментов.
Банк в защищенном режиме
Позволяет получить доступ к фреймбуферу из защищенного режима без "переключения" на реальный режим. Это реализовано с помощью нового Функция 0Ah.
Супер VGA листание страницы
Позволяет более производительную анимацию обеспечивать плавную анимацию для компьютерных игр и других высокопроизводительных графических программ.
Виртуальные экраны Super VGA
Позволяет программному обеспечению настраивать виртуальные разрешение дисплея, больше, чем фактическое отображаемое разрешение, и плавно прокручивайте или перемещайте увеличенное изображение.
Высокий цвет и Истинный цвет режимы
Стандартные 16-битные и 24-битные графические режимы для разрешений от 320 × 200 до 1600×1200.

Расширения VESA BIOS (ядро VBE) 3.0 [сентябрь 1998 г.]

Надмножество стандарта VBE 2.0. Этот стандарт добавляет Частота обновления контроль, средства для стерео очки, улучшенная мультибуферизация и другие функции до стандарта VBE 2.0.

Тройная буферизация
Позволяет высокоскоростным приложениям выполнять мультибуферизацию с меньшим мерцанием экрана и без ожидания графического контроллера.
Контроль частоты обновления с использованием таймингов GTF
Это позволяет приложениям и утилитам операционной системы изменять частоту обновления стандартным способом на всех графических контроллерах VBE 3.0. Это важно для приложений со стереозвуком, поскольку при включении стереозвука эффективная частота обновления пользователя уменьшается вдвое.
Стерео перелистывание страниц
При просмотре приложения в стерео очки программное обеспечение должно переворачивать страницы в два раза чаще, чем обычно, потому что оно должно генерировать отдельные изображения для каждого глаза. Эта новая функция позволяет программному обеспечению, совместимому со стереозвуком, отображаться правильно.
Аппаратная стереосинхронизация
Позволяет программному обеспечению стерео определять, есть ли на видеокарте пользователя разъем для стереоочков.

Новая «точка входа в защищенный режим» была добавлена ​​в качестве альтернативы Функция 0Ah.

VBE / функции ускорителя (VBE / AF) [август 1996 г.]

VBE / AF предоставляет стандартный интерфейс низкого уровня для общих функций ускорения, доступных на большинстве аппаратных средств. Некоторые из функций, определенных в стандарте, - это доступ к аппаратным курсорам, Передача битовых блоков (Bit Blt), за кадром спрайты, аппаратное панорамирование, рисование и другие функции. Он определен для работы в защищенном режиме.

Дополнительные спецификации

Дополнительные спецификации обеспечивают независимый от устройства интерфейс между прикладным программным обеспечением и оборудованием Super VGA. Номера функций назначаются Комитетом по стандартам программного обеспечения VESA (SSC).

Расширения управления питанием (PM)

DPMS - это аппаратный стандарт, который позволяет видеокартам взаимодействовать с DPMS-совместимыми мониторы через специальную систему сигнализации, которую можно использовать с существующими графическими контроллерами и кабелями монитора. Эта система сигнализации позволяет видеокарте сообщать монитору о переходе в различные состояния управления питанием или энергосбережения, что позволяет монитору отключаться, когда он не используется.

Расширения интерфейса плоской панели (FP)

Обеспечивает доступ к специальным функциям контроллеров с плоской панелью.

Расширения аудиоинтерфейса (AI)

Предоставляет стандарт аудиоуслуг.

В настоящее время (версия 1.00) спецификация VBE / AI определяет три класса устройств: WAVE, MIDI и VOLUME. Не покрываемые типы устройств:

CDROM контроль
который покрывается Расширения для компакт-дисков Microsoft.
Процессоры эффектов
Этот класс устройств будет расширен в будущей версии спецификации VBE / AI.

OEM-расширения

Обеспечивает стандартный ввод расширений для конкретных поставщиков.

Канал данных дисплея (DDC)

В Отображение канала данных или DDC это цифровая связь между компьютерный дисплей и графический адаптер что позволяет дисплею сообщать адаптеру свои характеристики. Стандарт был создан VESA.

Последовательный интерфейс управления (SCI)

Предоставляет аппаратно-независимые средства для операционной системы и приложений для чтения и записи данных. I²C последовательный интерфейс управления.

Номера режимов VBE

Хотя номер режима является 16-битным значением, дополнительные номера режимов VBE имеют ширину 14 бит. Бит 15 используется VGA BIOS как флаг для очистки или сохранения памяти дисплея. VBE определил номера режимов следующим образом:

НемногоСмысл
0–8Номера режимов. Если бит 8 равен 1, это режим VBE, определенный VESA.
9-10Зарезервировано для расширения. Должен быть установлен на 0.
11Контроль частоты обновления Выбрать. Если установлено значение 1, используйте указанные пользователем значения CRTC для частоты обновления, в противном случае используйте частоту обновления BIOS по умолчанию.
12–13Зарезервировано для VBE / AF. Должен быть установлен на 0.
14Выбор линейного / плоского буфера кадра. Если установлено в 1, используйте линейный буфер кадра, в противном случае используйте буфер кадра с разбивкой по банкам.
15Сохранить выбор памяти дисплея. Если установлено значение 1, сохранить память дисплея, в противном случае очистить память дисплея.

Начиная с VBE / Core 2.0, VESA больше не определяет новые номера режимов VESA и больше не требует устройства для реализации старых номеров. Чтобы правильно определить информацию о режиме экрана, используйте Функция 01ч - Вернуть информацию о режиме VBE.

Режим 81FFh - это специальный видеорежим, предназначенный для сохранения текущего содержимого памяти и предоставления доступа ко всей видеопамяти.

Режимы, определенные VESA

Начиная со стандарта VBE 2.0, VESA не будет определять новые режимы, а старые режимы больше не являются обязательными. Использование определенных режимов следует считать устаревшим: современные видеокарты могут использовать или не использовать эти номера режимов (даже если большинство из них используют для обратной совместимости), а современное программное обеспечение не должно их использовать. Правильный способ для программного обеспечения обнаружить доступные режимы отображения - получить список режимов (используя «Функция 00h - возврат информации о контроллере VBE»), а затем проверять каждый режим (используя «Функция 01h: возвращать информацию о режиме VBE»), пока не найдет требуемый режим / ы.[нужна цитата ]

Графические режимы320×200640×400640×480800×6001024×7681280×1024
16-цветная палитра258 (0102h), 106 (6Ah)260 (0104h)262 (0106h)
256-цветная палитра256 (0100 ч)257 (0101h)259 (0103ч)261 (0105h)263 (0107h)
15-бит (5: 5: 5)269 ​​(010Dh)272 (0110 ч)275 (0113 ч)278 (0116h)281 (0119h)
16 бит (5: 6: 5)270 (010Eh)273 (0111h)276 (0114h)279 (0117h)282 (011Ач)
24-бит (8: 8: 8)271 (010Fh)274 (0112 ч)277 (0115 ч)280 (0118h)283 (011Bh)

Режимы 264–268 - текстовые. 264 (0108h) - 80 столбцов × 60 строк (80 × 60), 265 (0109h) - 132 × 25, 266 (010Ah) - 132 × 43, 267 (010Bh) - 132 × 50 и 268 (010Ch) - 132 × 60.

Текстовые режимыСтолбцы
Рядов80132
25265 (0109h)
43266 (010 Ач)
50267 (010Bh)
60264 (0108h)268 (010Ch)

Другие общедоступные графические режимы

В приведенной ниже таблице объединены режимы, определенные VESA (значения обозначены черным цветом), с обычно используемыми режимами, но которые могут работать не на всех видеокартах, поскольку они не определены никаким стандартом (обозначено красным).

Графические режимы320×200640×400640×480800×500800×600896×6721,024×6401,024×7681152×7201280×10241360×7681440×9001600×1200
16-цветная палитра[3][3]258 (0102h),
106 (6Ач)
260 (0104h)262 (0106h)
256-цветная палитра[3]256 (0100 ч)257 (0101h)367 (016Fh)259 (0103ч)303 (012Fh)362 (016Ач)261 (0105h)357 (0165h)263 (0107h)352 (0160 ч) [4]284 (011Ч)
15-бит (5: 5: 5)269 ​​(010Dh)289 (0121ч)272 (0110 ч)368 (0170 ч)275 (0113 ч) 304 (0130 ч)363 (016Bh)278 (0116h)358 (0166h)281 (0119h) 353 (0161h)285 (011Dh)
16 бит (5: 6: 5)270 (010Eh)290 (0122 ч)273 (0111h)369 (0171h)276 (0114h)305 (0131 ч)364 (016Ch)279 (0117h)359 (0167h)282 (011Ач) 978 (03d2h)354 (0162h)286 (011Eh)
24-бит (8: 8: 8)271 (010Fh)291 (0123ч)274 (0112 ч)370 (0172 ч)277 (0115 ч) 306 (0132 ч)365 (016Dh)280 (0118h)360 (0168h)283 (011Bh)355 (0163h)287 (011Fh)
32-бит (8: 8: 8) [5]292 (0124h)297 (0129ч)371 (0173h)302 (012Eh)307 (0133 ч)366 (016Eh)312 (0138h)361 (0169h)317 (013Dh) 980 (03d4h)356 (0164h)322 (0142h) [6]

{{}}

  1. ^ «Что такое efifb? - Документация ядра Linux». www.kernel.org. Получено 2020-11-24.
  2. ^ «Что такое vesafb? - Документация ядра Linux». www.kernel.org. Получено 2020-11-24.
  3. ^ а б c Режимы, доступные через традиционный 10-часовой вызов BIOS
  4. ^ 352 (0160 ч) также появляется для выбора 1280× 800 (8 бит) для дисплеев различных ноутбуков
  5. ^ 32-битный действительно (8: 8: 8: 8), но последнее 8-битное число - это «пустой» альфа-канал. В противном случае он равен 24-битному цвету. Многие графические процессоры используют 32-битный цветовой режим вместо 24-битного просто для более быстрого доступа к видеопамяти через 32-битный режим. выравнивание памяти.
  6. ^ 322 (0142h) 1,400 × 1,050

Обнаружение режима

Было написано несколько инструментов для обнаружения режимов VBE, доступных в системе. Обычно они работают, вызывая Функция 01h, что более надежно, чем использование таблицы расширенных режимов, поскольку она является частью самодокументирования устройства.

  • hwinfo - это инструмент обнаружения оборудования, используемый в SuSE Linux и некоторых других Дистрибутивы Linux.[1] Бег hwinfo --framebuffer сообщает графическую информацию, включая режимы VESA, в строке «Режим».
  • mdt - это Linux или ДОС инструмент, который обнаруживает поддержку VBE и распечатывает информацию видео BIOS.[2]
  • Интерфейс реального режима Linux (LRMI) имеет vbetest программа, которая распечатывает информацию VESA.
  • Программное обеспечение SciTech имел не связанный vbetest для DOS, которая восходит к 1994 году.
  • Версия x86 для ПК GNU GRUB 2 имеет vbeinfo команда для печати доступных видеорежимов и vbetest для того, чтобы попробовать определенный режим. Они используют встроенную таблицу вместо Funcion 01h. Для других платформ, включая x86 EFI, они заменены на более общие видеоинфо и видеотест.

Номера видеорежимов Linux

В Ядро Linux позволяет пользователю выбирать режим VESA во время загрузки, передавая ядру код из памяти. Загрузчик LILO передает этот код на основе параметра "vga" в своем файле конфигурации. Он принимает форму «vga = XXX», где XXX - десятичное значение, или «vga = 0xHHH», где HHH - шестнадцатеричное значение. Однако параметр загрузчика 'vga =' не принимает напрямую номера видеорежима VESA; скорее, номер видеорежима Linux - это число VESA плюс 512 (в случае десятичного представления) или плюс 0x200 (в случае шестнадцатеричного представления). Например, определенное значение VESA 257 (0x101), представляющее 640x480 и 256 цветов, имеет эквивалентное значение видеорежима Linux 769 (0x301).[3]

Как указывалось ранее, стандарт VESA определяет ограниченный набор режимов; в частности, ничего выше 1280×1024 покрыты, и, вместо этого, их реализация не является обязательной для производителей графических адаптеров. Поскольку поставщики могут использовать любые дополнительные значения, которые им нравятся, это означает, что в таблице ниже режимы обозначено красным (и выражается в десятичной форме) может не относиться к вашему графическому адаптеру!

320×200640×400640×480800×500800×600896×6721024×6401024×7681152×7201280×1,0241400×1,0501440×9001600×1,2001920×1200
16 цветов770 0302h772 0304h774 0306h
256 цветов768 03:00769 0301h879 036Fh771 0303h815 032Fh874 036Ач773 0305h869775 0307h835864796893
15-бит (5: 5: 5)781 030Dh801 0321h784 0310h880 0370h787 0313h816 03:30875 036Bh790 0316h870793 0319h865797
16 бит (5: 6: 5)782 030Eh802 0322h785 0311h881 0371h788 0314h817 0331h876 036Ч791 0317h871794 031Ач837866798
24-бит (8: 8: 8)783 030Fh803 0323h786 0312h882 0372h789 0315 ч.818 0332h877 036Dh792 0318h872795 031Bh838867799
32-бит (8: 8: 8)1804809883814819878824873829868834

1: 32-битный действительно (8: 8: 8: 8), но последнее 8-битное число - это «пустой» альфа-канал. В противном случае он равен 24-битному цвету. Многие графические процессоры используют 32-битный цветовой режим вместо 24-битного просто для более быстрого доступа к видеопамяти за счет 32-битного выравнивания памяти.

vga =864 [352 (0160h)] также появляется для выбора 1280× 800 (8 бит) для различных дисплеев ноутбуков.
vga =834 [322 (0142h)] является 1400×1050

Режимы, доступные в Parallels

Эмуляция VESA BIOS в Параллели виртуальная машина имеет другой набор нестандартных режимов VESA. Начиная с сборки 3214, LRMI vbetest показывает следующие режимы:

640×400640×480720×480800×500800×600896×6721024×6401024×7681152×7201280×1,0241440×9001600×1,200
256 цветовая палитра256 (0100 ч)257 (0101h)367 (016Fh)364 (016Ch)259 (0103ч)297 (0129ч)358 (0166h)261 (0105h)355 (0163h)263 (0107h)352 (0160 ч)284 (011Ч)
15-бит (5: 5: 5)272 (0110 ч)275 (0113 ч)278 (0116h)281 (0119h)285 (011Dh)
16 бит (5: 6: 5)289 (0121ч)273 (0111h)368 (0170 ч)365 (016Dh)276 (0114h)298 (012 Ач)359 (0167h)279 (0117h)356 (0164h)282 (011Ач)353 (0161h)286 (011Eh)
24-бит (8: 8: 8)290 (0122 ч)274 (0112 ч)369 (0171h)366 (016Eh)277 (0115 ч)299 (012Bh)360 (0168h)280 (0118h)357 (0165h)283 (011Bh)354 (0162h)287 (011Fh)

Смотрите также

использованная литература

дальнейшее чтение

внешние ссылки