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 las compatibles con IBM PC fue generalizado 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 caracteres de color ( paleta programable de 16 colores ) y su fondo, parpadeo, varias formas del cursor (bloque/subrayado/estático oculto/parpadeante), [ 3 ] y fuentes cargables (con varios tamaños de glifos). [ 4 ] La consola Linux tradicionalmente utiliza modos de texto VGA por hardware, [ 5 ] y el entorno de consola Win32 tiene la capacidad de cambiar la pantalla al modo de texto para algunos tamaños de ventana de texto.
Disposición de datos
Búfer 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 pares de bytes es una de las características que la VGA heredó de la EGA , la CGA y, en última instancia, de la MDA .
- ^ Dependiendo de la configuración del modo, el bit de atributo 7 puede ser el bit de parpadeo o el cuarto bit de color de fondo (lo que permite que los 16 colores se utilicen como colores de fondo).
- El bit 3 del atributo (intensidad de primer plano) también selecciona entre las fuentes A y B (véasemás abajo). Por lo tanto, si estas fuentes no son iguales, este bit funciona simultáneamente como un bit de punto de código adicional.
- ^ El bit de atributo 0 también habilita el subrayado, si ciertos otros bits de atributo están configurados a cero (vermás abajo).
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 de inversión y brillo del MDA porque los colores de primer plano y de fondo se pueden configurar explícitamente.
Subrayar
El hardware VGA tiene la capacidad de habilitar un subrayado en cualquier carácter que tenga el bit de atributo 0 activado. Sin embargo, dado que esta es una función compatible con MDA, [ 7 ] los bits de atributo no utilizados por MDA deben establecerse en cero o el subrayado no se mostrará. [ 6 ] Esto significa que solo los bits 3 (intensidad) y 7 (parpadeo) pueden configurarse 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 el texto en dos colores solo puede ser subrayado (5555FF y 0000AA con la paleta predeterminada).
A pesar de todo esto, el subrayado no suele ser visible en los modos de color, ya que su ubicación predeterminada 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 se establece en una línea de exploración visible (como ocurre por defecto al cambiar a un modo de texto monocromo compatible con MDA), entonces el subrayado aparecerá.
Fuentes

Las fuentes de pantalla utilizadas en EGA y VGA son fuentes raster monoespaciadas que contienen 256 glifos, y se pueden usar 2 fuentes simultáneamente, para un total de 512 glifos. Todos los glifos en pantalla tienen el mismo tamaño, pero ese tamaño es variable. Normalmente, los glifos tienen 8 puntos de ancho y 8–16 puntos de alto, sin embargo, la altura puede ser 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 los 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 como 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 alta intensidad. Esta diferencia (e incompatibilidad) se puede superar cambiando los registros de paleta para que contengan dos copias de una paleta de 8 colores. Una tarjeta de video compatible con VGA debe implementar caracteres ASCII en su BIOS de video ; las fuentes de texto VGA de otros idiomas europeos, como el alemán y el ruso , pueden definirse en otras páginas de códigos .
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 se dibuja con el color de fondo actual. [ 6 ] Una excepción a esto es en 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 aquellos caracteres de dibujo de cuadro que deben extenderse hasta el lado derecho del cuadro de glifo. Por esta razón, debe evitarse colocar caracteres similares a letras en los puntos de código 0xC0–0xDF. Los caracteres de dibujo de cuadro de 0xB0 a 0xBF no se extienden, ya que no apuntan a la derecha y, por lo tanto, no requieren extensión.
Cursor

La forma del cursor está restringida a un rectángulo del ancho completo del cuadro de caracteres y se rellena con el color de primer plano del carácter en la ubicación actual del cursor. Su altura y posición pueden establecerse en cualquier lugar dentro de un cuadro de caracteres;. [ 9 ] 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 caracteres y otro en la inferior), estableciendo el final del cursor antes del inicio, sin embargo, si esto se hace en el VGA original, el cursor se oculta por completo. [ 9 ] El estándar VGA no proporciona una forma de alterar la frecuencia de parpadeo, [ 9 ] aunque las soluciones alternativas comunes implican ocultar el cursor y usar un glifo de carácter normal para proporcionar un llamado cursor de software.
En una interfaz de usuario de texto (cuando está implementada), el cursor del ratón no suele ser lo mismo que un cursor de hardware, sino un rectángulo en movimiento con un fondo modificado o un glifo especial.
Algunas interfaces basadas en texto, como la de Impulse Tracker , fueron aún más allá para proporcionar un cursor de ratón más fluido y con un aspecto más gráfico. Esto se logró regenerando constantemente los glifos de los caracteres en tiempo real según la posición del cursor en la pantalla. [ 10 ] [ 11 ] [ 12 ] [ 13 ]
Métodos de acceso
Generalmente, existen dos maneras de acceder al modo texto VGA para una aplicación: a través de la interfaz del BIOS de vídeo o accediendo directamente a la memoria RAM de vídeo [ 4 ] y a los puertos de E/S. Este último método es considerablemente más rápido y permite una lectura ágil del búfer de texto, por lo que se prefiere para programas TUI avanzados.
El búfer de texto VGA se encuentra 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 corresponde a 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 . Una parte de la memoria del búfer de texto que excede el alcance del modo actual es accesible, pero no se muestra.
En modo protegido se utilizan las mismas direcciones físicas . 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 propiamente dicho.
Para los ordenadores de la década de 1980, la manipulación ultrarrápida del búfer de texto, con el hardware generando los píxeles individuales tan rápido como se podían mostrar, resultaba extremadamente útil para una interfaz de usuario rápida. Incluso en hardware relativamente moderno, la sobrecarga de la emulación del modo texto mediante los 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 perceptible.
Modos y tiempos
señal de vídeo
Desde la perspectiva del monitor, no hay diferencia en la señal de entrada entre el modo de texto y el modo APA ( All Points Addressable ) del mismo tamaño. Una señal en modo de texto puede tener la misma temporización que los modos estándar VESA . En el adaptador, se utilizan los mismos registros para configurar estos parámetros tanto en modo de texto como en modo APA. La señal de salida en modo de texto es esencialmente la misma que en los modos gráficos, pero su origen es un búfer de texto y un generador de caracteres, no un framebuffer como en APA.
Modos de texto comunes en PC
Según el adaptador gráfico utilizado, en los ordenadores compatibles con IBM PC hay disponibles diversos modos de texto . Estos se enumeran en la tabla siguiente:
Las tarjetas VGA y compatibles admiten los modos MDA, CGA y EGA. Todos los modos de color tienen el mismo diseño de atributos de texto. Los modos MDA tienen algunas características específicas (ver más arriba ) : un texto puede resaltarse con atributos de brillo, subrayado, inversión y parpadeo.
El modo de texto más común utilizado en entornos DOS y consolas Windows iniciales es el predeterminado de 80 columnas por 25 filas, o 80×25 , con 16 colores y caracteres de 8×16 píxeles. Las tarjetas VGA siempre tienen una fuente integrada de este tamaño, mientras que otros tamaños pueden requerir la descarga de una fuente de tamaño diferente. [ 27 ] Este modo estaba disponible en prácticamente todos los ordenadores 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 la BIOS VGA los admite, y que los modos de 0100h a 07FFh representan modos VESA si la BIOS VESA los admite. Los modos de 0900h a 09FFh son modos especiales Video7 (normalmente 0940h=80×43, 0941h=132×25, 0942h=132×44, 0943h=80×60, 0944h=100×60, 0945h=132×28 para la BIOS Video7 típica). [ 28 ] Linux 2.x permite comprobar las resoluciones de vídeo admitidas pasando el argumento "vga=ask". [ 29 ]
Las versiones posteriores de Linux permiten especificar la resolución usando modos de 1000h a 7FFFh. El código tiene el formato "0xHHWW", donde HH es el número de filas y WW el número de columnas. Por ejemplo, 0x1950 corresponde a un modo de 80×25, 0x2b84 a 132×43, etc. [ 28 ] (Linux 3.x y posteriores permiten establecer la resolución usando "video=<conn>:<xres>x<yres>", pero solo para controladores de framebuffer de vídeo . [ 29 ] [ 30 ] )
Existen otros dos modos de texto VGA, 80×43 y 80×50, pero son menos comunes. Windows NT 4.0 mostraba sus mensajes del sistema durante el proceso de arranque en modo de texto 80×50. [ 31 ]
Los tamaños de caracteres y las resoluciones gráficas para los modos de texto Super VGA compatibles con VESA extendido dependen del fabricante. Algunas tarjetas, por ejemplo S3 , admitían algunos modos de texto personalizados muy grandes, como 132×43 y 132×25. [ 32 ] 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.
Modo texto SVGA
En sistemas Linux y DOS con tarjetas SVGA, se puede usar un programa llamado SVGATextMode [ 33 ] para configurar modos de texto con mejor aspecto 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 de un modo gráfico típico. SVGATextMode permite configurar el reloj de píxeles y una mayor frecuencia de actualización , un mayor tamaño de fuente, tamaño del 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 mayor resolución) porque ninguna de las resoluciones estándar del modo de texto se ajusta exactamente a este tamaño de matriz (y habría artefactos de escalado). SVGATextMode también permite un ajuste fino de los tiempos de la señal de video.
A pesar del nombre de este programa, solo algunos de sus modos compatibles cumplen con los estándares SVGA (es decir, VESA).
Restricciones generales
El modo de texto VGA tiene algunas limitaciones impuestas por el hardware. Debido a que estas son demasiado restrictivas para las aplicaciones modernas (posteriores al año 2000), el modo de texto por hardware en los adaptadores de vídeo compatibles con VGA tiene un uso limitado.
* La fuente A puede usar 8 colores y la fuente B otros 8 ; por lo tanto, si la fuente A es diferente de la fuente B (modo de 512 caracteres), la paleta se reduce a la mitad y el texto puede usar solo 8 colores. ** Normalmente, se usan los primeros 8 colores de la misma paleta. Si el parpadeo está desactivado, los 16 colores están disponibles para el fondo.
Por esta razón, la mayoría de los gestores de arranque UEFI modernos optan por no utilizar el modo de texto VGA; UEFI y cualquier sistema operativo diseñado para él tienden a utilizar el Protocolo de Salida Gráfica (GOP) en su lugar. Para mostrar texto, los gestores de arranque y sistemas operativos modernos que utilizan GOP emplean el Protocolo de Salida de Texto Simple UEFI y el Protocolo de Fuente Simple UEFI. [ 34 ] [ 35 ]
Véase también
- Artículo general sobre el modo de texto de la pantalla del ordenador
Referencias
- ↑ Petzold, Charles (julio de 1987). "Triple estándar: tres nuevos modos de vídeo de IBM" . PC Magazine . Ziff Davis . Consultado el 13 de abril de 2020 .
- ↑ "Apéndice D: Controladores de búfer de trama de consola" . Oracle. 2010.
En plataformas x86, el módulo emulador de terminal del kernel de Solaris (tem) utiliza exclusivamente el modo de texto VGA 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 búfer de trama compatibles con x86.
- ↑ JD Neal (1997). "Página de información de programación de vídeo VGA y SVGA a nivel de hardware" . Consultado el 13 de abril de 2020.
El byte correspondiente en el plano 1 se utiliza para especificar los atributos del carácter, que posiblemente incluyan color, selección de fuente, parpadeo, subrayado e inversión.
- 1 2 Prosise, Jeff (30 de enero de 1990). "Tutor: modificación de conjuntos de caracteres" . PC Magazine . Ziff Davis . Recuperado el 13 de abril de 2020.
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 se pueden alterar, el EGA y el VGA los almacenan en la RAM.
- ↑ "La consola del framebuffer" . kernel.org .
Si fbcon se desvincula de la capa de consola, el controlador de la consola de arranque (que suele ser el modo de texto VGA) tomará el control.
- 1 2 3 4 5 6 7 "Programación de vídeo VGA/SVGA: funcionamiento en modo texto VGA" . Osdever.net . Consultado el 7 de noviembre de 2016 .
- ↑ "Notas sobre el adaptador de pantalla monocromática" . Seasip.info . 6 de noviembre de 2005. Consultado el 7 de noviembre de 2016 .
- ↑ Frank Van Gilluwe (1997). The Undocumented PC: A Programmer's Guide to I/O, Cpus, and Fixed Memory Areas (2.ª ed.). EE. UU.: Addison-Wesley Publishing Company, Inc. págs. 172–174 . ISBN 978-0-201-47950-8."Tabla 6. Formas de cursor de ejemplo, dirección del puerto de vídeo base, bits de modo interno, función del bit 7 del atributo de pantalla, byte para el registro de modo interno en el puerto 3D8h (CGA), 3B8h (MDA) y virtual (EGA/VGA)"
- 1 2 3 "Programación de vídeo VGA/SVGA: manipulación del cursor en modo texto" . Osdever.net . Consultado el 7 de noviembre de 2016 .
- ↑ Lim, Jeffrey. Manual de usuario de Impulse Tracker II . pág. 4.
El Tracker funciona completamente en modo texto con una ingeniosa reasignación de caracteres.
- ↑ Lim, Jeffrey (20 de marzo de 2014). "20 años de Impulse Tracker, parte 2" . Recuperado el 14 de marzo de 2021.
[...] características con algunas notas: [...] Funciones de ratón y generación de caracteres en general. El modo de texto me permitió mantener la interfaz de usuario ágil y los requisitos de memoria bajos, pero salvé la brecha con la generación de caracteres en tiempo real más allá de lo que he visto en otros programas.
- ↑ Leonard, Andrew (29 de abril de 1999). "Mod love" . Salon.com . Archivado del original el 24 de noviembre de 2009. Consultado el 15 de marzo de 2021.
Jeffrey Lim, autor del popular programa Impulse Tracker
. - ↑ Lim, Jeffrey (2014). "IT_MOUSE.ASM" . GitHub . Consultado el 14 de marzo de 2021 .
- ↑ Cyrix (16 de enero de 1998). "Especificación de funciones VGA para procesadores GXm/MXi" (PDF) . Archivado del original (PDF) el 16 de agosto de 2015.
- 1 2 3 4 5 6 7 8 9 10 Roschi, Winn L. (1988). "Compatibles con VGA: Avanzando hacia el nuevo estándar" . PC Mag . Ziff Davis, Inc.: 177. ISSN 0888-8507 .
- 1 2 3 4 5 6 7 8 RBIL 61 (INT 10). Establecer modo de vídeo
- ↑ Texto
- 1 2 3 4 5 6 7 8 9 Universidad de Columbia. Valores para el modo de vídeo estándar (INT 10)
- 1 2 3 4 5 6 7 ESTGV RBIL
- 1 2 3 4 5 6 7 Seabios. Lista de interrupciones de Ralf Brown (RBIL)
- 1 2 3 4 5 6 7 La lista de interrupciones x86, también conocida como "Lista de interrupciones de Ralf Brown" (RBIL)
- 1 2 3 4 5 6 7 Qemu. Vgabios. vgatables.h (Implementación de referencia)
- 1 2 3 4 5 6 7 Enlace a la histórica Lista de Interrupciones de Ralph Brown (RBIL)
- 1 2 3 4 5 6 7 Información técnica oficial de Dosbox (RBIL, INT10)
- ↑ Richard F. Ferraro (1994). Guía del programador para las tarjetas EGA, VGA y Super VGA : incluyendo tarjetas XGA (3.ª ed.). EE. UU.: Addison-Wesley Publishing Company, Inc. pág. 1218. ISBN 978-0-201-62490-8. SBN 201-62490-7.
- ↑ Gráficos o texto a través de gráficos
- ↑ "Manual del programador de OpenBSD, VGA" . 20 de marzo de 1999.
Se pueden mostrar 16 colores diferentes simultáneamente. Los caracteres tienen un tamaño de 8 × 16 píxeles y una fuente consta de 256 caracteres. Una tarjeta VGA siempre incluye una fuente integrada de este tamaño.
- 1 2 Documentación oficial de Linux. 1995-1999 Martin Mares. Soporte para la selección del modo de vídeo.
- 1 2 Paul Gortmaker (1999). El mensaje de arranque de Linux: cómo usarlo, el argumento 'vga=' (PDF) . pág. 22.
- ↑ Guía de administración de Linux: parámetros del kernel, El argumento 'video=' . 2017.
- ↑ Olga Kokoreva (2001). Registro de Windows XP: una guía completa para personalizar y optimizar Windows XP . БХВ-Петербург. ISBN 9781931769013
Una diferencia obvia entre Windows 2000/XP y Windows NT 4.0 es 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
. - ↑ S3 Graphics. "Manual de usuario del VC963-3D (S3 ViRGE/DX)" . Archivado del original el 13 de abril de 2020.
El S3 ViRGE admite modos de texto extendido de 132×43 y 132×25 para aplicaciones de texto. Esto también permite emular terminales que requieren 132 columnas de texto.
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ "Detalles del proyecto SVGATextMode" . 19 de marzo de 2000. Archivado del original el 3 de febrero de 2001.
SVGATextMode utiliza funciones adicionales de las tarjetas SVGA para mejorar los modos de texto de Linux. Permite configurar el reloj de píxeles, la sincronización horizontal/vertical, el tamaño de la fuente, el tamaño del cursor, etc., y permite aprovechar al máximo la tarjeta gráfica y el monitor en modo texto.
- ↑ SV, Reethambari; Seshachalam, D. (julio de 2017). "Controlador del protocolo de salida gráfica (GOP) para UEFI" . Revista internacional de investigación en ciencia aplicada e ingeniería tecnológica . 5 (VII). ISSN 2321-9653 .
- ↑ "12.4. Protocolo de salida de texto simple — 12. Protocolos — Soporte de consola — Documentación de la especificación UEFI 2.11" . uefi.org . Consultado el 14 de agosto de 2025 .
- Interfaz de usuario de texto
- IBM PC compatibles
- DOS en ordenadores compatibles con IBM
