Etudes de glyphes sur les terminaux DEC VT100 et VT220Récemment, je me suis un peu laissé emporter par l'émulation des médias analogiques: je voulais recréer les graphiques raster des CRT, comme sur les «terminaux en verre» du passé, comme l'iconique série VT de Digital Equipment Corporation (DEC). Au cours de ce processus, un certain nombre de questions se sont posées sur les fonctionnalités d'affichage des polices dans les graphiques à pixels CRT. Je me demande à quoi ressemblaient les polices et s'il est possible de les reconstruire selon les spécifications?
Les polices TrueType modernes recréent des glyphes VT220. Gardez à l'esprit que les terminaux VT prennent en charge deux modes de résolution: un pour 132 caractères par ligne et un pour 80 caractères (char-matrix 9 × 10 et 10 × 10, respectivement), dans ce dernier, l'intervalle est prolongé d'un pixelEn raison de l'abondance d'informations techniques sur des sites comme
vt100.net et
bitsavers.org, vous pouvez facilement déterminer l'apparence de ces polices. Par exemple, nous pouvons restaurer des glyphes à partir du firmware du terminal. Il existe même des polices TrueType qui reproduisent la typographie VT220:
Glass TTY VT220 avec des lignes tramées et
DEC Terminal Modern avec des contours modernes et lisses (dans l'illustration ci-dessus).
En y regardant de plus près, ces polices sont très différentes les unes des autres, mais aucune ne semble correcte. Par rapport aux photographies du vrai VT100, les différences sont notables non seulement dans la densité de la police, mais aussi dans la taille et la forme des contours et dans la «sensation» générale de la police. Cependant, les photos du terminal ne peuvent pas non plus transmettre le véritable sentiment de densité de police, car cela dépend fortement des paramètres de prise de vue:
Jeu d'aventure Colossal CavePhoto sur l'écran du VT100. Photo: Wikipedia, Dave Fisher , 2008, Wikimedia Commons (édité, NL).
Affichez la liste des répertoires sur le VT100. Photo: Jason Scott , 2013. Creative Commons (édité, NL).Comme les photos ne sont pas très utiles, il est temps de jeter un œil au firmware.
Firmware
Il existe des copies de la ROM, vous pouvez simplement en extraire de vraies polices qui correspondront parfaitement à l'original, non? .. Qu'est-ce qui pourrait mal tourner?
Le contenu de la ROM des terminaux VT100 (gauche) et VT220 (droite). La partition VT200 a été réalisée par Paul Flo Williams, vt100.net (2008). VT100 complété par moi, N. L.). Les caractères 'a', 'c', 'g', '2', '6', '7', '9', '@', '%', '{', '}', '|' , '°' et la forme des caractères de contrôle (␉ ␍ ␊  ␋). De plus, le VT220 a plus de caractèresCela semble également faux. Évidemment, les glyphes s'étirent verticalement jusqu'à une hauteur approximativement double, mais ce n'est pas la seule distorsion. Les personnages n'ont tout simplement pas l'air bien. Par exemple, regardez 'p' et 'q' ou les points du trait droit en aval de 'k', sans parler des contours amusants de '6' et '9' sur le VT100 ou déformé '2'! De plus, en y regardant de plus près, la matrice de caractères n'est que de 8 × 10, alors que nous nous attendions à au moins 9 × 10 (et 10 × 10 pour un mode à 80 colonnes), comme décrit dans les spécifications. Ce n'est clairement pas ce qui est affiché à l'écran.
Phosphore
Jetons un autre regard sur les manuels, en particulier
le manuel technique de la série VT100 (2e édition, EK-VT100-TM-002; DEC, Maynard, Massachsetts, 1979). Il précise que la question est dans le retard du phosphore (phosphore):
Durée d'impulsion et profil d'activation du phosphore pour VT100 et VT200 (Manuel technique de la série VT100, EK-VT100-TM-002, p. 4-78). Gardez à l'esprit que les profils d'impulsion de signal sont très idéalisés et en réalité analogique, ils sont également inclinésLe temps d'activation complète du luminophore est en réalité plus long que la durée d'impulsion pour un pixel (40 nanosecondes). Cela signifie que si nous essayons d'afficher un seul pixel, le phosphore à cet endroit particulier n'atteindra jamais son niveau d'activation complet, ce qui conduira à une image floue de luminosité différente entre les sections les plus ternes et les plus fines et les plus denses et les plus épaisses. Par conséquent, la typographie est forcée de s'ajuster pour produire des impulsions à double durée (80 ns) afin de fournir une image claire et un texte lisible.
Impulsions de durée simple et double et activation du phosphore (à partir de là, édité par NL)Modèle d'étirement des points
Pour cela, les terminaux VT utilisent une méthode spéciale d'étirement des points: les lignes individuelles de la matrice de caractères de la ROM sont modifiées à la volée, étendant les impulsions du pixel actif d'un pixel de plus. Lorsqu'il y a un pixel dans la ROM, il y en aura deux à l'écran. Lorsque deux de suite, trois s'affichent.
Ainsi, notre matrice 8 × 10 se développe au 9 × 10 attendu (ou 10 × 10 en mode 80 colonnes, où le dernier pixel pour dessiner des lignes est étiré par une autre impulsion).
Points d'étirement dans VT100 et VT200 (Manuel technique de la série VT100, EK-VT100-TM-002, p. 4-78)Cependant, cela produira des résultats différents pour les caractères de taille normale et de double largeur! Grâce aux merveilles des points d'étirement, une police contient deux polices, chacune dépendant de la taille de l'écran!

- Comme dans la ROM
- Largeur d'étirement d'un point
- Double largeur avec étirement des points
- Simple largeur avec étirement des points et retard (phosphore)
- Double largeur avec étirement des points et retard (phosphore)
(1, 2, 3 selon Paul Flo Williams, vt100.net , 4 et 5 ajoutés par moi, NL)Il est fondamentalement important que l'image (2) donne des lignes pointillées qui diffèrent des lignes claires dans les reconstructions de polices modernes. Mais si nous ajoutons des graphiques sinusoïdaux et en forme de cosinus d'activation du phosphore (figures 4 et 5, ainsi qu'un diagramme avec un graphique d'activation ci-dessus), nous obtenons une version plus précise de l'affichage réel à l'écran (rappelez-vous que les VT100 et VT220 montrent des lignes de trame assez visibles).
Modèles de caractères VT220 (mode 80 colonnes).
- Comme dans la ROM
- Largeur d'étirement d'un point
- Graphiques d'activation du phosphore ajoutés
- Lueur de phosphore ajoutée
(1 et 23 selon Paul Flo Williams, vt100.net , 3, 4 et négatifs ajoutés par moi, N. L.)Il existe un exemple assez extrême de la façon dont le médium dicte l'apparence de la forme typographique, ou, d'autre part, comment le design des glyphes est créé en tenant compte du médium et de ses limites technologiques spécifiques pour atteindre la typographie souhaitée. En regardant les effets d'activation du phosphore, le retard et la lueur, il devient clair pourquoi différentes photographies des écrans des terminaux VT montrent différentes largeurs de police, en fonction de la vitesse d'obturation sur l'appareil photo, alors que la fluidité globale de la police est préservée.
Voici une autre représentation des polices dans la ROM en utilisant les effets décrits, qui sont mieux similaires à l'image réelle de l'écran:
Glyphes visibles VT100 (gauche) et VT220 (droite)Les caractères double largeur VT100 sont illustrés ci-dessous par rapport aux caractères simple largeur normaux (noir sur blanc, ainsi qu'en négatif, tels qu'ils sont perçus à l'écran):

Photos de l'établi
Et enfin, deux images de mon «établi» de travail, sur lesquelles j'essaie de recréer l'écran du terminal analogique dans un navigateur Web en utilisant HTML5 et l'API Canvas. Peut-être un peu de flou rétro, mais vous avez l'idée:
Émulation VT100 (capture d'écran)
Émulation VT220 (capture d'écran)Et c'est tout pour aujourd'hui ...