Studi mesin terbang pada terminal DEC VT100 dan VT220Baru-baru ini, saya sedikit terbuai dengan meniru media analog: Saya ingin menciptakan kembali grafis raster CRT, seperti pada "terminal kaca" di masa lalu, seperti seri VT ikonik dari Digital Equipment Corporation (DEC). Dalam prosesnya, sejumlah pertanyaan muncul tentang fitur tampilan font dalam grafik pixel CRT. Saya bertanya-tanya bagaimana sebenarnya font-font tersebut terlihat dan apakah mungkin merekonstruksi sesuai dengan spesifikasinya?
Font TrueType modern membuat ulang mesin terbang VT220. Perlu diingat bahwa terminal VT mendukung dua mode resolusi: satu untuk 132 karakter per baris dan satu untuk 80 karakter (masing-masing char-matrix 9 Γ 10 dan 10 Γ 10), di yang terakhir interval diperpanjang oleh satu pikselKarena banyaknya informasi teknis di situs-situs seperti
vt100.net dan
bitsavers.org, Anda dapat dengan mudah menentukan tampilan font-font tersebut. Sebagai contoh, kita dapat mengembalikan mesin terbang dari firmware terminal. Bahkan ada font TrueType yang mengulang tipografi VT220:
Glass TTY VT220 dengan garis raster dan
DEC Terminal Modern dengan garis besar yang modern dan halus (dalam ilustrasi di atas).
Setelah diperiksa lebih dekat, font-font ini sangat berbeda satu sama lain, tetapi tidak ada yang terlihat benar. Dibandingkan dengan foto-foto VT100 yang asli, perbedaannya tidak hanya terlihat pada kerapatan font, tetapi juga dalam ukuran dan bentuk garis besar serta βrasaβ font yang umum. Namun, foto terminal juga tidak dapat menyampaikan perasaan nyata kepadatan font, karena sangat tergantung pada parameter pemotretan:
Game petualangan Colossal CavePhoto di layar VT100. Foto: Wikipedia, Dave Fisher , 2008, Wikimedia Commons (diedit, NL).
Tampilkan daftar direktori pada VT100. Foto: Jason Scott , 2013. Creative Commons (diedit, NL).Karena foto-foto tidak terlalu membantu, sekarang saatnya untuk melihat firmware.
Firmware
Ada salinan ROM, Anda bisa mengekstrak font asli dari sana yang akan sangat cocok dengan aslinya, kan? .. Apa yang salah?
Isi ROM dari terminal VT100 (kiri) dan VT220 (kanan). Partisi VT200 dilakukan oleh Paul Flo Williams, vt100.net (2008). VT100 dilengkapi oleh saya, N. L.). Karakter 'a', 'c', 'g', '2', '6', '7', '9', '@', '%', '{', '}', '|' , 'Β°' dan bentuk karakter kontrol (β β β β€ β). Selain itu, VT220 memiliki lebih banyak karakterIni juga terlihat salah. Jelas, mesin terbang membentang secara vertikal hingga ketinggian sekitar dua kali lipat, tetapi ini bukan satu-satunya penyimpangan. Karakter tidak terlihat benar. Misalnya, lihat 'p' dan 'q' atau titik-titik stroke kanan hilir dari 'k', belum lagi garis besar lucu '6' dan '9' di VT100 atau distorsi '2'! Selain itu, setelah diperiksa lebih dekat, matriks karakter hanya 8 Γ 10, sementara kami mengharapkan setidaknya 9 Γ 10 (dan 10 Γ 10 untuk mode dengan 80 kolom), seperti yang dijelaskan dalam spesifikasi. Ini jelas bukan apa yang ditampilkan di layar.
Fosfor
Mari kita melihat manualnya, khususnya
Manual Teknis Seri VT100 (edisi ke-2, EK-VT100-TM-002; DEC, Maynard, Massachsetts, 1979). Ini menyatakan bahwa masalahnya adalah penundaan fosfor (fosfor):
Durasi pulsa dan profil aktivasi fosfor untuk VT100 dan VT200 (Manual Teknis Seri VT100, EK-VT100-TM-002, hlm. 4-78). Perlu diingat bahwa profil sinyal pulsa sangat ideal dan dalam realitas analog mereka juga cenderungWaktu aktivasi penuh fosfor sebenarnya lebih lama dari durasi pulsa untuk satu piksel (40 nanodetik). Ini berarti bahwa jika kita mencoba menampilkan hanya satu piksel, fosfor di lokasi tertentu ini tidak akan pernah mencapai tingkat aktivasi penuh, yang akan mengarah pada gambar buram dengan kecerahan berbeda antara bagian kusam, bagian lebih tipis dan bagian yang lebih tebal, lebih tebal. Oleh karena itu, tipografi dipaksa untuk menyesuaikan untuk menghasilkan pulsa durasi ganda (80 ns) untuk memberikan gambar yang jelas dan teks yang dapat dibaca.
Aktivasi pulsa dan durasi tunggal dan ganda (dari sana, diedit oleh NL)Pola Peregangan Titik
Untuk ini, terminal VT menggunakan metode peregangan titik khusus: baris individual dari matriks karakter dari ROM dimodifikasi dengan cepat, memperluas setiap impuls piksel aktif dengan satu piksel lagi. Di mana ada satu piksel dalam ROM, akan ada dua di layar. Di mana dua berturut-turut, tiga ditampilkan.
Dengan demikian, matriks 8 Γ 10 kami meluas ke yang diharapkan 9 Γ 10 (atau 10 Γ 10 dalam mode 80 kolom, di mana piksel terakhir untuk menggambar garis ditarik oleh impuls lain).
Stretch point dalam VT100 dan VT200 (Manual Teknis Seri VT100, EK-VT100-TM-002, hal. 4-78)Namun, ini akan menghasilkan hasil yang berbeda untuk karakter dengan ukuran normal dan lebar ganda! Berkat keajaiban titik peregangan, satu font berisi dua font, yang masing-masing tergantung pada ukuran layar!

- Seperti di ROM
- Lebar dot titik tunggal
- Lebar Ganda dengan Peregangan Dot
- Lebar tunggal dengan peregangan titik dan penundaan (fosfor)
- Lebar ganda dengan peregangan titik dan penundaan (fosfor)
(1, 2, 3 menurut Paul Flo Williams, vt100.net , 4 dan 5 ditambahkan oleh saya, NL)Sangat penting bahwa gambar (2) memberikan garis putus-putus yang berbeda dari garis yang jelas dalam rekonstruksi font modern. Tetapi jika kita menambahkan grafik aktivasi fosfor seperti sinusoidal dan kosinus (Gambar 4 dan 5, serta diagram dengan grafik aktivasi di atas), kita mendapatkan versi yang lebih akurat dari tampilan aktual di layar (ingat bahwa VT100 dan VT220 menunjukkan garis raster yang cukup terlihat).
Pola karakter VT220 (mode 80 kolom).
- Seperti di ROM
- Lebar dot titik tunggal
- Grafik aktivasi fosfor ditambahkan
- Menambahkan cahaya fosfor
(1 dan 23 menurut Paul Flo Williams, vt100.net , 3, 4 dan negatif ditambahkan oleh saya, N. L.)Ada contoh yang agak ekstrem tentang bagaimana medium menentukan penampilan bentuk tipografi, atau, di sisi lain, bagaimana desain mesin terbang dibuat dengan mempertimbangkan medium dan keterbatasan teknologi spesifiknya untuk mencapai tipografi yang diinginkan. Melihat efek aktivasi fosfor, penundaan dan cahaya, menjadi jelas mengapa foto-foto berbeda dari layar terminal VT menunjukkan lebar font yang berbeda, tergantung pada kecepatan rana pada kamera, sementara kelancaran keseluruhan font dipertahankan.
Berikut ini adalah representasi font lain dalam ROM menggunakan efek yang dijelaskan, yang lebih mirip dengan gambar layar nyata:
Mesin terbang yang terlihat VT100 (kiri) dan VT220 (kanan)Karakter lebar ganda VT100 ditunjukkan di bawah ini dibandingkan dengan karakter lebar tunggal normal (hitam putih, dan juga negatif, seperti yang dirasakan dari layar):

Gambar dari meja kerja
Dan akhirnya, dua gambar dari "meja kerja" kerja saya, yang saya coba buat ulang layar terminal analog di browser web menggunakan HTML5 dan kanvas API. Mungkin sedikit kabur retro, tetapi Anda mendapatkan ide:
Emulasi VT100 (tangkapan layar)
Emulasi VT220 (tangkapan layar)Dan itu saja untuk hari ini ...