-
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: Add support for Symbols for Legacy Computing (U+1FB00…U+1FBFF) #597
Comments
I hope this goes through! Great work btw! |
…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]>
Could you also add these, please (most of them are used by Sinclair ZX81 and it would make it easier to edit and emulate programs for that computer in a terminal in Windows if they exist): Rectangular shade characters:
The already existing medium shade (2592) should fit together with the half medium shade characters, and the inverse medium shade (1FB90) should fit together with the half inverse medium shade characters. The LEFT and RIGHT HALF of these are not used by ZX81, but might be useful for emulation of other computers. They have checkerboard patterns (originally in an 8x8 matrix, but the resolution could be higher now). All characters in a fixed width font should have the same width, I believe. They already exist in Raspberry Pi OS in Chromium and LXTerminal with terminal font Monospace Regular (what font Chromium use, I don't know). I believe one can write programs to generate them. References: |
I would like to get all the remaining ones added, but those require more work and style decisions as they should mix well with other shading blocks that Cascadia implements as diagonal hash lines. |
Unicode 14 added most glyphs that were used for text-based drawing on 8-bit computers as a new Symbols for Legacy Computing block (U+1FB00…U+1FBFF, see https://en.wikipedia.org/wiki/Symbols_for_Legacy_Computing).
These were originally part of character sets of 8-bit computers (Atari, C=64, TRS-80, ...) to be able to do some drawing on text-mode displays, either for simplicity, or because the computer did not offer any graphics mode at all.
Consoles and Terminals are the evolution of those text modes, block elements and box drawing characters inherited from the IBM PC Extended ASCII are simply IBM's version of such glyphs.
It would be nice for Cascadia Mono to include these symbols, making it possible to render contents from legacy text modes as well. Some terminals already render these correctly, such as gnome-terminal on Ubuntu.
The Symbols for Legacy Computing block is an extension of the existing block elements and box drawing characters, and should be consistent with some existing symbols.
For example, the TRS-80 squots (2x3 matrix block elements, see https://en.wikipedia.org/wiki/TRS-80_character_set) have been included in the new range, but relie on existing █, ▐, and ▌ to complete the set.
If mixed from different fonts through font fallback, they can have problems fitting together, so including them in a single font would be better.
Related issue in Windows Terminal : microsoft/terminal#11694
The text was updated successfully, but these errors were encountered: