Estudos de glifos nos terminais DEC VT100 e VT220Recentemente, eu me empolguei imitando a mídia analógica: eu queria recriar os gráficos raster dos CRTs, como nos "terminais de vidro" do passado, como a icônica série VT da Digital Equipment Corporation (DEC). No processo, surgiram várias perguntas sobre os recursos de exibição de fonte nos gráficos de pixel CRT. Gostaria de saber como as fontes realmente pareciam e se é possível reconstruí-las de acordo com as especificações?
As fontes TrueType modernas recriam os glifos do VT220. Lembre-se de que os terminais VT suportam dois modos de resolução: um para 132 caracteres por linha e outro para 80 caracteres (matriz de caracteres 9 × 10 e 10 × 10, respectivamente); neste último, o intervalo é estendido em um pixelDevido à abundância de informações técnicas em sites como
vt100.net e
bitsavers.org , você pode determinar facilmente a aparência dessas fontes. Por exemplo, podemos restaurar glifos do firmware do terminal. Existem até fontes TrueType que repetem a tipografia VT220:
Glass TTY VT220 com linhas raster e
DEC Terminal Modern com contornos modernos e suaves (na ilustração acima).
Após uma inspeção mais detalhada, essas fontes são significativamente diferentes umas das outras, mas nenhuma delas parece correta. Comparando com as fotografias do VT100 real, as diferenças são notáveis não apenas na densidade da fonte, mas também no tamanho e forma dos contornos e na "sensação" geral da fonte. No entanto, as fotos dos terminais também não podem transmitir a sensação real da densidade da fonte, porque depende muito dos parâmetros de disparo:
Jogo de aventura Colossal CaveFoto na tela do VT100. Foto: Wikipedia, Dave Fisher , 2008, Wikimedia Commons (editado, NL).
Exiba a lista de diretórios no VT100. Foto: Jason Scott , 2013. Creative Commons (editado, NL).Como as fotos não são muito úteis, é hora de dar uma olhada no firmware.
Firmware
Existem cópias da ROM, você pode apenas extrair fontes reais de lá que combinam perfeitamente com o original, certo? .. O que poderia dar errado?
O conteúdo da ROM dos terminais VT100 (esquerda) e VT220 (direita). A partição VT200 foi realizada por Paul Flo Williams, vt100.net (2008). VT100 suplementado por mim, N. L.). Os caracteres 'a', 'c', 'g', '2', '6', '7', '9', '@', '%', '{', '}', '|' , '°' e a forma dos caracteres de controle (␉ ␍ ␊  ␋). Além disso, o VT220 possui mais caracteresIsso também parece errado. Obviamente, os glifos se estendem verticalmente até aproximadamente o dobro da altura, mas essa não é a única distorção. Os personagens simplesmente não parecem certos. Por exemplo, observe 'p' e 'q' ou os pontos do traçado direito a jusante de 'k', sem mencionar os contornos engraçados de '6' e '9' no VT100 ou '2' distorcido! Além disso, após uma inspeção mais detalhada, a matriz de caracteres é de apenas 8 × 10, enquanto esperávamos pelo menos 9 × 10 (e 10 × 10 para um modo com 80 colunas), conforme descrito nas especificações. Isso claramente não é o que é exibido na tela.
Fósforo
Vamos examinar novamente os manuais, em particular
o Manual Técnico da Série VT100 (2ª edição, EK-VT100-TM-002; DEC, Maynard, Massachsetts, 1979). Ele afirma que a questão está no atraso do fósforo (fósforo):
Duração do pulso e perfil de ativação do fósforo para o VT100 e o VT200 (Manual Técnico da Série VT100, EK-VT100-TM-002, pp. 4-78). Lembre-se de que os perfis de pulso de sinal são altamente idealizados e, na realidade analógica, também são inclinadosO tempo de ativação total do fósforo é realmente maior que a duração do pulso de um pixel (40 nanossegundos). Isso significa que, se tentarmos exibir apenas um pixel, o fósforo nesse local em particular nunca atingirá seu nível de ativação total, o que levará a uma imagem borrada de brilho diferente entre as seções mais maçantes e mais finas e as mais densas e mais espessas. Portanto, a tipografia é forçada a se ajustar para produzir pulsos de duração dupla (80 ns) para fornecer uma imagem clara e um texto legível.
Pulsos de duração única e dupla e ativação de fósforo (a partir daí, editado por NL)Padrão de Alongamento de Ponto
Para isso, os terminais VT usam um método especial de alongamento de pontos: linhas individuais da matriz de caracteres da ROM são modificadas em tempo real, estendendo quaisquer impulsos do pixel ativo por mais um pixel. Onde houver um pixel na ROM, haverá dois na tela. Onde dois em uma linha, três são exibidos.
Assim, nossa matriz 8 × 10 se expande para os 9 × 10 esperados (ou 10 × 10 no modo de 80 colunas, onde o último pixel para desenhar linhas é esticado por outro impulso).
Pontos de alongamento no VT100 e VT200 (Manual técnico da série VT100, EK-VT100-TM-002, p. 4-78)No entanto, isso produzirá resultados diferentes para caracteres de tamanho normal e largura dupla! Graças às maravilhas dos pontos de alongamento, uma fonte contém duas fontes, cada uma das quais depende do tamanho da tela!

- Como na ROM
- Largura de estiramento de ponto único
- Largura Dupla com Alongamento de Pontos
- Largura única com alongamento e atraso de pontos (fósforo)
- Largura dupla com alongamento e atraso de pontos (fósforo)
(1, 2, 3 de acordo com Paul Flo Williams, vt100.net , 4 e 5 adicionados por mim, NL)É de fundamental importância que a imagem (2) forneça linhas pontilhadas que diferem das linhas claras nas reconstruções de fontes modernas. Mas se adicionarmos gráficos sinusoidais e do tipo cosseno da ativação do fósforo (Figs. 4 e 5, bem como um diagrama com um gráfico de ativação acima), obteremos uma versão mais precisa da exibição real na tela (lembre-se de que o VT100 e o VT220 mostram linhas raster bastante visíveis).
Padrões de caracteres VT220 (modo de 80 colunas).
- Como na ROM
- Largura de estiramento de ponto único
- Gráficos de ativação de fósforo adicionados
- Adicionado brilho de fósforo
(1 e 23 de acordo com Paul Flo Williams, vt100.net , 3, 4 e negativo adicionado por mim, N. L.)Há um exemplo bastante extremo de como o meio determina a aparência da forma tipográfica ou, por outro lado, como o design dos glifos é criado, levando em consideração o meio e suas limitações tecnológicas específicas para atingir a tipografia desejada. Observando os efeitos de ativação do fósforo, o atraso e o brilho, fica claro por que diferentes fotografias das telas dos terminais VT mostram larguras diferentes de fonte, dependendo da velocidade do obturador na câmera, enquanto a suavidade geral da fonte é preservada.
Aqui está outra representação das fontes na ROM usando os efeitos descritos, que são mais semelhantes à imagem da tela real:
Glifos visíveis VT100 (esquerda) e VT220 (direita)Os caracteres de largura dupla do VT100 são mostrados abaixo em comparação com os caracteres de largura única normais (preto em branco e também em negativo, como são percebidos na tela):

Imagens da bancada
E, finalmente, duas imagens da minha bancada de trabalho, na qual tento recriar a tela do terminal analógico em um navegador da Web usando HTML5 e a API do canvas. Talvez um pouco retrô, mas você entendeu:
Emulação VT100 (captura de tela)
Emulação VT220 (captura de tela)E isso é tudo por hoje ...