stringtranslate.com

Semigrafía

Imagen generada mediante gráficos de bloques MDA
Imagen en color generada mediante caracteres semigráficos de teletexto

Los semigráficos , pseudográficos o gráficos de caracteres basados ​​en texto son un método primitivo utilizado en los primeros hardware de video en modo texto para emular gráficos rasterizados sin tener que implementar la lógica para dicho modo de visualización.

Existen dos formas diferentes de lograr la emulación de gráficos rasterizados. La primera consiste en crear un modo de direccionamiento 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 los caracteres 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 es utilizar formas especiales en lugar de glifos (letras y figuras) que aparecen como si estuvieran dibujados 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) todavía se incorporan a la 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 se ha cargado ningún sistema operativo. Todavía se suelen dibujar líneas simples y dobles con 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 han sido adoptadas en Unicode , por ejemplo en los bloques Unicode Símbolos para computación heredada , Elementos de bloque , Dibujo de caja y Formas geométricas . [4]

Gráficos de bloques

Ejemplo de visualización del conjunto de caracteres que muestra gráficos de bloques como los utilizados en la computadora en color TRS-80 (CoCo), Laser 210 y Dragon 32/64

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 utilizó, por ejemplo, en el Sinclair ZX81 ).

En ocasiones, los caracteres semigráficos del texto se incorporan simplemente al conjunto de fuentes del sistema; en ocasiones, se utiliza un hardware de vídeo especial para convertir directamente el patrón de bits de la memoria de vídeo en píxeles. En casos excepcionales, una matriz de caracteres no era divisible verticalmente por tres; por ejemplo, en una matriz de 8x8, el mosaico a veces se divide de forma que utilice un esquema de líneas de exploración de 3:2:3. El modo gráfico del Galaksija es un ejemplo, aunque con un esquema de 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 manera 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 2×3 píxeles de gráficos de bloques. En el caso del TRS-80 estos gráficos de bloques no se incorporaron a una ROM de fuente, 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 usaba la misma matriz pseudográfica de una matriz de 2 por 3 fue la Interfaz de Terminal de Video (VTI) del Poly-88 de polymorphic systems , un sistema basado en 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 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 píxel por píxel, 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 de la fuente, dedicada a los gráficos de bloque, se podía reducir a la mitad si el sistema también admitía un atributo "invertir", ya que la mitad de los caracteres de un conjunto de fuentes de gráficos de bloque completo 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 7F hexadecimal para el carácter "todos los bits están activados", ya que el 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 usar cinta de papel para perforar los siete agujeros, se creaba el "byte" 7F hexadecimal que se consideraba el carácter "DEL" o "borrado" ). [ cita requerida ] 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 caracteres lleno de "tinta", que a menudo se usaba para representar el cursor. [ cita requerida ]

Ejemplos de uso de gráficos de bloques

Conjunto de gráficos de bloques de texto del ZX-81

Otros ejemplos de sistemas que se basan en el uso de gráficos de bloques son:

Personajes semigráficos

Caracteres semigráficos utilizados en el juego Kingdom of Kroz
Gráfico PETSCII tal como se muestra en el C64 en los modos con y sin mayúsculas. (No se muestran los códigos de control, así como los caracteres en el rango $C0–$FF, que son los códigos de teclas en mayúsculas estándar que se devuelven desde el teclado y que se reflejan en el rango $60–$7F).
El teclado del PET 2001 tiene caracteres semigráficos indicados para una fácil entrada.

Los caracteres semigráficos son también caracteres de una fuente que tienen como objetivo dar la impresión de que un sistema puede admitir gráficos de alta resolución, mientras que, de hecho, el sistema funciona en modo texto. Los caracteres como los que dibujan cuadros , los círculos y los puntos, los símbolos de cartas como ♠, ♣, ♥ y ♦, y las formas geométricas de "bloques gráficos" como los triángulos dieron a estos sistemas esa apariencia.

Uno de los primeros sistemas que utilizó dichos caracteres, el ejemplo canónico que otros siguieron, fue el Commodore PET , que tenía muchos de ellos dentro de su conjunto de fuentes PETSCII . [21] El PET original dependía hasta tal punto 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 todavía era posible generar juegos que parecieran que el sistema tenía gráficos de alta resolución. [23]

Algunos de los sistemas que tenían un conjunto de fuentes programable, pero no tenían un hardware de gráficos rasterizados de alta resolución real, venían con conjuntos de caracteres predeterminados para ser cargados en la RAM de conjuntos de caracteres, y estos conjuntos a menudo incorporaban las ideas mencionadas aquí, aunque a menudo también se definían caracteres semigráficos dedicados 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:

Véase también

Referencias

  1. ^ "RTRussell: BBC BASIC para Windows". www.bbcbasic.co.uk .
  2. ^ Freytag (c), Asmus (13 de octubre de 2020). "Gráficos en mosaico separados por teletexto".
  3. ^ Especificación de teletexto mejorado (PDF) . Instituto Europeo de Normas de Telecomunicaciones. 1997. pág. 6.
  4. ^ El estándar Unicode, versión 15.1: formas geométricas (PDF) . Unicode, Inc. 2023.
  5. ^ ETS 300 072 - Equipo terminal (TE); Protocolo de capa de presentación de videotex Sintaxis de datos de la capa de presentación de videotex (PDF) . Instituto Europeo de Normas de Telecomunicaciones (publicado en 1996). 1990.
  6. ^ Goldklang, Ira (2015). "Consejos y trucos gráficos". Archivado desde el original el 2017-07-29 . Consultado el 2017-07-29 .
  7. ^ ab Ewell, Doug ; Bettencourt, Rebecca G.; Bánffy, Ricardo; Everson, Michael ; Silva, Eduardo Marín; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (4 de enero de 2019). "5. Caracteres gráficos". Propuesta para añadir caracteres de ordenadores antiguos y teletexto al UCS (PDF) . Grupo de trabajo sobre terminales (TWG), Organización Internacional de Normalización . p. 3. L2/19-25. Archivado (PDF) desde el original el 24 de diciembre de 2020 . Consultado el 11 de enero de 2021 . p. 3: La palabra "sextante" se utiliza en este documento, por analogía con "cuadrante" (un término utilizado para ciertos caracteres del UCS desde 1999) para referirse a un bloque semigráfico que consta de seis bloques más pequeños o "celdas" dispuestos en dos columnas y tres filas. En la especificación del teletexto, los caracteres de este grupo se pueden mostrar con las celdas unidas, como en el caso de 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 el espacio entre celdas, o U+0019 ("gráficos contiguos") para volver a la apariencia unida predeterminada. {{cite book}}: |work=ignorado ( ayuda )
  8. ^ "Eventos semanales de JayceLand en Rochester n.° 191: Sixel completamente blanco". jayceland.com .
  9. ^ "Museo OLD-COMPUTERS.COM ~ GALAKSIJA Software y capturas de pantalla de Galaksija". Vea la segunda imagen de arriba. La imagen muestra una pequeña diferencia en la altura de algunos "píxeles" . Consultado el 27 de enero de 2014 .
  10. ^ "Descripción de los gráficos del bloque TRS-80".
  11. ^ Detalles técnicos Conjunto de caracteres y gráficos en bloque del ZX-81
  12. ^ "Modo de visualización CoCo Semi-graphics-6".
  13. ^ "Modo de visualización Semi-graphics-6". 14 de febrero de 2021. Archivado desde el original el 14 de febrero de 2021.
  14. ^ "RTRussell: BBC BASIC para Windows". www.bbcbasic.co.uk .
  15. ^ "MATRA HACHETTE > ALICE". old-computers.com . Archivado desde el original el 2021-10-03 . Consultado el 2021-10-03 .
  16. ^ "MATRA HACHETTE > ALICE 90". old-computers.com . Archivado desde el original el 2021-10-03 . Consultado el 2021-10-03 .
  17. ^ 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 .
  18. ^ EF9345 - PROCESADOR DE PANTALLA SEMIGRÁFICA DE UN SOLO CHIP HMOS2 (PDF) . SGS-THOMSON Microelectronics. Marzo de 1995.
  19. ^ Programación PC-8801 - Información de VRAM (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 muestra un patrón de puntos se escribirá en la VRAM el código de carácter en lugar de [la letra gráfica predeterminada]". )
  20. ^ Referencia técnica de IBM PC XT, IBM, 1983, pág. 1-142 , consultado el 24 de agosto de 2018
  21. ^ 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
  22. ^ "old-computers.com La entrada sobre el Sharp MZ80K menciona la falta de capacidades gráficas".
  23. ^ "Sharp MZ80K - Juego BASE ZERO". 29 de enero de 2010 – vía www.youtube.com.
  24. ^ "Sistema informático doméstico Mattel Aquarius". www.vdsteenoven.com .
  25. ^ "Los juegos en el MZ-80K dependían de su gran conjunto de caracteres semigráficos".