stringtranslate.com

Semigrafía

Imagen renderizada usando gráficos de bloques MDA
Imagen en color renderizada utilizando 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 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.

Muchas de estas ideas históricas se han adoptado en Unicode , por ejemplo en los bloques Unicode Símbolos para informática heredada , Elementos de bloque , Dibujo de cajas y Formas geométricas . [4]

gráficos de bloques

Pantalla de juego de caracteres de muestra que muestra gráficos de bloques tal como se utilizan en la computadora en color TRS-80 (CoCo) 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 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 bloque de 2×3 píxeles. gráficos. En el caso del TRS-80, estos gráficos en bloques 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.

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

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

Caracteres semigráficos

Gráfico PETSCII como se muestra en el C64 en modos con y sin cambios. (No se muestran los códigos de control, ni los caracteres en el rango $C0–$FF, que son los códigos de teclas en mayúsculas estándar devueltos por 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 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 para ser cargados 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:

Ver también

Referencias

  1. ^ "RTRussell: BBC BASIC para Windows". www.bbcbasic.co.uk .
  2. ^ Freytag (c), Asmus (13 de octubre de 2020). "Gráficos de mosaico separados por teletexto".
  3. ^ Especificación de teletexto mejorada (PDF) . Instituto Europeo de Normas de Telecomunicaciones. 1997. pág. 6.
  4. ^ "El bloque Unicode U25A0 contiene formas geométricas" (PDF) .
  5. ^ https://www.etsi.org/deliver/etsi_i_ets/300001_300099/300072/01_60/ets_300072e01p.pdf
  6. ^ 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 .
  7. ^ 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 )
  8. ^ "Eventos semanales de JayceLand en Rochester n.º 191: All White Sixel". jayceland.com .
  9. ^ "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 .
  10. ^ "Descripción de los gráficos de bloques TRS-80".
  11. ^ Detalles técnicos Juego de caracteres ZX-81 y gráficos de bloques.
  12. ^ "Modo de visualización CoCo Semi-graphics-6".
  13. ^ "Modo de visualización semigráfico-6". 2021-02-14. Archivado desde el original el 14 de febrero de 2021.
  14. ^ "RTRussell: BBC BASIC para Windows". www.bbcbasic.co.uk .
  15. ^ "MATRA HACHETTE > ALICIA". Archivado desde el original el 3 de octubre de 2021 . Consultado el 3 de octubre de 2021 .
  16. ^ "MATRA HACHETTE > ALICIA 90". Archivado desde el original el 3 de octubre de 2021 . Consultado el 3 de octubre de 2021 .
  17. ^ "el VG5000μ". Archivado desde el original el 21 de agosto de 2021 . Consultado el 3 de octubre de 2021 .
  18. ^ "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 .
  19. ^ 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]." )
  20. ^ Referencia técnica de IBM PC XT, IBM, 1983, p. 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 , recuperado el 24 de agosto de 2018.
  22. ^ "La entrada de old-computers.com sobre el Sharp MZ80K menciona la falta de capacidades gráficas".
  23. ^ "Sharp MZ80K - juego BASE ZERO". 29 de enero de 2010 - a través de www.youtube.com.
  24. ^ "Sistema informático doméstico Mattel Aquarius". www.vdsteenoven.com .
  25. ^ "Los juegos del MZ-80K se basaban en su gran conjunto de caracteres semigráficos".