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 resoluciones y profundidades de bits altas. 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 vídeo , que instala algunos vectores de interrupción que apuntan a sí mismo durante el arranque .
La mayoría de las tarjetas más nuevas implementan el estándar VBE 3.0, que es más potente. Las versiones anteriores de VBE solo proporcionan una interfaz de modo real , que no se puede usar sin una pérdida de rendimiento significativa desde 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 video; 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 se conecte a la interrupción del modo real para inicializar los modos de pantalla y obtener acceso directo al búfer de cuadros lineal de una tarjeta , porque de lo contrario, estas tareas requerirían el manejo de cientos de variaciones propietarias que existen de una tarjeta a otra.
En los sistemas EFI 1.x, el INT 10H y las extensiones VESA BIOS (VBE) se sustituyen por el protocolo EFI UGA. En los sistemas UEFI 2.x, ampliamente utilizados, el INT 10H y el VBE se sustituyen por el 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 a las que se llama mediante INT 10H . La numeración de 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.
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 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 búfer de cuadros lineal y el modo de banca protegido . Algunas de las características de VBE Core 2.0 [5] incluyen:
Un superconjunto del estándar VBE 2.0. Este estándar añade control de frecuencia de actualización , funciones 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 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 horizontal por 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 ciertas 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 de 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 los 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 una serie de estados de ahorro o administración de energía diferentes, lo que permite que el monitor se apague automáticamente cuando no está en uso.
Permite el acceso a funciones especiales en controladores de panel plano.
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 que no están contemplados:
Proporciona entrada estándar a extensiones específicas del proveedor.
El canal de datos de pantalla o DDC es una conexión digital entre la pantalla de una computadora y un adaptador gráfico 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 serial 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 bit 15 es utilizado por el BIOS VGA como un indicador para borrar o preservar la memoria de la pantalla. Los números de modo definidos por VBE son los siguientes:
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 video especial diseñado para preservar el contenido de la memoria actual y brindar acceso a toda la memoria de video.
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 "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 modo o los modos que necesita. [ cita requerida ]
Los modos 264–268 son modos de texto. 264 (0108h) tiene 80 columnas × 60 filas (80×60), 265 (0109h) tiene 132×25, 266 (010Ah) tiene 132×43, 267 (010Bh) tiene 132×50 y 268 (010Ch) tiene 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 los modos VBE disponibles en un sistema. Por lo general, funcionan invocando la función 01h , que es más confiable que asumir una tabla de modos extendidos como parte de la documentación propia 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 se remonta a 1994.vbeinfo
comando para imprimir los modos de video disponibles y vbetest
para probar un modo específico. Utilizan una tabla incorporada en lugar de la función 01h . Para otras plataformas, incluida la EFI x86, se reemplazan por el comando más genérico videoinfo
y videotest
.El núcleo Linux permite al usuario seleccionar el modo VESA en el momento del arranque pasando un código en la memoria al núcleo. El cargador de arranque LILO pasa este código basándose en un parámetro "vga" en su archivo de configuración. Tiene la forma 'vga=XXX', donde XXX es el valor decimal, o 'vga=0xHHH', donde HHH es el valor hexadecimal. Sin embargo, el parámetro 'vga=' del cargador de arranque no acepta directamente los números del modo de vídeo VESA; en su lugar, 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 Linux equivalente de 769 (0x301). [12]
Como se indicó anteriormente, el estándar VESA define un conjunto limitado de modos; en particular, ninguno por encima de1280 ×Los valores 1024 están cubiertos y, en cambio, su implementación es completamente opcional para los fabricantes de adaptadores gráficos. Como los proveedores tienen la libertad 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 ser aplicables a todos los adaptadores gráficos .
1: 32 bits es en realidad (8:8:8:8), pero el número final de 8 bits es un canal alfa "vacío". Por lo demás, equivale a un color de 24 bits. Muchas GPU utilizan el modo de color de 32 bits en lugar del modo de 24 bits simplemente para acceder más rápido a la memoria de vídeo mediante la alineación de la memoria de 32 bits.
VGA= 864 [ 352 (0160h)] también parece seleccionar1280 × 800 (8 bits) para pantallas de varios portátiles.
VGA = 834 [ 322 (0142h)] es1400 ×1050
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:
La emulación del 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 AX=0x4F01 del BIOS VESA revela estos modos (consulte también VBETables-gen.c):