El modo de texto es un modo de visualización de computadora en el que el contenido se representa internamente en una pantalla de computadora en términos de caracteres en lugar de píxeles individuales . Por lo general, la pantalla consta de una cuadrícula rectangular uniforme de celdas de caracteres , cada una de las cuales contiene uno de los caracteres de un conjunto de caracteres ; al mismo tiempo, en contraste con el modo gráfico u otros tipos de modos gráficos de computadora .
Las aplicaciones en modo texto se comunican con el usuario mediante interfaces de línea de comandos e interfaces de usuario de texto . Muchos conjuntos de caracteres utilizados en aplicaciones en modo texto también contienen un conjunto limitado de caracteres semigráficos predefinidos que se pueden utilizar para dibujar cuadros y otros gráficos rudimentarios, que se pueden utilizar para resaltar el contenido o para simular widgets u objetos de interfaz de control que se encuentran en programas GUI . Un ejemplo típico es el conjunto de caracteres de la página de códigos 437 de IBM .
Una característica importante de los programas en modo texto es que asumen fuentes monoespaciadas , donde cada carácter tiene el mismo ancho en pantalla, lo que les permite mantener fácilmente la alineación vertical al mostrar caracteres semigráficos. Esto era una analogía de las primeras impresoras mecánicas que tenían un paso fijo. De esta manera, la salida que se veía en la pantalla podía enviarse directamente a la impresora manteniendo el mismo formato.
Dependiendo del entorno, el búfer de pantalla puede ser direccionable directamente . Los programas que muestran la salida en terminales de video remotas deben emitir secuencias de control especiales para manipular el búfer de pantalla. Los estándares más populares para tales secuencias de control son ANSI y VT100 .
Los programas que acceden al búfer de pantalla a través de secuencias de control pueden perder la sincronización con la pantalla real, por lo que muchos programas en modo texto tienen un comando para volver a mostrar todo , a menudo asociado con la combinación de teclas Ctrl+ .L
La representación de video en modo texto cobró importancia a principios de la década de 1970, cuando las terminales de texto orientadas a video comenzaron a reemplazar a los teleimpresores en el uso interactivo de las computadoras.
Las ventajas de los modos de texto en comparación con los modos gráficos incluyen un menor consumo de memoria y una manipulación más rápida de la pantalla. [1] En el momento en que los terminales de texto comenzaron a reemplazar a los teletipos en la década de 1970, el costo extremadamente alto de la memoria de acceso aleatorio en ese período hizo que fuera exorbitantemente caro instalar suficiente memoria para que una computadora almacenara simultáneamente el valor actual de cada píxel en una pantalla, para formar lo que ahora se llamaría un framebuffer . Los primeros framebuffers eran dispositivos independientes que costaban decenas de miles de dólares, además del gasto de las pantallas avanzadas de alta resolución a las que estaban conectados. [2] Para aplicaciones que requerían gráficos de líneas simples pero para las que no se podía justificar el gasto de un framebuffer, las pantallas vectoriales eran una solución alternativa popular. Pero había muchas aplicaciones informáticas (por ejemplo, la entrada de datos en una base de datos) para las que todo lo que se requería era la capacidad de representar texto ordinario de manera rápida y rentable en un tubo de rayos catódicos .
El modo de texto evita el problema de la memoria costosa al tener un hardware de visualización dedicado que vuelve a renderizar cada línea de texto de caracteres a píxeles con cada escaneo de la pantalla por el rayo catódico. A su vez, el hardware de visualización solo necesita memoria suficiente para almacenar los píxeles equivalentes a una línea de texto (o incluso menos) a la vez. Por lo tanto, el búfer de pantalla de la computadora solo almacena y conoce los caracteres de texto subyacentes (de ahí el nombre "modo de texto") y la única ubicación donde los píxeles reales que representan esos caracteres existen como una sola imagen unificada es la pantalla misma, tal como la ve el usuario (gracias al fenómeno de persistencia de la visión ).
Por ejemplo, un buffer de pantalla suficiente para contener una cuadrícula estándar de 80 por 25 caracteres requiere al menos 2.000 bytes. [1] Suponiendo una pantalla monocromática , 8 bits por byte y un tamaño estándar de 8 veces 8 bits para cada carácter, un framebuffer lo suficientemente grande como para contener cada píxel en la pantalla resultante requeriría al menos 128.000 bits, 16.000 bytes o poco menos de 16 kilobytes. Para los estándares de las computadoras modernas, estas pueden parecer cantidades triviales de memoria, pero para ponerlas en contexto, el Apple II original fue lanzado en 1977 con solo cuatro kilobytes de memoria y un precio de $1.300 en dólares estadounidenses (en una época en la que el salario mínimo en los Estados Unidos era de solo $2,30 por hora). Además, desde una perspectiva comercial, el caso comercial de los terminales de texto no tenía sentido a menos que pudieran producirse y operarse a un costo más bajo que los teleimpresores hambrientos de papel a los que se suponía que debían reemplazar.
Otra ventaja del modo texto es que tiene requisitos de ancho de banda relativamente bajos en el uso de terminales remotos. Por lo tanto, un terminal remoto en modo texto puede necesariamente actualizar la pantalla mucho más rápido que un terminal remoto en modo gráfico vinculado a la misma cantidad de ancho de banda (y, a su vez, parecerá más receptivo), ya que el servidor remoto puede necesitar solo transmitir unas pocas docenas de bytes para cada actualización de pantalla en modo texto, a diferencia de las complejas llamadas a procedimientos remotos de gráficos rasterizados que pueden requerir la transmisión y representación de mapas de bits completos .
La frontera entre el modo texto y los programas gráficos a veces puede ser difusa, especialmente en el hardware VGA del PC , porque muchos programas de modo texto posteriores intentaron llevar el modelo al extremo jugando con el controlador de video . Por ejemplo, redefinieron el juego de caracteres para crear caracteres semigráficos personalizados, o incluso crearon la apariencia de un puntero de ratón gráfico redefiniendo la apariencia de los caracteres sobre los que se mostraba el puntero del ratón en un momento dado.
La representación en modo texto con caracteres definidos por el usuario también ha sido útil para juegos de computadora y videojuegos 2D porque la pantalla del juego se puede manipular mucho más rápido que con la representación orientada a píxeles.
Un controlador de vídeo que implementa un modo de texto suele utilizar dos áreas de memoria distintas . La memoria de caracteres o tabla de patrones contiene una fuente rasterizada en uso, donde cada carácter está representado por una matriz de puntos (una matriz de bits ), por lo que la memoria de caracteres podría considerarse como una matriz de bits tridimensional . La matriz de visualización (un búfer de texto , búfer de pantalla o tabla de nombres ) rastrea qué carácter está en cada celda. En el caso simple, la matriz de visualización puede ser simplemente una matriz de puntos de código (la llamada tabla de punteros de caracteres ), pero normalmente almacena para cada posición de carácter no solo un código, sino también atributos .
En el caso de la salida de escaneo de trama , que es la más común para los monitores de computadora, la señal de video correspondiente es realizada por el generador de caracteres , una unidad electrónica especial similar a los dispositivos con el mismo nombre utilizados en tecnología de video . El controlador de video tiene dos registros : contador de líneas de escaneo y contador de puntos, que sirven como coordenadas en la matriz de puntos de la pantalla. Cada uno de ellos debe dividirse por el tamaño de glifo correspondiente para obtener un índice en la matriz de visualización; el resto es un índice en la matriz de glifos. Si el tamaño del glifo es igual a 2 n , entonces es posible usar solo n bits bajos de un registro binario como un índice en la matriz de glifos, y el resto de bits como un índice en la matriz de visualización - vea el esquema.
La memoria de caracteres reside en una memoria de solo lectura en algunos sistemas. Otros sistemas permiten el uso de RAM para este propósito, lo que hace posible redefinir el tipo de letra e incluso el conjunto de caracteres para fines específicos de la aplicación. El uso de caracteres basados en RAM también facilita algunas técnicas especiales, como la implementación de un búfer de cuadros de gráficos de píxeles reservando algunos caracteres para un mapa de bits y escribiendo píxeles directamente en su memoria de caracteres correspondiente. En algunos chips gráficos históricos, incluido el TMS9918 , el MOS Technology VIC y el hardware gráfico de Game Boy , esta era en realidad la forma canónica de hacer gráficos de píxeles.
Los modos de texto suelen asignar atributos a los caracteres mostrados. Por ejemplo, el terminal VT100 permite subrayar, iluminar, hacer parpadear o invertir cada carácter. Los dispositivos que admiten colores suelen permitir seleccionar el color de cada carácter, y a menudo también el color de fondo, de una paleta limitada de colores. Estos atributos pueden coexistir con los índices de caracteres o utilizar un área de memoria diferente denominada memoria de color o memoria de atributos . [3]
Algunas implementaciones del modo texto también tienen el concepto de atributos de línea. Por ejemplo, la línea de terminales de texto compatible con VT100 admite la duplicación del ancho y la altura de los caracteres en líneas de texto individuales.
Según el adaptador gráfico utilizado, en los ordenadores compatibles con IBM PC hay disponibles distintos modos de texto , que se enumeran en la siguiente tabla: [4]
El texto MDA se puede enfatizar con atributos brillantes, subrayados, invertidos y parpadeantes.
Las tarjetas de video en general son compatibles con versiones anteriores, es decir, EGA admite todos los modos MDA y CGA, VGA admite los modos MDA, CGA y EGA.
El modo de texto más común utilizado en entornos DOS y en las consolas iniciales de Windows es el predeterminado de 80 columnas por 25 filas, o 80×25, con 16 colores. Este modo estaba disponible en prácticamente todos los ordenadores personales IBM y compatibles. Varios programas, como los emuladores de terminal , utilizaban solo 80×24 para la pantalla principal y reservaban la fila inferior para una barra de estado .
Existen otros dos modos de texto VGA, 80×43 y 80×50, pero se utilizaron muy poco. Los modos de texto de 40 columnas nunca fueron muy populares fuera de los juegos y otras aplicaciones diseñadas para ser compatibles con monitores de televisión, y se utilizaron solo con fines de demostración o con hardware muy antiguo.
Los tamaños de caracteres y las resoluciones gráficas para los modos de texto Super VGA compatibles con VESA extendidos dependen del fabricante. Además, en estos adaptadores de pantalla, los colores disponibles se pueden reducir a la mitad, de 16 a 8, cuando se utiliza un segundo conjunto de caracteres personalizado (lo que da un repertorio total de 512 caracteres gráficos diferentes (en lugar de los 256 habituales) que se muestran simultáneamente en la pantalla).
Algunas tarjetas (por ejemplo, la S3 ) admiten modos de texto personalizados de gran tamaño, como 100×37 o incluso 160×120. En los sistemas Linux , se suele utilizar un programa llamado SVGATextMode con tarjetas SVGA para configurar modos de texto de consola de gran tamaño, como para su uso con multiplexores de terminal de pantalla dividida .
Muchos programas modernos con una interfaz gráfica simulan el estilo de visualización de los programas en modo texto, especialmente cuando es importante preservar la alineación vertical del texto, por ejemplo, durante la programación informática . También existen componentes de software para emular el modo texto, como emuladores de terminal o consolas de línea de comandos . En Microsoft Windows , la consola Win32 normalmente se abre en modo de ventana gráfica emulada. Se puede cambiar a modo de texto verdadero en pantalla completa y viceversa presionando las teclas Alt y Enter juntas. [5] Esto ya no es compatible con los controladores de pantalla WDDM introducidos con Windows Vista. [6]
La consola virtual de Linux funciona en modo texto. La mayoría de las distribuciones de Linux admiten varias pantallas de consola virtual, a las que se accede presionando Ctrl , Alt y una tecla de función al mismo tiempo.
La biblioteca de código abierto AAlib ofrece programas y rutinas que se especializan en traducir archivos de imagen y video estándar, como PNG y WMV , y mostrarlos como una colección de caracteres ASCII . Esto permite una visualización rudimentaria de archivos gráficos en sistemas de modo texto y en navegadores web de modo texto como Lynx .