Articulo de referencia

Extensiones BIOS VESA

VESA BIOS Extensions ( VBE ) es un estándar VESA , actualmente en la versión 3, que define la interfaz que el software puede usar para acceder a tarjetas de video compatibles co...

VESA BIOS Extensions ( VBE ) es un estándar VESA , actualmente en la versión 3, que define la interfaz que el software puede usar para acceder a tarjetas de video compatibles con altas resoluciones y profundidades de bits. Esto contrasta con las llamadas BIOS INT 10h "tradicionales" , que están limitadas a resoluciones de 640 × 480 píxeles con una profundidad de color de 16 (4 bits) o menos. VBE está disponible a través de la BIOS de la tarjeta de video , que instala algunos vectores de interrupción que apuntan a sí misma durante el arranque .

La mayoría de las tarjetas gráficas más recientes implementan el estándar VBE 3.0, más potente. Las versiones anteriores de VBE solo ofrecen una interfaz de modo real , que no se puede usar sin una penalización significativa en el rendimiento desde sistemas operativos en modo protegido . Por consiguiente, el estándar VBE casi nunca se ha utilizado para escribir controladores de tarjetas gráficas; cada fabricante ha tenido que inventar un protocolo propietario para comunicarse con su propia tarjeta. A pesar de esto, es común que un controlador recurra a la interrupción de modo real para inicializar los modos de pantalla y obtener acceso directo al búfer de fotogramas lineal de la tarjeta , ya que, de lo contrario, estas tareas requerirían gestionar cientos de variantes propietarias que existen en cada tarjeta.

En los sistemas EFI 1.x, el protocolo INT 10H y las extensiones VESA BIOS (VBE) se reemplazan por el protocolo EFI UGA. En los sistemas UEFI 2.x, ampliamente utilizados, el protocolo INT 10H y las extensiones VBE se reemplazan por el protocolo UEFI GOP . [ 1 ] [ 2 ]

Estándares

Inicialmente, la necesidad de estandarización surgió de problemas para acceder a resoluciones VGA superiores a las estándar y modos de profundidad de color en tarjetas gráficas Super VGA . El uso de estos modos con tarjetas de diferentes fabricantes requería controladores , que solo estaban disponibles para unos pocos programas (principalmente AutoCAD y Windows ), mientras que la mayoría del software seguía siendo para MS-DOS . El VBE permitió a los desarrolladores de aplicaciones en modo real de MS-DOS utilizar los nuevos modos gráficos de forma común y estandarizada. [ 3 ]

VBE temprano

VBE 1.0 (VS891001) se definió en 1989. [ 4 ] VBE 1.1 (VS900602) se definió en 1990. VBE 1.2 (VS911022) se definió en 1991. [ 5 ] Estas versiones de VBE requieren el modo real para funcionar. VBE define varias funciones nuevas llamadas a través de INT 10H . La numeración de las funciones comienza con AX=4F00, o (AH=4F, AL=00), para la función 00h . 00h a 05h se definieron en VBE 1.0, 06h y 07h en 1.1, y 08h en 1.2.

Extensiones VESA BIOS (núcleo VBE) 2.0 (noviembre de 1994)

Este estándar proporciona la funcionalidad principal de las extensiones VESA BIOS. Permite que las aplicaciones determinen las capacidades de la tarjeta gráfica y configuren los modos de visualización disponibles. VBE 2.0 añade algunas características nuevas con respecto al estándar anterior VBE 1.2, incluyendo el acceso lineal al framebuffer y la gestión de modos protegidos . Algunas de las características de VBE Core 2.0 [ 6 ] incluyen:

Acceso lineal al búfer de fotogramas
Permite el acceso directo al framebuffer en modo protegido como una única área grande de memoria en lugar de fragmentos más pequeños y menos eficientes.
banca en modo protegido
Permite el acceso al framebuffer desde el modo protegido sin pasar al modo real . Esto se implementa mediante una nueva función, la 0Ah , pero solo da acceso a las funciones 5 (Control de ventana de visualización, para seleccionar qué parte del framebuffer es accesible a través de la ventana de memoria VGA de 64 KB), 7 (Obtener/Establecer inicio de pantalla, para cambiar la posición de memoria del píxel superior izquierdo, lo que permite el desplazamiento y el uso de múltiples páginas de vídeo) y 9 (Obtener/Establecer datos de paleta, para cambiar los colores de la paleta en modos indexados). Por lo tanto, para configurar el modo gráfico era necesario hacerlo antes de entrar en el modo protegido o usar el modo V86 para poder ejecutar el software de la BIOS desde un sistema operativo en modo protegido.
Super VGA con cambio de página
Permite una animación de mayor rendimiento para lograr una animación fluida en videojuegos y otros programas gráficos de alto rendimiento.
Pantallas virtuales Super VGA
Permite que el software configure resoluciones de pantalla virtuales , mayores que la resolución mostrada realmente, y que se desplace o mueva suavemente por la imagen ampliada.
Modos de color alto y color verdadero
Modos gráficos estándar de la industria de 16 bits y 24 bits para resoluciones desde 320×200 hasta1600 ×1200 .

Extensiones VESA BIOS (núcleo VBE) 3.0 (septiembre de 1998)

Una versión mejorada del estándar VBE 2.0. Este estándar añade control de frecuencia de actualización , compatibilidad con gafas estereoscópicas , almacenamiento en búfer múltiple mejorado y otras funciones al estándar VBE 2.0.

Triple búfer
Permite que las aplicaciones de alta velocidad realicen almacenamiento en búfer múltiple con menos parpadeo de pantalla y sin tener que esperar al controlador gráfico.
Control de la frecuencia de actualización mediante tiempos GTF
Esto permite que las aplicaciones y las utilidades del sistema operativo cambien la frecuencia de actualización de forma estándar en todos los controladores gráficos VBE 3.0. Es importante para las aplicaciones estéreo, ya que cuando se activa el estéreo, la frecuencia de actualización efectiva del usuario se reduce a la mitad.
volteo de página estéreo
Al usar gafas estereoscópicas para visualizar una aplicación , el software necesita cambiar de página el doble de veces de lo normal, ya que debe generar imágenes independientes para cada ojo. Esta nueva función permite que el software compatible con visión estereoscópica se muestre correctamente.
Sincronización estéreo por hardware
Permite que el software estéreo determine si la tarjeta gráfica del usuario dispone de un conector para gafas estéreo.

Se agregó un nuevo "Punto de entrada al modo protegido" como alternativa a la función 0Ah . Esto permite acceder a todas las funciones de VBE, posibilitando acciones como cambiar el modo gráfico o establecer la longitud de la línea de exploración lógica desde el modo protegido, lo cual no era posible con la antigua función 0Ah .

Funciones VBE/acelerador (VBE/AF) (agosto de 1996)

VBE/AF proporciona una interfaz estándar de bajo nivel para las funciones de aceleración comunes disponibles en la mayoría del hardware. Algunas de las funciones definidas en el estándar son el acceso a cursores de hardware, transferencias de bloques de bits (Bit Blt), sprites fuera de pantalla , desplazamiento por hardware, dibujo y otras funciones. Está diseñado para funcionar en modo protegido de 32 bits. A pesar de la amplia adopción de VBE Core, muy pocos dispositivos son compatibles con VBE/AF. El proyecto FreeBE/AF implementa controladores VBE/AF gratuitos de terceros para ciertas tarjetas gráficas.

Especificaciones complementarias

Las especificaciones complementarias proporcionan una interfaz independiente del dispositivo entre el software de aplicación y el hardware Super VGA. Los números de función son asignados por el Comité de Estándares de Software (SSC) de VESA.

Extensiones de administración de energía (PM)

DPMS es un estándar de hardware que permite que las tarjetas gráficas se comuniquen con monitores compatibles mediante un sistema de señalización especial que se puede usar con controladores gráficos y cables de monitor existentes. Este sistema de señalización permite que la tarjeta gráfica le indique al monitor que entre en diferentes estados de administración o ahorro de energía, lo que permite que el monitor se apague automáticamente cuando no está en uso.

Extensiones de interfaz de panel plano (FP)

Permite el acceso a funciones especiales en controladores de pantalla plana.

Extensiones de interfaz de audio (IA)

Proporciona servicios de audio estándar. La versión 1.00 de la especificación VBE/AI define tres clases de dispositivos: WAVE, MIDI y VOLUME. Tipos de dispositivos no cubiertos:

  • Control de CD-ROM: Cubierto por las extensiones de CD-ROM de Microsoft .
  • Procesadores de efectos: Esta clase de dispositivos se ampliará en futuras versiones de la especificación VBE/AI.

Extensiones OEM

Proporciona acceso estándar a extensiones específicas del proveedor.

Canal de datos de visualización (DDC)

El Display Data Channel ( DDC) es una conexión digital entre la pantalla de un ordenador y un adaptador gráfico que permite a la pantalla comunicar sus especificaciones al adaptador. Este estándar fue creado por VESA .

Interfaz de control serie (SCI)

Proporciona medios independientes del hardware para que el sistema operativo y la aplicación lean y escriban datos a través de la interfaz de control serie I²C .

Números de modo VBE

Aunque el número de modo es un valor de 16 bits, los números de modo VBE opcionales tienen un ancho de 14 bits. El bit 15 es utilizado por la BIOS VGA como un indicador para borrar o conservar la memoria de pantalla. VBE definió los números de modo de la siguiente manera:

A partir de VBE/Core 2.0, VESA ya no define nuevos números de modo VESA y ya no requiere que un dispositivo implemente los números antiguos. Para detectar correctamente la información de un modo de pantalla, utilice la función 01h : devolver información de modo VBE .

El modo 81FFh es un modo de vídeo especial diseñado para preservar el contenido actual de la memoria y permitir el acceso a toda la memoria de vídeo.

Modos definidos por VESA

A partir del estándar VBE 2.0, VESA no definirá nuevos modos y los modos antiguos ya no serán obligatorios. El uso de modos definidos debe considerarse obsoleto: las tarjetas de video modernas pueden o no usar estos números de modo (aunque la mayoría lo hace por compatibilidad con versiones anteriores ), y el software moderno no debería usarlos. La forma correcta para que el software descubra los modos de visualización disponibles es obtener una lista de modos (usando "Función 00h: Devolver información del controlador VBE") y luego verificar cada modo (usando "Función 01h: Devolver información del modo VBE") hasta que encuentre el o los modos que necesita.

Los modos 264–268 son modos de texto. El 264 (0108h) tiene 80 columnas × 60 filas (80×60), el 265 (0109h) tiene 132×25, el 266 (010Ah) tiene 132×43, el 267 (010Bh) tiene 132×50 y el 268 (010Ch) tiene 132×60.

Otros modos gráficos comúnmente disponibles

La tabla que aparece a continuación combina los modos definidos por VESA (los valores indicados en negro) junto con los modos de uso común, pero que pueden no funcionar en todas las tarjetas gráficas, ya que no están definidos por ningún estándar ( indicados en rojo ).

Detección de modo

Se han desarrollado algunas herramientas para detectar los modos VBE disponibles en un sistema. Generalmente funcionan invocando la función 01h , lo cual es más fiable que asumir una tabla de modos extendidos, ya que forma parte de la documentación del dispositivo.

  • hwinfo es la herramienta de detección de hardware utilizada en SuSE Linux y en algunas otras distribuciones de Linux . [ 11 ] Al ejecutarla, hwinfo --framebufferse informa información gráfica, incluidos los modos VESA en una línea "Modo".
  • mdt es una herramienta de Linux o DOS que utiliza funciones de VESA BIOS para leer datos del monitor. [ 12 ]
  • La interfaz de modo real de Linux (LRMI) tiene un vbetestprograma que imprime información VESA.
  • SciTech Software tenía un programa vbetestpara DOS, sin relación alguna, que data de 1994.
  • La versión x86 "PC" de GNU GRUB 2 tiene un vbeinfocomando para imprimir los modos de vídeo disponibles y vbetestpara probar un modo específico. Utilizan una tabla integrada en lugar de la función 01h . Para otras plataformas, incluyendo x86 EFI, se reemplazan por los más genéricos videoinfoy videotest.

Números de modo de vídeo de Linux

El kernel de Linux permite al usuario seleccionar el modo VESA al arrancar pasando un código en memoria al kernel. El cargador de arranque LILO pasa este código basándose en un parámetro "vga" en su archivo de configuración . Tiene el formato 'vga=XXX', donde XXX es el valor decimal, o 'vga=0xHHH', donde HHH es el valor hexadecimal. Sin embargo, el parámetro del cargador de arranque 'vga=' no acepta directamente números de modo de vídeo VESA; en cambio, el número de modo de vídeo de Linux es el número VESA más 512 (en el caso de la representación decimal) o más 0x200 (en el caso de la representación hexadecimal). Por ejemplo, el valor VESA definido de 257 (0x101), que representa 640x480 y 256 colores, tiene un valor de modo de vídeo de Linux equivalente de 769 (0x301). [ 13 ]

Como se indicó anteriormente, el estándar VESA define un conjunto limitado de modos; en particular, ninguno superior a1280 ×Se incluyen 1024 opciones y, en cambio, su implementación es completamente opcional para los fabricantes de adaptadores gráficos. Dado que los proveedores son libres de utilizar los valores adicionales que deseen, esto significa que, en la tabla siguiente, los modos indicados en rojo (y expresados ​​en forma decimal) pueden no aplicarse a todos los adaptadores gráficos .

1: 32 bits es en realidad (8:8:8:8), pero el último número de 8 bits es un canal alfa "vacío". Por lo demás, es equivalente a color de 24 bits. Muchas GPU utilizan el modo de color de 32 bits en lugar del de 24 bits simplemente para un acceso más rápido a la memoria de vídeo mediante la alineación de memoria de 32 bits.

VGA= 864 [ 352 (0160h)] también parece seleccionar1280 × 800 (8 bits) para las pantallas de varios portátiles. VGA = 834 [ 322 (0142h)] es1400 ×1050

Modos disponibles en Parallels

La emulación de BIOS VESA en la máquina virtual Parallels tiene un conjunto diferente de modos VESA no estándar. A partir de la compilación 3214, LRMI vbetest revela estos modos:

Modos disponibles en VirtualBox

La emulación de BIOS VESA en la máquina virtual VirtualBox tiene un conjunto diferente de modos VESA no estándar. A partir de la compilación r153438 de 6.1.38_Ubuntu, la función BIOS VESA AX=0x4F01 revela estos modos (véase también VBETables-gen.c ):

Además de estos, los usuarios pueden especificar sus propios modos de vídeo. [ 14 ]

Véase también

Referencias

  1. "¿Qué es efifb? — La documentación del kernel de Linux" . kernel.org . Consultado el 24 de noviembre de 2020 .
  2. "¿Qué es vesafb? — La documentación del kernel de Linux" . kernel.org . Consultado el 24 de noviembre de 2020 .
  3. ^ Kliewer, Bradley Dyck (diciembre de 1990). "VGA al máximo" . BYTE . vol. 15, núm. 13. págs. 355–360 . ISSN 0360-5280 . Consultado el 6 de enero de 2026 .    
  4. "SUPER VGA BIOS EXTENSION Standard # VS891001 › Gemixtes" . 11 de diciembre de 2013. Archivado del original el 11 de diciembre de 2013. Recuperado el 27 de diciembre de 2022 . 
  5. "VBE Versión 1.2" . 22 de octubre de 1991. Archivado del original el 14 de enero de 2009. Consultado el 27 de diciembre de 2022 .
  6. "Estándar VBE/Core 2.0" . 11 de diciembre de 2008. Archivado del original el 11 de diciembre de 2008. Consultado el 27 de diciembre de 2022 .
  7. 1 2 3 Modos disponibles a través de la llamada tradicional a la BIOS de 10 horas
  8. 352 (0160h) también parece seleccionar1280 × 800 (8 bits) para pantallas de diversos portátiles
  9. 32 bits es realmente (8:8:8:8), pero el último número de 8 bits es un canal alfa "vacío". Por lo demás, es igual a color de 24 bits. Muchas GPU usan el modo de color de 32 bits en lugar del modo de 24 bits simplemente para un acceso más rápido a la memoria de video a través de la alineación de memoria de 32 bits .
  10. 322 (0142h) es 1400 × 1050
  11. Código fuente de hwinfo en GitHub
  12. "mdt" . GitHub .
  13. Consulte la documentación del kernel en Documentation/svga.txt y Documentation/fb/vesafb.txt .
  14. "Temas avanzados: resoluciones VESA personalizadas" . virtualbox.org . Consultado el 15 de julio de 2026 .

Lecturas adicionales

  • Extensión de BIOS VESA Super VGA 1.0 (Estándar n.° VS891001) 1 de octubre de 1989
  • Extensión VESA BIOS 1.2
  • Extensión VESA BIOS 2.0
  • Extensión VESA BIOS 3.0
  • El análisis de la especificación VESA VBE 2.0 por el Dr. Dobb en Wayback Machine (archivado el 8 de mayo de 2024)
  • Cómo usar Super VGA (VESA 1.x no lineal)
  • Estándar de interfaz de control serie de extensión BIOS VESA en Wayback Machine (archivado el 21/12/2005)
  • Funciones de extensión/aceleración de la BIOS VESA (VBE/AF) en Wayback Machine (archivado el 9 de diciembre de 2008)
  • Interfaz VESA BIOS
  • Notas del programador de SuperVGA/VESA
  • Lista de chipsets que implementan VESA VBE 2.0/3.0
  • Captura de información del modo VBE del paquete fuente vbespy. Archivado el 22 de julio de 2011 en Wayback Machine.
  • Cómo usar el paquete fuente vbespy
  • VBETOOL : una aplicación (actualmente archivada) para ejecutar código BIOS de tarjetas de video.