Estudios de glifos en terminales DEC VT100 y VT220Recientemente, me dejé llevar por la emulación de medios analógicos: quería recrear los gráficos de trama de los CRT, como en los "terminales de vidrio" del pasado, como la icónica serie VT de Digital Equipment Corporation (DEC). En el proceso, surgieron una serie de preguntas sobre las características de la visualización de fuentes en los gráficos de píxeles CRT. Me pregunto cómo se verían realmente las fuentes y si es posible reconstruirlas de acuerdo con las especificaciones.
Las fuentes TrueType modernas recrean los glifos VT220. Tenga en cuenta que los terminales VT admiten dos modos de resolución: uno para 132 caracteres por línea y otro para 80 caracteres (matriz de caracteres 9 × 10 y 10 × 10, respectivamente), en este último el intervalo se extiende en un píxelDebido a la abundancia de información técnica en sitios como
vt100.net y
bitsavers.org, puede determinar fácilmente la apariencia de esas fuentes. Por ejemplo, podemos restaurar glifos desde el firmware del terminal. Incluso hay fuentes TrueType que repiten la tipografía VT220:
Glass TTY VT220 con líneas de trama y
DEC Terminal Modern con contornos modernos y suaves (en la ilustración de arriba).
Tras una inspección más cercana, estas fuentes son significativamente diferentes entre sí, pero ninguna de ellas se ve bien. En comparación con las fotografías del VT100 real, las diferencias son notables no solo en la densidad de fuente, sino también en el tamaño y la forma de los contornos y en la "sensación" general de la fuente. Sin embargo, las fotos del terminal tampoco pueden transmitir la sensación real de densidad de fuente, ya que depende en gran medida de los parámetros de disparo:
Juego de aventura Colossal CavePhoto en la pantalla de VT100. Foto: Wikipedia, Dave Fisher , 2008, Wikimedia Commons (editado, NL).
Visualice la lista de directorios en el VT100. Foto: Jason Scott , 2013. Creative Commons (editado, NL).Como las fotos no son muy útiles, es hora de echar un vistazo al firmware.
Firmware
Hay copias de la ROM, puede extraer fuentes reales de allí que coincidan perfectamente con el original, ¿verdad? ... ¿Qué podría salir mal?
El contenido de la ROM de los terminales VT100 (izquierda) y VT220 (derecha). La partición VT200 fue realizada por Paul Flo Williams, vt100.net (2008). VT100 suplementado por mí, N. L.). Los caracteres 'a', 'c', 'g', '2', '6', '7', '9', '@', '%', '{', '}', '|' , '°' y la forma de los caracteres de control (␉ ␍ ␊  ␋). Además, VT220 tiene más personajes.Esto también se ve mal. Obviamente, los glifos se extienden verticalmente hasta aproximadamente el doble de altura, pero esta no es la única distorsión. Los personajes simplemente no se ven bien. Por ejemplo, mire 'p' y 'q' o los puntos del trazo derecho aguas abajo de 'k', ¡sin mencionar los contornos divertidos de '6' y '9' en el VT100 o '2' distorsionado! Además, tras una inspección más cercana, la matriz de caracteres es de solo 8 × 10, mientras que esperábamos al menos 9 × 10 (y 10 × 10 para un modo con 80 columnas), como se describe en las especificaciones. Claramente, esto no es lo que se muestra en la pantalla.
Fósforo
Echemos otro vistazo a los manuales, en particular
el Manual técnico de la serie VT100 (2a edición, EK-VT100-TM-002; DEC, Maynard, Massachsetts, 1979). Establece que el asunto está en el retraso del fósforo (fósforo):
Duración del pulso y perfil de activación de fósforo para VT100 y VT200 (Manual técnico de la serie VT100, EK-VT100-TM-002, págs. 4-78). Tenga en cuenta que los perfiles de pulso de señal están altamente idealizados y, en realidad analógica, también están inclinadosEl tiempo de activación completa del fósforo es en realidad más largo que la duración del pulso por un píxel (40 nanosegundos). Esto significa que si tratamos de mostrar solo un píxel, el fósforo en esta ubicación en particular nunca alcanzará su nivel de activación completo, lo que conducirá a una imagen borrosa de diferente brillo entre las secciones más opacas y delgadas y las más densas y gruesas. Por lo tanto, la tipografía se ve obligada a ajustarse para producir pulsos de doble duración (80 ns) para proporcionar una imagen clara y texto legible.
Pulsos de duración única y doble y activación de fósforo (a partir de ahí, editado por NL)Patrón de estiramiento de punto
Para esto, los terminales VT utilizan un método especial de estiramiento de puntos: las filas individuales de la matriz de caracteres de la ROM se modifican sobre la marcha, extendiendo cualquier impulso del píxel activo en un píxel más. Donde hay un píxel en la ROM, habrá dos en la pantalla. Donde dos en una fila, se muestran tres.
Por lo tanto, nuestra matriz de 8 × 10 se expande al 9 × 10 esperado (o 10 × 10 en el modo de columna 80, donde el último píxel para dibujar líneas se estira por otro impulso).
Puntos de estiramiento en VT100 y VT200 (Manual técnico de la serie VT100, EK-VT100-TM-002, p. 4-78)¡Sin embargo, esto producirá resultados diferentes para caracteres de tamaño normal y doble ancho! Gracias a las maravillas de los puntos de estiramiento, una fuente contiene dos fuentes, ¡cada una de las cuales depende del tamaño de la pantalla!

- Como en ROM
- Ancho de estiramiento de un solo punto
- Doble ancho con estiramiento de puntos
- Ancho único con estiramiento de punto y retraso (fósforo)
- Doble ancho con estiramiento de puntos y retraso (fósforo)
(1, 2, 3 según Paul Flo Williams, vt100.net , 4 y 5 añadidos por mí, NL)Es fundamentalmente importante que la imagen (2) proporcione líneas punteadas que difieren de las líneas claras en las reconstrucciones de fuentes modernas. Pero si agregamos gráficos sinusoidales y coseno de activación de fósforo (Figs.4 y 5, así como un diagrama con un gráfico de activación arriba), obtenemos una versión más precisa de la visualización real en la pantalla (recuerde que VT100 y VT220 muestran líneas de trama bastante notables).
Patrones de caracteres VT220 (modo de 80 columnas).
- Como en ROM
- Ancho de estiramiento de un solo punto
- Se agregaron gráficos de activación de fósforo
- Brillo de fósforo agregado
(1 y 23 según Paul Flo Williams, vt100.net , 3, 4 y negativo agregado por mí, N. L.)Hay un ejemplo bastante extremo de cómo el medio dicta la apariencia de la forma tipográfica, o, por otro lado, cómo se crea el diseño de los glifos teniendo en cuenta el medio y sus limitaciones tecnológicas específicas para lograr la tipografía deseada. Al observar los efectos de activación del fósforo, el retraso y el brillo, queda claro por qué las diferentes fotografías de las pantallas de los terminales VT muestran diferentes anchos de fuente, dependiendo de la velocidad de obturación de la cámara, mientras se conserva la suavidad general de la fuente.
Aquí hay otra representación de las fuentes en la ROM usando los efectos descritos, que son mejor similares a la imagen de la pantalla real:
Glifos visibles VT100 (izquierda) y VT220 (derecha)Los caracteres VT100 de doble ancho se muestran a continuación en comparación con los caracteres normales de un solo ancho (negro sobre blanco y también en negativo, tal como se perciben desde la pantalla):

Imágenes del banco de trabajo
Y finalmente, dos imágenes de mi "banco de trabajo" de trabajo, en el que trato de recrear la pantalla del terminal analógico en un navegador web usando HTML5 y la API de lienzo. Tal vez un poco borroso retro, pero tienes la idea:
Emulación VT100 (captura de pantalla)
Emulación VT220 (captura de pantalla)Y eso es todo por hoy ...