CRTフォントの再作成

DEC VT100およびVT220端末のグリフ研究



最近、アナログメディアのエミュレートに少し夢中になりました。たとえば、Digital Equipment Corporation(DEC)の象徴的なVTシリーズなど、過去の「ガラスターミナル」のようにCRTのラスターグラフィックスを再現したかったのです。 その過程で、CRTピクセルグラフィックスのフォント表示の機能について多くの疑問が生じました。 フォントが実際にどのように見え、仕様に従ってフォントを再構築できるかどうか疑問に思います。





最新のTrueTypeフォントは、VT220グリフを再作成します。 VT端末は2行の解像度モードをサポートしていることに注意してください:1行あたり132文字と80文字(それぞれchar-matrix 9×10と10×10)、後者では間隔が1ピクセル拡張されます



vt100.netbitsavers.orgなどのサイトには豊富な技術情報があるため、これらのフォントの外観を簡単に判断できます。 たとえば、ターミナルファームウェアからグリフを復元できます。 VT220タイポグラフィに準拠したTrueTypeフォントもあります。GlassTTY VT220とラスターライン、そしてDEC Terminal Modernとモダンで滑らかなアウトライン(上の図)。



よく調べてみると、これらのフォントは互いに大きく異なっていますが、どれも正しく見えません。 実際のVT100の写真と比較すると、違いはフォント密度だけでなく、アウトラインのサイズと形状、およびフォントの一般的な「感じ」にも顕著です。 ただし、端末の写真は、撮影パラメータに大きく依存するため、フォント密度の本当の感覚を伝えることもできません。





VT100の画面上のアドベンチャーゲームColossal CavePhoto。 写真: ウィキペディア、デイブ・フィッシャー 、2008年、ウィキメディア・コモンズ(編集、NL)。





VT100のディレクトリリストを表示します。 写真: ジェイソン・スコット 、2013年。クリエイティブ・コモンズ(編集、NL)。



写真はあまり役に立たないので、今度はファームウェアを見てみましょう。



ファームウェア



ROMのコピーがありますが、そこから実際のフォントを抽出して、元のフォントと完全に一致させることができますよね?..何が間違っているのでしょうか?





VT100(左)およびVT220(右)端末からのROMコンテンツ。 VT200部門は、Paul Flo Williams、 vt100.net (2008)によって実行されました。 私によって補足されたVT100、N。L.)。 文字「a」、「c」、「g」、「2」、「6」、「7」、「9」、「@」、「%」、「{」、「}」、「|」 、 '°'および制御文字の形式(␉␍␊␤␋)。 さらに、VT220にはより多くの文字があります



間違っているようにも見えます。 明らかに、グリフは垂直方向に約2倍の高さに伸びますが、これが唯一の歪みではありません。 文字が正しく見えません。 たとえば、VT100の「6」と「9」の面白い輪郭や歪んだ「2」は言うまでもなく、「p」と「q」または下流の右ストローク「k」のポイントのオフセットを見てください! さらに、詳細な検査で、文字マトリックスはわずか8×10ですが、仕様で説明されているように、少なくとも9×10(80列のモードでは10×10)が予想されます。 これは明らかに画面に表示されるものではありません。



リン



マニュアル、特にVT100シリーズテクニカルマニュアル (第2版、EK-VT100-TM-002、DEC、メイナード、マサチューセッツ、1979年)をもう一度見てみましょう。 それは問題が蛍光体(リン)の遅延にあると述べています:





VT100およびVT200のパルス幅とリン活性化プロファイル(VT100シリーズテクニカルマニュアル、EK-VT100-TM-002、pp。4-78) 信号パルスプロファイルは非常に理想化されており、アナログの現実では傾斜していることにも留意してください



蛍光体が完全に活性化する時間は、実際には1ピクセルのパルス持続時間(40ナノ秒)よりも長くなります。 これは、1つのピクセルのみを表示しようとすると、この特定の場所の蛍光体がその完全な活性化レベルに到達せず、より鈍い、薄いセクションと、濃い、厚い間で異なる明るさのぼやけた画像につながることを意味します そのため、タイポグラフィを調整して、2倍のパルス(80 ns)を生成し、鮮明な画像と読みやすいテキストを提供するように強制します。





シングルおよびダブル持続時間パルスと蛍光体の活性化(そこから、NLが編集)



ポイントストレッチパターン



これを行うために、VT端末は特別なドットストレッチング方法を使用します。ROMからの文字マトリックスの個々の行はその場で変更され、アクティブピクセルのインパルスをもう1ピクセル拡張します。 ROMに1つのピクセルがある場合、画面には2つのピクセルがあります。 行の2つ、3つが表示されます。



したがって、8×10マトリックスは、予想される9×10(または80カラムモードで10×10、ライン描画の最後のピクセルがもう1パルス引き伸ばされる)に拡張されます。





VT100およびVT200のポイントストレッチング(VT100シリーズテクニカルマニュアル、EK-VT100-TM-002、p。4-78)



ただし、これは通常のサイズと2倍の幅の文字に対して異なる結果を生成します! ストレッチポイントの素晴らしさのおかげで、1つのフォントには2つのフォントが含まれ、それぞれが画面のサイズに依存します!





  1. ROMのように

  2. シングルドットストレッチ幅

  3. ドットストレッチのあるダブル幅

  4. ドットストレッチと遅延を備えた単一幅(蛍光体)

  5. ドットストレッチングと遅延を伴う倍幅(蛍光体)


(Paul Flo Williamsによると、 1、2、3vt100.net 、4および5は私によって追加されました、NL)



画像(2)が、現代のフォント再構築の明確な線とは異なるポイントストロークを与えることが基本的に重要です。 しかし、蛍光体の活性化の正弦波と余弦波のようなグラフ(図4と5、および上記の活性化グラフを含む図)を追加すると、画面上の実際の表示のより正確なバージョンが得られます(VT100とVT220は非常に顕著なラスター線を表示することに注意してください)。





VT220文字パターン(80列モード)。



  1. ROMのように

  2. シングルドットストレッチ幅

  3. 蛍光体活性化グラフィックが追加されました

  4. 蛍光体グローを追加


(Paul Flo Williamsによると、1と23、 vt100.net 、3、4、および私が追加したネガティブ、 N。L .)



媒体が活版印刷形式の外観を決定する方法の極端な例がありますが、一方で、目的の活版印刷を実現するために媒体とその特定の技術的制限を考慮してグリフのデザインが作成される方法もあります。 蛍光体の活性化効果、遅延、およびグローを見ると、VTターミナルの画面の異なる写真が、カメラのシャッタースピードに応じて異なるフォント幅を示すのは明らかであるが、フォントの全体的な滑らかさは維持されます。



以下は、実際の画面イメージによく似た、説明した効果を使用したROM内のフォントの別の表現です。





表示グリフVT100(左)およびVT220(右)



VT100の倍幅の文字は、通常の単一幅の文字と比較して以下に示されています(画面から認識されるように、白地に黒で、負の文字もあります)。







ワークベンチからの写真



そして最後に、作業中の「ワークベンチ」からの2つの画像で、HTML5とキャンバスAPIを使用してWebブラウザーでアナログ端末画面を再作成しようとしています。 少しレトロなぼかしかもしれませんが、あなたはアイデアを得る:





VT100エミュレーション(スクリーンショット)





VT220エミュレーション(スクリーンショット)



そしてそれが今日のすべてです...



All Articles