El modo de texto VGA fue introducido en 1987 por IBM como parte del estándar VGA para sus computadoras IBM PS/2 . [1] Su uso en PC compatibles con IBM se generalizó durante la década de 1990 y persiste hoy en día para algunas aplicaciones en computadoras modernas. [2] Las características principales del modo de texto VGA son los caracteres coloreados ( paleta de 16 colores programables ) y su fondo, el parpadeo, varias formas del cursor (bloque/subrayado/oculto estático/parpadeante), [3] y fuentes cargables (con varios tamaños de glifos). [4] La consola Linux tradicionalmente usa modos de texto VGA de hardware, [5] y el entorno de la consola Win32 tiene la capacidad de cambiar la pantalla al modo de texto para algunos tamaños de ventana de texto.
Cada carácter de pantalla está representado por dos bytes alineados como una palabra de 16 bits accesible por la CPU en una sola operación. El byte inferior (o de carácter) es el punto de código real para el conjunto de caracteres actual, y el byte superior (o de atributo) es un campo de bits utilizado para seleccionar varios atributos de vídeo como color, parpadeo, conjunto de caracteres, etc. [6] Este esquema de par de bytes se encuentra entre las características que el VGA heredó del EGA , CGA y, en última instancia, del MDA .
Los colores se asignan de la misma manera que en los modos gráficos de color indexados de 4 bits (consulte la paleta de colores VGA ).Los modos VGA no necesitan los atributos inversos y brillantes del MDA porque los colores de primer plano y de fondo se pueden configurar explícitamente.
El hardware VGA tiene la capacidad de habilitar un subrayado en cualquier carácter que tenga el atributo bit 0 establecido. Sin embargo, dado que se trata de una característica compatible con MDA, [7] los bits de atributo no utilizados por MDA deben establecerse en cero o no se mostrará el subrayado. [6] Esto significa que sólo los bits 3 (intensidad) y 7 (parpadeo) se pueden configurar simultáneamente con el bit 0 (subrayado). [8] Con la paleta VGA predeterminada, configurar el bit 0 para habilitar el subrayado también cambiará el color del texto a azul. Esto significa que sólo se puede subrayar texto en dos colores (5555FF y 0000AA con la paleta predeterminada).
A pesar de todo esto, el subrayado normalmente no es visible en los modos de color, ya que la ubicación predeterminada del subrayado es una línea de exploración debajo del glifo del carácter, lo que lo vuelve invisible. [6] Si la ubicación del subrayado está configurada en una línea de exploración visible (como ocurre de forma predeterminada cuando se cambia a un modo de texto monocromático compatible con MDA), aparecerá el subrayado.
Las fuentes de pantalla utilizadas en EGA y VGA son fuentes rasterizadas monoespaciadas que contienen 256 glifos. Todos los glifos de una fuente tienen el mismo tamaño, pero este tamaño se puede cambiar. Normalmente, los glifos tienen 8 puntos de ancho y entre 8 y 16 puntos de alto; sin embargo, la altura puede tener cualquier valor hasta un máximo de 32. Cada fila de un glifo está codificada en un byte de 8 bits , con los bits altos a la izquierda del glifo y bits bajos a la derecha. Junto con varias fuentes dependientes del hardware almacenadas en la ROM del adaptador , el modo de texto ofrece 8 [6] fuentes cargables. Dos punteros de fuente activos (fuente A y fuente B) seleccionan dos de las fuentes disponibles, aunque normalmente apuntan a la misma fuente. Cuando cada uno apunta a fuentes diferentes, el bit de atributo 3 (ver arriba) actúa como un bit de selección de fuente en lugar de un bit de color de primer plano. En hardware VGA real, esto anula el uso del bit para la selección de color, pero en muchos clones y emuladores, la selección de color permanece, lo que significa que una fuente se muestra con intensidad normal y la otra con intensidad alta. Este error se puede solucionar cambiando los registros de la paleta para que contengan dos copias de una paleta de 8 colores. Una tarjeta de video compatible con VGA debe implementar los caracteres de la página de códigos 437 en su BIOS de video . [ cita necesaria ]
Hay modos con un ancho de cuadro de caracteres de 9 puntos (por ejemplo, el modo predeterminado 80×25); sin embargo, la novena columna se usa para el espaciado entre caracteres, por lo que el contenido no se puede cambiar. Siempre está en blanco y dibujado con el color de fondo actual. [6] Una excepción a esto es el modo Habilitar gráficos de línea , que hace que los puntos de código 0x C0 a 0xDF inclusive [6] tengan la octava columna repetida como la novena. Estos puntos de código cubren los caracteres de dibujo de cuadro que deben extenderse hasta el lado derecho del cuadro de glifo. Por este motivo, se debe evitar colocar caracteres similares a letras en los puntos de código 0xC0–0xDF. Los caracteres de dibujo de cuadro de 0xB0 a 0xBF no están extendidos, ya que no apuntan hacia la derecha y, por lo tanto, no es necesario extenderlos.
La forma del cursor está restringida a un rectángulo del ancho completo del cuadro de carácter y se rellena con el color de primer plano del carácter en la ubicación actual del cursor. Su altura y posición se pueden establecer en cualquier lugar dentro de un cuadro de carácter. [9] El EGA y muchos clones de VGA permitían un cursor de cuadro dividido (que aparecía como dos rectángulos, uno en la parte superior del cuadro de carácter y otro en la parte inferior), al establecer el final del cursor antes del inicio, sin embargo, si esto se realiza en el VGA original, el cursor está completamente oculto. [9] El estándar VGA no proporciona una manera de alterar la velocidad de parpadeo, [9] aunque las soluciones comunes implican ocultar el cursor y usar un glifo de carácter normal para proporcionar el llamado cursor de software.
Un cursor de mouse en TUI (cuando está implementado) no suele ser lo mismo que un cursor de hardware, sino un rectángulo en movimiento con un fondo alterado o un glifo especial.
Algunas interfaces basadas en texto, como la de Impulse Tracker , hicieron todo lo posible para proporcionar un cursor de mouse más fluido y con apariencia más gráfica. Esto se hizo regenerando constantemente glifos de caracteres en tiempo real de acuerdo con la posición del cursor en la pantalla. [10] [11] [12] [13]
Generalmente hay dos formas de acceder al modo de texto VGA para una aplicación: a través de la interfaz de Video BIOS o accediendo directamente a la RAM de video [4] y a los puertos de E/S. El último método es considerablemente más rápido y permite una lectura rápida del búfer de texto, por lo que se prefiere para programas TUI avanzados.
El búfer de texto VGA está ubicado en la dirección de memoria física 0xB8000. [14] Dado que esta dirección suele ser utilizada por procesos x86 de 16 bits que operan en modo real, también es la primera mitad del segmento de memoria 0xB800. Los datos del búfer de texto se pueden leer y escribir, y se pueden aplicar operaciones bit a bit . Se puede acceder a una parte de la memoria intermedia de texto por encima del alcance del modo actual, pero no se muestra.
Las mismas direcciones físicas se utilizan en modo protegido . Las aplicaciones pueden tener esta parte de la memoria asignada a su espacio de direcciones o acceder a ella a través del sistema operativo . Cuando una aplicación (en un sistema operativo multitarea moderno ) no tiene control sobre la consola , accede a una parte de la RAM del sistema en lugar del búfer de texto real.
Para las computadoras de la década de 1980, la manipulación muy rápida del búfer de texto, con el hardware generando los píxeles individuales tan rápido como podían mostrarse, era extremadamente útil para una interfaz de usuario rápida. Incluso en hardware relativamente moderno, la sobrecarga de la emulación del modo texto mediante modos APA (gráficos) del hardware (en los que el programa genera píxeles individuales y los almacena en el búfer de vídeo) puede ser notable.
Desde el lado del monitor, no hay diferencia en la señal de entrada en un modo de texto y en un modo Todos los puntos direccionables (APA) del mismo tamaño. Una señal en modo texto puede tener los mismos tiempos que los modos estándar VESA . Los mismos registros se utilizan en el lado del adaptador para configurar estos parámetros en modo texto como en los modos APA. La señal de salida del modo texto es esencialmente la misma que en los modos gráficos, pero su fuente es un búfer de texto y un generador de caracteres, no un búfer de fotogramas como en APA.
Dependiendo del adaptador de gráficos utilizado, hay una variedad de modos de texto disponibles en computadoras compatibles con IBM PC . Se enumeran en la siguiente tabla:
Las tarjetas VGA y compatibles admiten los modos MDA, CGA y EGA. Todos los modos coloreados tienen el mismo diseño de atributos de texto. Los modos MDA tienen algunas características específicas (ver arriba): un texto se puede enfatizar con atributos brillantes, subrayados, invertidos y parpadeantes.
El modo de texto más común utilizado en entornos DOS y consolas iniciales de Windows es el predeterminado de 80 columnas por 25 filas, u 80×25 , con 16 colores y caracteres de 8×16 píxeles de tamaño. Las tarjetas VGA siempre tienen una fuente incorporada de este tamaño, mientras que otros tamaños pueden requerir la descarga de una fuente de diferente tamaño. [28] Este modo estaba disponible en prácticamente todas las computadoras personales IBM y compatibles.
El kernel de Linux 2.6 y posteriores asume que los modos de 0000h a 00FFh representan modos estándar si el BIOS VGA los admite, y que los modos de 0100h a 07FFh representan modos VESA si el BIOS VESA los admite. Los modos de 0900h a 09FFh son modos especiales de Video7 (generalmente 0940h=80×43, 0941h=132×25, 0942h=132×44, 0943h=80×60, 0944h=100×60, 0945h=132×28 para el Video7 típico BIOS). [29] Linux 2.x permite comprobar las resoluciones de vídeo admitidas pasando el argumento "vga=ask". [30]
Las versiones posteriores de Linux permiten especificar la resolución usando modos desde 1000h hasta 7FFFh. El código tiene el formato "0xHHWW", donde HH es un número de filas y WW es un número de columnas. Por ejemplo, 0x1950 corresponde a un modo 80×25, 0x2b84 a 132×43, etc. [29] (Linux 3.x y posteriores permiten configurar la resolución usando "video=<conn>:<xres>x<yres>", pero únicamente para controladores de framebuffer de vídeo [30] [31] ) .
Existen otros dos modos de texto VGA, 80×43 y 80×50, pero son menos comunes. Windows NT 4.0 mostró los mensajes del sistema durante el proceso de arranque en modo de texto de 80×50. [32]
Los tamaños de caracteres y las resoluciones gráficas para los modos de texto Super VGA compatibles con VESA ampliada dependen del fabricante. Algunas tarjetas, por ejemplo la S3 , admitían algunos modos de texto personalizados de gran tamaño, como 132×43 y 132×25. [33] Algunos adaptadores gráficos de la década de 2000 eran capaces de configurar un modo de texto de tamaño arbitrario (dentro de límites razonables) en lugar de elegir sus parámetros de alguna lista.
En sistemas Linux y DOS con tarjetas denominadas SVGA, se puede utilizar un programa llamado SVGATextMode [34] para configurar modos de texto más atractivos que los estándar EGA y VGA. Esto es particularmente útil para monitores grandes (≥ 17"), donde la resolución de 720×400 píxeles del modo de texto VGA normal de 80 × 25 es mucho menor que la que sería un modo de gráficos típico. SVGATextMode permite configurar el reloj de píxeles y una frecuencia de actualización más alta . mayor tamaño de fuente, tamaño de cursor, etc., y permite un mejor uso del potencial de una tarjeta de video y un monitor. En sistemas que no son Windows, el uso de SVGATextMode (u opciones alternativas como el framebuffer de Linux ) para obtener un texto nítido. es fundamental para monitores LCD de 1280×1024 (o resolución superior) porque ninguna de las resoluciones del modo de texto estándar se ajusta exactamente a este tamaño de matriz (y habría artefactos de escalamiento). SVGATextMode también permite un ajuste fino de los tiempos de la señal de video.
A pesar del nombre de este programa, sólo algunos de sus modos compatibles cumplen con los estándares SVGA (es decir, VESA).
El modo de texto VGA tiene algunas limitaciones impuestas por el hardware. Debido a que son demasiado restrictivos para las aplicaciones modernas (posteriores a 2000), el modo de texto de hardware en los adaptadores de vídeo compatibles con VGA sólo tiene un uso limitado.
* Se pueden utilizar 8 colores para la fuente A y otros 8 colores para la fuente B; entonces, si la fuente A ≠ fuente B (modo de 512 caracteres), entonces la paleta debe reducirse a la mitad y un texto puede usar efectivamente solo 8 colores.
** Normalmente, los primeros 8 colores de la misma paleta. Si el parpadeo está desactivado, los 16 colores estarán disponibles para el fondo.
En plataformas x86, el módulo emulador de terminal del kernel de Solaris (tem) utiliza el modo de texto VGA exclusivamente para interactuar con el módulo vgatext. El módulo vgatext utiliza el modo de texto VGA estándar de la industria para interactuar con dispositivos de frame buffer compatibles con x86.
El byte correspondiente en el plano 1 se utiliza para especificar los atributos del carácter, posiblemente incluyendo color, selección de fuente, parpadeo, subrayado e inversión.
A diferencia de los adaptadores de vídeo originales de IBM, el CGA y el MDA, que almacenan mapas de bits de caracteres en la ROM donde no pueden modificarse, el EGA y el VGA los almacenan en la RAM.
Si fbcon se desconecta de la capa de la consola, el controlador de la consola de inicio (que generalmente es el modo de texto VGA) se hará cargo.
El rastreador se ejecuta completamente en modo texto con una clara reasignación de caracteres.
[...] características con algunas notas:[...] Funciones de generación de caracteres y mouse en general. El modo de texto me permitió mantener la interfaz de usuario ágil y los requisitos de memoria bajos, pero cerré la brecha con la generación de caracteres en tiempo real más allá de lo que he visto en otros programas.
Jeffrey Lim, autor del popular programa Impulse Tracker
Se pueden mostrar 16 colores diferentes al mismo tiempo. Los caracteres tienen un tamaño de 8×16 píxeles y una fuente consta de 256 caracteres. Una fuente integrada de este tamaño siempre está presente en una tarjeta VGA.
Una diferencia obvia entre Windows 2000/XP y Windows NT 4.0 es el hecho de que todos los mensajes del sistema que aparecen durante el proceso de arranque de Windows NT 4.0 se muestran en modo texto 80×50, mientras que Windows 2000 y Windows XP muestran estos mensajes en modo VGA.
El S3 ViRGE admite modos de texto extendido 132 × 43 y 132 × 25 para aplicaciones de texto. Esto también le permite emular terminales que requieren 132 columnas de texto.
{{cite web}}
: CS1 maint: numeric names: authors list (link)SVGATextMode utiliza funciones adicionales en las tarjetas SVGA para mejorar los modos de texto de Linux. Permite configurar el reloj de píxeles, los tiempos H/V, el tamaño de fuente, el tamaño del cursor, etc., y le permite utilizar su tarjeta de vídeo y su monitor en todo su potencial en modo texto.