VESA BIOS Extensions ( VBE ) es un estándar VESA , actualmente en la versión 3, que define la interfaz que puede utilizar el software para acceder a placas de vídeo compatibles con altas resoluciones y profundidades de bits. Esto se opone a las llamadas BIOS INT 10h "tradicionales" , que están limitadas a resoluciones de 640 × 480 píxeles con una profundidad de 16 colores (4 bits) o menos. VBE está disponible a través del BIOS de la tarjeta de video , que instala durante el arranque algunos vectores de interrupción que apuntan a sí mismo.
La mayoría de las tarjetas más nuevas implementan el estándar VBE 3.0, más capaz. Las versiones anteriores de VBE solo proporcionan una interfaz en modo real , que no se puede utilizar sin una reducción significativa del rendimiento dentro de los sistemas operativos en modo protegido . En consecuencia, el estándar VBE casi nunca se ha utilizado para escribir los controladores de una tarjeta de vídeo; Por lo tanto, cada proveedor ha tenido que inventar un protocolo propietario para comunicarse con su propia tarjeta de video. A pesar de esto, es común que un controlador recurra a la interrupción del modo real para inicializar los modos de pantalla y obtener acceso directo al búfer de marco lineal de una tarjeta , porque de lo contrario estas tareas requerirían manejar muchos cientos de variaciones propietarias que existen de una tarjeta a otra. tarjeta.
En los sistemas EFI 1.x, INT 10H y VESA BIOS Extensions (VBE) se reemplazan por el protocolo EFI UGA. En los sistemas UEFI 2.x ampliamente utilizados , INT 10H y VBE son reemplazados por UEFI GOP . [1] [2]
VBE 1.0 (VS891001) se definió en 1989. [3] VBE 1.1 (VS900602) se definió en 1990. VBE 1.2 (VS911022) se definió en 1991. [4] 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 funciones comienza con AX=4F00, o (AH=4F, AL=00), para la Función 00h . De 00h a 05h se definieron en VBE 1.0, 06h y 07h en 1.1, y 08h en 1.2.
Este estándar proporciona la funcionalidad principal de las extensiones de BIOS VESA. Permite que las aplicaciones determinen las capacidades de la tarjeta gráfica y brinda la posibilidad de configurar los modos de visualización que se encuentran. VBE 2.0 agrega algunas características nuevas por encima del estándar VBE 1.2 anterior, incluido el acceso al framebuffer lineal y el modo bancario protegido . Algunas de las características de VBE Core 2.0 [5] incluyen:
Un superconjunto del estándar VBE 2.0. Este estándar agrega control de frecuencia de actualización , facilidades para gafas estéreo , almacenamiento en búfer múltiple mejorado y otras funciones al estándar VBE 2.0.
Se agregó un nuevo "Punto de entrada en modo protegido" como alternativa a la Función 0Ah .
VBE/AF proporciona una interfaz estándar de bajo nivel para 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 la pantalla , panorámica de hardware, dibujo y otras funciones. Está definido para funcionar en modo protegido de 32 bits. A pesar de la adopción generalizada de VBE Core, muy pocos dispositivos admiten VBE/AF. El proyecto FreeBE/AF implementa controladores VBE/AF de terceros gratuitos para determinadas tarjetas gráficas.
Las especificaciones complementarias proporcionan una interfaz independiente del dispositivo entre el software de la aplicación y el hardware Super VGA. Los números de función los asigna el Comité de estándares de software VESA (SSC).
DPMS es un estándar de hardware que permite que las tarjetas gráficas se comuniquen con monitores compatibles con DPMS a través de un sistema de señalización especial que se puede utilizar con controladores de 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 varios estados diferentes de administración de energía o ahorro de energía, lo que efectivamente permite que el monitor se apague solo cuando no está en uso.
Permite el acceso a funciones especiales en controladores de pantalla plana.
Proporciona estándar para servicios de audio.
Actualmente (versión 1.00), la especificación VBE/AI define tres clases de dispositivos: WAVE, MIDI y VOLUME. Tipos de dispositivos no cubiertos:
Proporciona entrada estándar a extensiones específicas del proveedor.
El Display Data Channel o DDC es una conexión digital entre una pantalla de computadora y un adaptador de gráficos que permite que la pantalla comunique sus especificaciones al adaptador. El estándar fue creado por VESA .
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 .
Aunque el número de modo es un valor de 16 bits, los números de modo VBE opcionales tienen 14 bits de ancho. El BIOS VGA utiliza el bit 15 como indicador para borrar o preservar la memoria de la 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 un dispositivo para implementar los números antiguos. Para detectar correctamente la información de un modo de pantalla, utilice la Función 01h - Devolver información del modo VBE .
El modo 81FFh es un modo de vídeo especial diseñado para preservar el contenido actual de la memoria y dar acceso a toda la memoria de vídeo.
A partir del estándar VBE 2.0, VESA no definirá nuevos modos y los modos antiguos ya no son 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 la "Función 00h - Devolver información del controlador VBE") y luego verificar cada modo (usando la "Función 01h: Devolver información del modo VBE") hasta que encuentre el/los modo/s que requiere. [ cita necesaria ]
Los modos 264–268 son modos de texto. 264 (0108h) es 80 columnas × 60 filas (80×60), 265 (0109h) es 132×25, 266 (010Ah) es 132×43, 267 (010Bh) es 132×50 y 268 (010Ch) es 132× 60.
La siguiente tabla combina los modos definidos por VESA (los valores indicados en negro) junto con los modos comúnmente utilizados, 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 ).
Se han escrito algunas herramientas para detectar modos VBE disponibles en un sistema. Generalmente funcionan invocando la Función 01h , que es más confiable que asumir una tabla de modos extendidos, ya que es parte de la autodocumentación del dispositivo.
hwinfo --framebuffer
informa información gráfica, incluidos los modos VESA en una línea "Modo".vbetest
programa que imprime información VESA.vbetest
para DOS que data de 1994.vbeinfo
comando para imprimir los modos de video disponibles y vbetest
para probar un modo específico. Usan una tabla incorporada en lugar de la Función 01h . Para otras plataformas, incluida x86 EFI, se reemplazan por las más genéricas videoinfo
y videotest
.El kernel de Linux permite al usuario seleccionar el modo VESA en el momento del arranque pasando un código en la 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. Toma la forma '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 los números de modo de vídeo VESA; más bien, el número del 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). [12]
Como se indicó anteriormente, el estándar VESA define un conjunto limitado de modos; en particular, ninguno arriba1280 ×1024 están cubiertos y, en cambio, su implementación es completamente opcional para los fabricantes de adaptadores gráficos. Como los proveedores son libres de utilizar cualquier valor adicional que deseen, esto significa que, en la siguiente tabla, los modos indicados en rojo (y expresados en forma decimal) pueden no aplicarse a todos los adaptadores gráficos .
1: 32 bits es realmente (8:8:8:8), pero el número final de 8 bits es un canal alfa "vacío". Por lo demás, es igual al color de 24 bits. Muchas GPU utilizan 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 la memoria de 32 bits.
VGA= 864 [ 352 (0160h)] también aparece para seleccionar1280 × 800 (8 bits) para pantallas de varias computadoras portátiles.
VGA= 834 [ 322 (0142h)] es1400 ×1050
La emulación VESA BIOS 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: