Método utilizado en los primeros hardware de vídeo en modo texto para emular gráficos rasterizados.
Los semigráficos , pseudográficos o gráficos de caracteres basados en texto son un método primitivo utilizado en los primeros hardware de vídeo en modo texto para emular gráficos rasterizados sin tener que implementar la lógica para dicho modo de visualización.
Hay dos formas diferentes de lograr la emulación de gráficos rasterizados. La primera es crear un modo direccionable de todos los puntos de baja resolución 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 en mosaico . [2] [3]
La segunda es utilizar formas especiales en lugar de glifos (letras y figuras) que parecen dibujadas en modo de gráficos rasterizados, a veces denominados semi o pseudográficos ; un ejemplo importante de esto son los personajes que se dibujan en cuadros .
Los caracteres semigráficos (incluidos algunos elementos de bloque) todavía están incorporados en el BIOS de cualquier tarjeta de video compatible con VGA , por lo que cualquier PC puede mostrar estos caracteres desde el momento en que se enciende, incluso cuando aún no hay ningún sistema operativo cargado. Con este método todavía se dibujan líneas simples y dobles cuando el sistema usa el modo texto; por ejemplo, al ejecutar el programa de configuración del BIOS.
Por ejemplo, un carácter de 8×12 píxeles podría dividirse verticalmente en dos mitades y horizontalmente en tres partes, y luego asignar 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 [5] de los llamados squots (puntos cuadrados) [6] o sextantes . [7] Las versiones menos utilizadas utilizan una "matriz" de 1×6, en cuyo caso estos seis "píxeles" a veces se denominan sixels . [8] Pero dividir un carácter de 8×8 en "píxeles" de 2×2 llamados cuadrantes [7] también era común (se usaba, por ejemplo, en el Sinclair ZX81 ).
A veces, los caracteres semigráficos del texto simplemente se incorporan al conjunto de fuentes del sistema, a veces se utiliza hardware de video especial para convertir directamente el patrón de bits de la memoria de video a píxeles. En casos raros, una matriz de caracteres no se podía dividir verticalmente entre tres; por ejemplo, en una matriz de 8 × 8, el mosaico a veces se divide para utilizar un esquema de líneas de escaneo de 3:2:3. El modo gráfico de Galaksija es un ejemplo, aunque con un esquema 4:5:4 el efecto de distorsión fue mínimo. [9]
El uso fundamental de esta tecnología fue en el TRS-80, donde la única forma de obtener píxeles discretos en la pantalla que podían activarse y desactivarse individualmente (todos los puntos direccionables) era mediante el uso de una matriz de bloques de 2×3 píxeles. gráficos. En el caso del TRS-80, estos gráficos en bloque no se incorporaron a una fuente ROM, como luego se convirtió en la norma, sino que se generaron directamente a partir del patrón lógico de seis bits de la RAM de video utilizando un circuito dedicado hecho de puertas lógicas . [10] Un sistema anterior que utilizaba la misma matriz pseudográfica de una matriz de 2 por 3 era la Interfaz de terminal de video (VTI) del Poly-88 por sistemas polimórficos , un sistema basado en bus S-100 anterior al TRS-80.
Si el sistema también admitía el color, la resolución de color de los píxeles resultantes normalmente era igual a la resolución del texto, lo que a menudo generaba conflictos de atributos ya que el color de un píxel no se podía cambiar por píxel, sino solo a una "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 de la fuente, dedicados a gráficos en bloque, podría reducirse a la mitad si el sistema también admitiera un atributo "invertir", ya que la mitad de los caracteres en un conjunto de fuentes de gráficos en bloque completo son la inversa lógica de la otra mitad de la fuente. colocar. Otros trucos que se usaron para disminuir la cantidad de caracteres necesarios fue usar un espacio para el carácter "todos los bits son cero" y usar el carácter 7F hexadecimal para el carácter "todos los bits están activados", como carácter 7F hexadecimal (decimal). 127) a menudo se definía como un carácter de "todos los píxeles activados" (esto se debía a que al utilizar cinta de papel para perforar los siete agujeros, se creaba el "byte" hexadecimal 7F que se consideraba el carácter "DEL" o "borrado" ). . [ cita necesaria ] La asignación en ASCII del carácter de borrado (al punto de código 127) llevó a los diseñadores de pantallas de visualización a utilizar "borrado" para un cuadrado de carácter lleno de "tinta", que a menudo se usaba para representar el cursor. . [ cita necesaria ]
Ejemplos del uso de gráficos de bloques.
Otros ejemplos de sistemas que se basaron en el uso de gráficos de bloques son:
Los juegos de caracteres ZX80 y ZX81 , donde se utilizó una matriz de 2×2 píxeles, con trucos de atributos de espacio e inversión 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 en bloques, así como gráficos "reales" de mayor resolución. Además, en el Spectrum, la fuente del sistema (almacenada en su ROM) se podía cambiar 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 utilizaron una matriz de 2×2 incluyeron 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 manera imperfecta, ya que los píxeles semigráficos en la fila central de un personaje eran menos altos que los de las filas superior e inferior, debido a la división imperfecta de los 8 ×. Matriz de caracteres de 8 píxeles.
El Commodore PET también tenía algunos caracteres para admitir semigráficos de texto 2×2 en su conjunto de caracteres PETSCII . El PET también fue uno de los primeros sistemas que se basó en gran medida en caracteres semigráficos para mostrar cualquier tipo de gráfico en la pantalla.
La computadora en color TRS-80 y la Dragon 32/64 son buenos ejemplos de sistemas que utilizan semigrafías en color de matriz 2×2. Pero su Motorola 6847 VDC también admitía un modo semigráfico de 6 bloques poco utilizado. [12] [13]
Los sistemas de videotex y teletexto utilizaban una matriz de 2 × 3 y un color de primer plano ("tinta") y un color de fondo, normalmente de un conjunto de ocho colores (incluido el blanco y el negro). Muchos sistemas utilizaban " gráficos videotex ". Uno de los ejemplos más conocidos es el modo de gráficos predeterminado de Acorn BBC Micro ( modo 7 ). [14] Otros sistemas que utilizaron gráficos similares a "Videotex" son: el ABC 80 , el Grundy NewBrain , muchos de los sistemas Acorn Eurocard y el Philips P2000T , que en realidad utilizó un chip de teletexto diseñado para sus televisores.
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 fuentes "normales" mediante bytes de atributos de caracteres . [19]
Uno de los últimos sistemas de vídeo en los que los semigráficos de texto fueron una opción útil fue el Adaptador de gráficos en color (CGA). Este adaptador de gráficos para las primeras PC IBM solo admitía cuatro colores en su modo de gráficos de alta resolución, pero en modo texto podía mostrar 16 colores diferentes. Aunque la fuente ROM del adaptador CGA no contenía todos los caracteres semigráficos de texto típicos, 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 también son caracteres en una fuente que pretenden dar la impresión de que un sistema puede admitir gráficos de alta resolución, cuando en realidad el sistema funciona en modo texto. Caracteres como caracteres de dibujo de cuadros , círculos y puntos, símbolos de tarjetas como ♠, ♣, ♥ y ♦, y formas geométricas de "bloques de construcción gráficos" como los triángulos dieron a estos sistemas esa apariencia.
Uno de los primeros sistemas que utilizó este tipo de caracteres, el ejemplo canónico que siguieron otros, fue el Commodore PET , que tenía muchos de ellos dentro de su conjunto de fuentes PETSCII . [21] El PET original se basó hasta tal punto en estos caracteres que los imprimió 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, pero dependía completamente de un conjunto de fuentes extendido con muchos caracteres pseudográficos. [22] Con estos todavía era posible generar juegos que parecían que el sistema tenía gráficos de alta resolución. [23]
Algunos de los sistemas que tenían un conjunto de fuentes programables, pero no tenían un hardware de gráficos rasterizados de alta resolución real, venían con conjuntos de caracteres predeterminados que se cargaban en la memoria RAM del conjunto de caracteres, y estos conjuntos a menudo incorporaban las ideas mencionadas aquí, aunque a menudo era También se dio el caso de que se definieran caracteres semigráficos dedicados según fuera necesario.
Sistemas que dependían de caracteres semigráficos.
Ejemplos de sistemas que dependían en gran medida de caracteres semigráficos para sus gráficos son:
El Commodore PET fue uno de los primeros sistemas que dependió en gran medida de caracteres semigráficos para mostrar cualquier tipo de gráfico en la pantalla (ver PETSCII ).
El Mattel Aquarius se basó completamente en su conjunto de personajes para los juegos, aunque se comercializaba a través de jugueterías. Nunca llegó a ser un éxito comercial en parte debido a esta limitación, que estaba desactualizada en ese momento (ver Conjunto de caracteres Mattel Aquarius ). [24]
La serie de computadoras Sharp MZ no ofrecía caracteres programables ni de alta resolución, pero sí tenía un conjunto muy completo de caracteres semigráficos (ver Conjunto de caracteres Sharp MZ ). - y por eso todavía ofrecía muchos juegos visualmente agradables [25]
El Compukit UK101 (clon de la popular superplaca Ohio Scientific) también fue uno de los primeros sistemas que dependía de su conjunto de 256 caracteres.
Los modos de texto de las computadoras Apple II posteriores, comenzando con la Apple IIc y la versión mejorada de la Apple IIe , admitían el juego de caracteres MouseText , que reemplazaba los caracteres en mayúsculas parpadeantes cuando estaba habilitado. Aunque estos sistemas Apple no dependían de estos conjuntos de caracteres, sí desempeñaban un papel en la simulación de gráficos tipo GUI de los miembros más avanzados de su familia, mientras aún estaban en modo texto.
^ Goldklang, Ira (2015). "Consejos y trucos gráficos". Archivado desde el original el 29 de julio de 2017 . Consultado el 29 de julio de 2017 .
^ ab Ewell, Doug ; Bettencourt, Rebecca G.; Banffy, Ricardo; Everson, Michael ; Silva, Eduardo Marín; Martenson, Elías; Shoulson, Marcos; Steele, Shawn; Turner, Rebecca (4 de enero de 2019). "5. Personajes gráficos". Propuesta para agregar caracteres de computadoras heredadas y teletexto a la UCS (PDF) . Grupo de Trabajo de Terminales (TWG), Organización Internacional de Normalización . pag. 3. L2/19-25. Archivado (PDF) desde el original el 24 de diciembre de 2020 . Consultado el 11 de enero de 2021 . pag. 3: La palabra "sextante" se utiliza en este documento, por analogía con "cuadrante" (un término utilizado 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 del teletexto, los caracteres de este grupo se podían mostrar con las celdas unidas, como ocurre con los caracteres de cuadrante existentes, o con un espacio estrecho entre las celdas. Un emulador de teletexto podría interpretar el carácter de control U+001A ("gráficos separados") para mostrar espacio entre celdas, o U+0019 ("gráficos contiguos") para volver a la apariencia unida predeterminada.{{cite book}}: |work=ignorado ( ayuda )
^ "Eventos semanales de JayceLand en Rochester n.º 191: All White Sixel". jayceland.com .
^ "Museo OLD-COMPUTERS.COM ~ Software y capturas de pantalla GALAKSIJA Galaksija". Vea la segunda imagen desde arriba. La imagen muestra una pequeña diferencia en la altura de algunos "píxeles" . Consultado el 27 de enero de 2014 .
^ "Descripción de los gráficos de bloques TRS-80".
^ Detalles técnicos Juego de caracteres ZX-81 y gráficos de bloques.
^ "Modo de visualización CoCo Semi-graphics-6".
^ "Modo de visualización semigráfico-6". 2021-02-14. Archivado desde el original el 14 de febrero de 2021.
^ "RTRussell: BBC BASIC para Windows". www.bbcbasic.co.uk .
^ "MATRA HACHETTE > ALICIA". Archivado desde el original el 3 de octubre de 2021 . Consultado el 3 de octubre de 2021 .
^ "MATRA HACHETTE > ALICIA 90". Archivado desde el original el 3 de octubre de 2021 . Consultado el 3 de octubre de 2021 .
^ "el VG5000μ". Archivado desde el original el 21 de agosto de 2021 . Consultado el 3 de octubre de 2021 .
^ "PROCESADOR DE PANTALLA SEMIGRÁFICA DE CHIP ÚNICO EF9345 HMOS2, SGS Thomson, marzo de 1995" (PDF) . Archivado (PDF) desde el original el 26 de julio de 2021 . Consultado el 12 de junio de 2021 .
^ http://mydocuments.g2.xrea.com/html/p8/vraminfo.html (Fuente en japonés; la oración relevante es "アトリビュートに開始位置とセミグラフィック指定ビット=1 を立てて、テキスト VRAM には文字"Esto se traduce aproximadamente como "En la posición inicial del modo semigráfico, una vez que el bit de atributo relevante se establece en uno, se escribirá un patrón de puntos en la VRAM para el código de caracteres en lugar de [de la letra gráfica predeterminada]." )
^ Referencia técnica de IBM PC XT, IBM, 1983, pág. 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 , recuperado el 24 de agosto de 2018.
^ "La entrada de old-computers.com sobre el Sharp MZ80K menciona la falta de capacidades gráficas".
^ "Sharp MZ80K - juego BASE ZERO". 29 de enero de 2010 - a través de www.youtube.com.