microsoft / cascadia-code

This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.
Other
25.1k stars 793 forks source link

Feature Request: Missing characters for HP 2640 Series terminals emulation #715

Open PhMajerus opened 4 months ago

PhMajerus commented 4 months ago

Description of the new feature/enhancement

There are just a few characters missing for Cascadia to cover all the characters available on HP 2640 Series terminals from the 1970's. These were high-end terminals with advanced features, one of which was the ability to install extra characters ROMs for specific uses. Much more details about those terminals can be found at https://www.curiousmarc.com/computing/hp-264x-terminals

The Roman uppercase and lowercase are the standard 7-bit ASCII, with Control Pictures (which were added already in early 2021 #219), and a special checkerboard Delete Symbol U+2428 (which is included in my #708 pull request).

Roman Uppercase Roman Lowercase

The extra ROMs include Line drawing (including some uncommon lines), and Large Type Pieces: 1816-0641 Line Font 9bit uVector sep 1816-1425 Large Letter Set 8bit uVector sep

I'll be submitting contributions for the large type pieces (#709) and the line drawing (part of Unicode 16 symbols for legacy computing supplement), so these two characters ROMs will be completed.

And finally, the last ROM contains Math symbols, which contains mostly Greek, and a few extra: 1816-0642 Math Characters Sep

Here it is as text:

  √ │ § ∇ ± ∝ ⌠
÷ ≃ Π Γ Ψ ≡ Φ Ξ
⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷
⁸ ⁹ Ω Λ ∞ ⌡ ☨ Σ
¶ α β ψ φ ε ∂ λ
η ι Θ κ ω μ ν ρ
π γ θ σ τ ξ Δ δ
χ υ ζ ↑ → Υ ← ↓

Proposed technical implementation details

If I'm not mistaking, the only characters missing from Cascadia are the following: :U+2207 Nabla (pretty much a reversed Δ) :U+221D Proportional To (crop the right end of ∞) :U+2243 Asymptotically Equal To :U+2628 Cross Of Lorraine (I have no idea how this is used for Math, but I confirmed the symbol visual in the documentation keyboard cheat sheet)

image

So yeah, just 4 more symbols and we can claim we support the whole set!

The HP 2640 also supported some APL overstrike characters, but I don't think that's supported at all in modern terminal emulators, or even any other display-based (glass instead of paper) terminals from back then, and I haven't seen them in Unicode so far.

Historical significance

HP 2640A terminal 3

I think it would be great to add those four characters, not only would it make legacy codepages / terminals charsets support more complete, but the HP 2645A and later were based on an Intel 8080 and could run rudimentary local software as well, blurring the line between terminals and microcomputers. Some models starting from 1978 included HP Terminal BASIC, which according to some sources is based on Microsoft BASIC-80, one of the early port of Microsoft BASIC for 8080 and Z80 microprocessors.

This means it could be considered one of the very first microcomputers with a screen running Microsoft Basic, just after the Commodore PET and Apple II, which were both based on MOS 6502, and the TRS-80, which was based on Zilog Z80. Since the Altair 8800 originally didn't have a screen, I believe the HP 2647A might have been the first microcomputer running Microsoft BASIC-80 (the 8080 port of BASIC) with a terminal interface.

Apparently, it was also a very common terminal used by hobbyists to create personal computers from, basically building the processing unit part and using the HP 2640A or later as the screen and keyboard through a serial connection. This means it could even have been used as one of the first terminal interface to Microsoft Basic on the Altair as early as 1975, even before the Commodore PET, Apple II, and TRS-80 got released. In a sense, this is probably the very first character set used by the very first Microsoft product. And we only need 4 more characters to support emulating it properly in Windows Terminal.