

Los gráficos semigráficos , pseudográficos o de caracteres basados en texto son un método primitivo utilizado en el hardware de vídeo en modo texto primitivo para emular gráficos rasterizados sin tener que implementar la lógica para dicho modo de visualización.
Hay dos maneras diferentes de lograr la emulación de gráficos rasterizados. La primera consiste en crear un modo de baja resolución con todos los puntos direccionables utilizando un conjunto de caracteres especiales con todas las combinaciones binarias de una determinada matriz de subdivisión del tamaño de carácter del modo texto; este método se conoce como gráficos de bloques , [ 1 ] o a veces gráficos de mosaico . [ 2 ] [ 3 ]
La segunda consiste en utilizar formas especiales en lugar de glifos (letras y figuras) que aparecen como si estuvieran dibujadas en modo de gráficos rasterizados, a veces denominados semigráficos o pseudográficos ; un ejemplo importante de esto son los caracteres de dibujo de cajas .
Los caracteres semigráficos (incluidos algunos elementos de bloque) siguen integrados en la BIOS de cualquier tarjeta gráfica compatible con VGA , por lo que cualquier PC puede mostrar estos caracteres desde el momento en que se enciende, incluso antes de que se haya cargado el sistema operativo. Las líneas simples y dobles se siguen dibujando con frecuencia mediante este método cuando el sistema utiliza el modo texto; por ejemplo, al ejecutar el programa de configuración de la BIOS.
Muchas de estas ideas históricas se han adoptado en Unicode , por ejemplo, en los bloques Unicode Símbolos para computación heredada , Elementos de bloque , Dibujo de cajas y Formas geométricas . [ 4 ]
Gráficos de bloques

Para celdas de caracteres que constan de 8 píxeles verticales y 8 horizontales (un carácter de 8 × 8), se necesitarían 2⁶⁴ ≈ 10¹⁹ caracteres para representar cada combinación posible de los 64 píxeles. En cambio, si el carácter de 8 × 8 se divide en "píxeles" de 2 × 2 llamados cuadrantes , [ 5 ] solo se necesitan 16 caracteres para cada combinación. Esto se utilizó, por ejemplo, en el Sinclair ZX81 .
Otro ejemplo divide un carácter de 8 × 12 píxeles verticalmente en dos mitades y horizontalmente en tres partes, y luego asigna valores de "tinta" y "fondo" a los elementos de la matriz en un patrón binario, correspondiente a la secuencia binaria de la posición en la tabla de fuentes de una matriz de mosaico de bloques de 2 × 3 [ 6 ] de los llamados squots (puntos cuadrados) [ 7 ] o sextantes . [ 5 ] Las versiones menos utilizadas usan una "matriz" de 1 × 6, en cuyo caso estos seis "píxeles" a veces se denominan sixels . [ 8 ]
A veces, los caracteres semigráficos del texto se incorporan simplemente al conjunto de fuentes del sistema; otras veces, se utiliza hardware de vídeo especial para convertir directamente el patrón de bits de la memoria de vídeo en píxeles. En raras ocasiones, una matriz de caracteres no era divisible verticalmente por tres; por ejemplo, en una matriz de 8 × 8, el mosaico a veces se divide de forma que utiliza un esquema de líneas de exploración 3:2:3. El modo gráfico de Galaksija es un ejemplo, aunque con un esquema 4:5:4 el efecto de distorsión era mínimo. [ 9 ]
El uso seminal de esta tecnología fue en el TRS-80 , donde la única forma de obtener píxeles discretos en la pantalla que pudieran encenderse y apagarse individualmente (todos los puntos direccionables) era mediante el uso de una matriz de píxeles de 2 × 3 de gráficos de bloques. En el caso del TRS-80, estos gráficos de bloques no estaban incorporados en una ROM de fuente, como más tarde se convirtió en la norma, sino que se generaban directamente a partir del patrón lógico de seis bits de la RAM de vídeo utilizando un circuito dedicado hecho de puertas lógicas . [ 10 ] Un sistema anterior que utilizaba la misma matriz pseudográfica de 2 × 3 fue la Interfaz de Terminal de Vídeo (VTI) del Poly-88 de polymorphic systems , un sistema basado en el bus S-100 anterior al TRS-80.
Si el sistema también admitía color, la resolución de color de los píxeles resultantes solía ser igual a la resolución del texto, lo que a menudo provocaba conflictos de atributos, ya que el color de un píxel no se podía cambiar individualmente, sino solo a un color de "tinta" y un color de "fondo" para todos los píxeles dentro de una posición de carácter.
A veces, el número de caracteres en la fuente, dedicada a los gráficos de bloques, podía reducirse a la mitad si el sistema también admitía un atributo de "inversión", ya que la mitad de los caracteres en un conjunto completo de fuentes de gráficos de bloques son el inverso lógico de la otra mitad del conjunto de fuentes. Otros trucos que se usaban para disminuir el número de caracteres necesarios eran usar un espacio para el carácter "todos los bits son cero" y usar el carácter hexadecimal 7F para el carácter "todos los bits están encendidos", ya que el carácter hexadecimal 7F (decimal 127) se definía a menudo como un carácter "todos los píxeles encendidos" (esto se debía a que al usar cinta de papel perforando los siete agujeros, se creaba el "byte" hexadecimal 7F que se consideraba el carácter "DEL" o "borrado" ). La asignación en ASCII del carácter de borrado (al punto de código 127) llevó a los diseñadores de VDU a usar "borrado" para un cuadrado de carácter relleno de "tinta", que a menudo se usaba para representar el cursor.
Ejemplos del uso de gráficos de bloques

Otros ejemplos de sistemas que se basaban en el uso de gráficos de bloques son:
- Los conjuntos de caracteres del ZX80 y ZX81 , donde se usaba una matriz de 2 × 2 píxeles, con trucos de espacio e inversión de atributos para mantener el número de caracteres en la ROM necesarios en solo 7 (de los 16 necesarios). [ 11 ] El ZX Spectrum también admitía gráficos de bloques, así como gráficos "reales" de mayor resolución. Además, en el Spectrum la fuente del sistema (almacenada en su ROM) podía cambiarse fácil e instantáneamente a una almacenada en la RAM, lo que permitía a los programadores definir sus propios caracteres semigráficos para satisfacer sus necesidades.
- Otros sistemas que utilizaban una matriz de 2 × 2 incluían el Panasonic JR-200 y el Mattel Aquarius . Este último admitía no solo semigráficos de matriz de 2 × 2, sino también semigráficos de matriz de 2 × 3, aunque de forma imperfecta, ya que los píxeles semigráficos de la fila central de un carácter eran menos altos que los de las filas superior e inferior, debido a una división imperfecta de la matriz de caracteres de píxeles de 8 × 8.
- El Commodore PET también incluía algunos caracteres para admitir texto semigráfico de 2 × 2 en su conjunto de caracteres PETSCII . El PET fue, además, uno de los primeros sistemas en depender en gran medida de caracteres semigráficos para mostrar cualquier tipo de gráfico en pantalla.
- La TRS-80 Color Computer y la Dragon 32/64 son buenos ejemplos de sistemas que utilizan gráficos semigráficos de color con matriz de 2 × 2. Pero su Motorola 6847 VDC también admitía un modo de gráficos semigráficos de 6 bloques poco utilizado. [ 12 ] [ 13 ]
- Los sistemas Videotex y Teletexto utilizaban una matriz de 2 × 3 con un color de primer plano ("tinta") y un color de fondo, normalmente de un conjunto de ocho colores (incluidos el blanco y el negro). Muchos sistemas utilizaban " gráficos Videotex ". Uno de los ejemplos más conocidos es el modo gráfico predeterminado del Acorn BBC Micro ( modo 7 ). [ 14 ] Otros sistemas que utilizaban gráficos similares a "Videotex" son: el ABC 80 , el Grundy NewBrain , muchos de los sistemas Acorn Eurocard y el Philips P2000T , que de hecho utilizaba un chip Teletexto diseñado para sus televisores.
- La Matra Alice 32, [ 15 ] Matra Alice 90 [ 16 ] y Philips VG5000 [ 17 ] se basaban en el chip gráfico Thomson EF9345 , capaz únicamente de mostrar caracteres alfanuméricos y semigráficos . [ 18 ]
- El PC-8001 logró combinar texto normal con un conjunto completo de 256 "caracteres" semigráficos de texto en una matriz de 2 × 4; el sistema distinguió el conjunto de 256 patrones semigráficos del conjunto de 256 caracteres utilizado para las fuentes "normales" mediante bytes de atributos de caracteres . [ 19 ]
- Uno de los últimos sistemas de vídeo donde los semigráficos de texto eran una opción útil fue el Adaptador de Gráficos en Color (CGA). Este adaptador gráfico para los primeros PC de IBM solo admitía cuatro colores en su modo gráfico de alta resolución, pero en modo texto podía mostrar 16 colores diferentes. Aunque la ROM de fuentes del adaptador CGA no contenía todos los caracteres típicos de los semigráficos de texto, aún era posible crear un modo semigráfico de texto CGA de 160 × 100 utilizando un truco semidocumentado. [ 20 ]
caracteres semigráficos



Los caracteres semigráficos son caracteres de una fuente que pretenden dar la impresión de que un sistema admite gráficos de alta resolución, cuando en realidad funciona en modo texto. Caracteres como los que dibujan recuadros , los círculos y los puntos, los símbolos de cartas como ♠, ♣, ♥ y ♦, y las formas geométricas básicas como los triángulos, daban a estos sistemas esa apariencia.
Uno de los primeros sistemas que utilizó tales caracteres, el ejemplo canónico que otros siguieron, fue el Commodore PET , que tenía muchos de ellos en su conjunto de fuentes PETSCII . [ 21 ] El PET original dependía en tal grado de estos caracteres que los imprimía en su teclado, como se puede ver aquí, un ejemplo que otros sistemas pronto copiaron.
Otro buen ejemplo de un sistema que dependía de caracteres semigráficos es el venerable Sharp MZ80K , que no tenía gráficos de alta resolución ni caracteres reprogramables, sino que dependía completamente de un conjunto de fuentes extendido con muchos caracteres pseudográficos. [ 22 ] Con estos aún era posible generar juegos que parecían tener gráficos de alta resolución. [ 23 ]
Algunos de los sistemas que disponían de un conjunto de fuentes programables, pero que no contaban con un hardware de gráficos rasterizados de alta resolución, incluían conjuntos de caracteres predeterminados que debían cargarse en la memoria RAM de conjuntos de caracteres. Estos conjuntos a menudo incorporaban las ideas aquí mencionadas, aunque también era frecuente que se definieran caracteres semigráficos específicos según fuera necesario.
Sistemas que se basaban en caracteres semigráficos
Ejemplos de sistemas que dependían en gran medida de caracteres semigráficos para sus gráficos son:
- El IBM PC original con MDA no ofrecía ningún tipo de gráficos aparte de los caracteres de dibujo de cajas de su página de códigos de hardware predeterminada 437 .
- El Commodore PET fue uno de los primeros sistemas en depender en gran medida de caracteres semigráficos para mostrar cualquier tipo de gráfico en pantalla (ver PETSCII ).
- Los ordenadores Sinclair ZX80 y ZX81 utilizaban caracteres gráficos de bloques para obtener gráficos de baja resolución de 64×48 píxeles en blanco y negro o de 32×48 en blanco, negro y gris tramado , como se puede ver en el conjunto de caracteres del ZX80 y en el conjunto de caracteres del ZX81 .
- El Mattel Aquarius dependía completamente de su conjunto de personajes para los juegos, a pesar de que se comercializaba a través de jugueterías. Nunca se convirtió en un éxito comercial, en parte debido a esta limitación, que estaba desactualizada en ese momento (véase Conjunto de personajes del Mattel Aquarius ). [ 24 ]
- El Panasonic JR-200 también utilizaba caracteres semigráficos en combinación con gráficos de bloques (véase el conjunto de caracteres de la serie Matsushita JR ).
- La serie de ordenadores Sharp MZ no ofrecía caracteres de alta resolución ni programables, pero sí contaba con un conjunto muy completo de caracteres semigráficos (véase Conjunto de caracteres Sharp MZ ), por lo que aún ofrecía muchos juegos visualmente atractivos. [ 25 ]
- La Matra Alice 32 y 90; y la Philips VG5000 (ver conjunto de caracteres Thomson EF9345 ).
- El Compukit UK101 (clon de la popular placa Ohio Scientific Superboard) también fue un sistema muy antiguo que se basaba en su conjunto de 256 caracteres.
- Los modos de texto de los últimos ordenadores Apple II, a partir del Apple IIc y la versión mejorada del Apple IIe , admitían el conjunto de caracteres MouseText , que sustituía a los caracteres en mayúsculas parpadeantes cuando estaba activado. Aunque estos sistemas Apple no dependían de estos conjuntos de caracteres, sí desempeñaban un papel en la simulación de gráficos similares a los de las interfaces gráficas de usuario (GUI) de sus hermanos más avanzados, incluso en modo texto.
Véase también
Referencias
- ↑ "RTRussell: BBC BASIC para Windows" . www.bbcbasic.co.uk .
- ↑ Freytag (c), Asmus (2020-10-13). "Gráficos de mosaico separados por teletexto" .
- ↑ Especificación de teletexto mejorado (PDF) . Instituto Europeo de Normas de Telecomunicaciones. 1997. pág. 6.
- ↑ El estándar Unicode, versión 15.1 - Formas geométricas (PDF) . Unicode, Inc. 2023.
- 1 2 Ewell, Doug ; Bettencourt, Rebecca G.; Bánffy, Ricardo; Everson, Michael ; Silva, Eduardo Marín; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (2019-01-04). "5. Caracteres gráficos". Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF) . Grupo de Trabajo de Terminales (TWG), Organización Internacional de Normalización . pág. 3. L2/19-25. Archivado (PDF) del original el 24-12-2020 . Recuperado el 11-01-2021 . pág. 3:
La palabra "sextante" se usa en este documento, por analogía con "cuadrante" (un término usado para ciertos caracteres UCS desde 1999), para referirse a un bloque semigráfico que consta de seis bloques o "celdas" más pequeños dispuestos en dos columnas y tres filas. En la especificación de teletexto, los caracteres de este grupo podían mostrarse con las celdas unidas, como con los caracteres de cuadrante existentes, o con un espacio estrecho entre ellas. Un emulador de teletexto podía interpretar el carácter de control U+001A ("gráficos separados") para mostrar espacio entre las celdas, o U+0019 ("gráficos contiguos") para volver a la apariencia predeterminada de celdas unidas.
{{cite book}}:|work=ignorado ( ayuda ) - ↑ ETS 300 072 – Equipo terminal (TE); Protocolo de capa de presentación Videotex Sintaxis de datos de la capa de presentación Videotex (PDF) . Instituto Europeo de Normas de Telecomunicaciones (publicado en 1996). 1990.
- ↑ Goldklang, Ira (2015). "Consejos y trucos gráficos" . Archivado del original el 29 de julio de 2017. Recuperado el 29 de julio de 2017 .
- ↑ "Eventos semanales de JayceLand en Rochester #191: All White Sixel" . jayceland.com .
- ↑ "OLD-COMPUTERS.COM Museum ~ GALAKSIJA Software y capturas de pantalla de Galaksija" . Véase la segunda imagen desde arriba. La imagen muestra una pequeña diferencia en la altura de algunos "píxeles" . Recuperado el 27/01/2014 .
- ↑ "Descripción de los gráficos de bloques TRS-80" .
- ↑ Detalles técnicos: Conjunto de caracteres y gráficos de bloques ZX-81
- ↑ "Modo de visualización CoCo Semi-graphics-6" . Archivado del original el 14 de febrero de 2021. Consultado el 7 de octubre de 2011 .
- ↑ "Modo de visualización semigráfico-6" . 14/02/2021. Archivado del original el 14/02/2021.
- ↑ "RTRussell: BBC BASIC para Windows" . www.bbcbasic.co.uk .
- ↑ "MATRA HACHETTE > ALICE" . old-computers.com . Archivado del original el 3 de octubre de 2021. Consultado el 3 de octubre de 2021 .
- ↑ "MATRA HACHETTE > ALICE 90" . old-computers.com . Archivado del original el 3 de octubre de 2021. Consultado el 3 de octubre de 2021 .
- ^ Hervier, Carl; Vanlierde, Stéphane (204). "el VG5000μ" . La página de ventiladores del VG5000μ . Archivado desde el original el 21 de agosto de 2021 . Consultado el 3 de octubre de 2021 .
- ↑ EF9345 – Procesador de pantalla semigráfica de un solo chip HMOS2 (PDF) . SGS-THOMSON Microelectronics. Marzo de 1995.
- ↑ Programación PC-8801 – Información VRAM (Fuente en japonés; la oración relevante es "アトリビュートに開始位置とセミグラフィック指定ビット=1を立てて、テキスト VRAM には文字コードの代わりにドットパターンを書き込みます。" Esto se traduce aproximadamente como "Al principio Posición del modo semigráfico, una vez que el bit de atributo relevante se establece en uno, se muestra un patrón de puntos. se escribirá en la VRAM para el código de carácter en lugar de [la letra gráfica predeterminada].")
- ↑ Referencia técnica de IBM PC XT , IBM, 1983, págs. 1-142 , consultado el 24 de agosto de 2018.
- ↑ Manual de Commodore C64: Guía de referencia para programadores de Commodore 64 , Commodore, 1983, pág. 379 , consultado el 24 de agosto de 2018.
- ↑ "Entrada de old-computers.com sobre el Sharp MZ80K se menciona la falta de capacidades gráficas" .
- ↑ "Sharp MZ80K - Juego BASE ZERO" . 29/01/2010 – vía www.youtube.com.
- ↑ "Sistema informático doméstico Mattel Aquarius" . www.vdsteenoven.com .
- ↑ "Los juegos del MZ-80K se basaban en su gran conjunto de caracteres semigráficos" .
- Técnicas gráficas por computadora
- Conjuntos de caracteres
- Estructuras de datos de gráficos por computadora
- formatos de archivos gráficos
- Videotex