-
Notifications
You must be signed in to change notification settings - Fork 816
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Missing characters for HP 2640 Series terminals emulation #715
Labels
Comments
DHowett
pushed a commit
that referenced
this issue
Apr 23, 2024
…extants, segmented digits, and large type pieces (#723) ## New diagonals, octants, sedecimants & eights, separated quadrants & sextants, segmented digits, and large type pieces (Symbols for Legacy Computing) - Added diagonals `U+1FB3C` - `U+1FB67` - Added octants (2×4 mosaics) `U+1CD00` - `U+1CDE5` - Added sedecimants (4×4 mosaics) `U+1CE90` - `U+1CEAF` - Added eights (8×8 patterns) `U+1FB70` - `U+1FB80`, `U+1FB82` - `U+1FB8B` - Added misc. blocks `U+1FB97`, `U+1FBCE`, `U+1FBCF` - Added separated quadrants (2×2) `U+1CC21` - `U+1CC2F` - Added separated sextants (2×3) `U+1CE51` - `U+1CE8F` - Added segmented digits (LED/LCD display style) `U+1CCF0` - `U+1CCF9` - Added large type pieces (see #709) `U+1CE1A` - `U+1CE50` This update does not modify any existing character, it is only adding new characters from the Symbols for Legacy Computing blocks (original and supplement). These characters use the same unified coordinates as my previous #708 submission. It continues the sextants with diagonal fills that meet the sextants corners, adds octants, most of the 8×8 pixels-based lines and fills (sedecimants & eights), as well as the separated mosaics, segmented digits, and large type pieces. Some existing mosaic characters are not perfectly aligned on the same grid, and it would be best to adjust them to fit the unified grid as well, but that is not part of this PR, and I guess we won't have the time to do that for the next release. Note it does not complete the original Symbols for Legacy Computing block yet, as it does not include the extra lines/box-drawing characters, shaded mosaics, MouseText, and some other specific symbols. The focus has been on completing the mosaics part, including the ones coming in Unicode 16.0, and the Large Type Pieces. This one is quite big, containing almost all the glyphs I've been working on at once. This is to meet the short deadline for the next release of Cascadia Code, as discussed with @aaronbell. It contains 948 glyphs for 479 characters. Many of the glyphs are pure geometric shapes with no artistic liberty at all, they simply follow the unified grid and handle both GDI and DWrite ("stypo") variants. All the glyphs have been added to the `features.fea::@NotSpace` list of non-italic fonts, except for the segmented digits, which have been added to `@Digit` instead of `@NotSpace`. The segmented digits `U+1CCF0` - `U+1CCF9` are based on their original Atari ST design and Unicode reference design, with the bounding box and segments widths adjusted to fit the `H` character, and spaces between the segments large enough to be visible even at 12pt on 100% DPI. The Large Type Pieces are based on their original HP 2640 Series terminals design and Unicode reference design, but I took liberties to reinterpret the pieces to make them more rounded and, I believe, more in line with the Cascadia Code design. Note the Unicode reference design is somewhat wrong as their diagonals do not join perfectly, while my version takes great care to support all the combinations alignments with straight diagonal lines. The only piece where more artistic liberty is available is the `Q` stem `U+1CE45`, where I tried to make it more reminiscent of Cascadia's `Q` design. More details and screenshots of the large type pieces are available in issue #709. Finally, `U+1FB97` is the same pattern as `U+1CDB7`, they have different origins, but I'm not sure why Unicode repeated it for octants instead of reusing the existing one as they did for some other existing pattern. I included them as separate glyphs as well. * Continues #708 * Improves #715 (does not close it, but greatly improves coverage) * Improves #597 (does not close it, but greatly improves coverage) * Closes #711 * Closes #709 Co-authored-by: Philippe Majerus <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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).The extra ROMs include Line drawing (including some uncommon lines), and Large Type Pieces:
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:
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)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
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.
The text was updated successfully, but these errors were encountered: