Skip to content
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

Encoding woes #4

Open
ctrlcctrlv opened this issue Nov 12, 2022 · 13 comments
Open

Encoding woes #4

ctrlcctrlv opened this issue Nov 12, 2022 · 13 comments

Comments

@ctrlcctrlv
Copy link
Contributor

I'm working on this now, but this font has a particular issue because it's for an encoding that Terry, essentially, just made up.

I suggest that we handle it thus:

  1. BDF font should be in Terry's order
  2. We should distribute two kinds of OpenType font:
    1. one in Terry order;
    2. one in Unicode order.
  3. We distribute a table to convert the encodings between one another.
  4. For those characters outside of Unicode (there are actually far fewer than @rendello assumed, he just didn't know the right codepoints for them), we put them in the PUA in a space I will ask for from the ConScript folks.
@ctrlcctrlv
Copy link
Contributor Author

image

@ctrlcctrlv
Copy link
Contributor Author

Encoding table is done.

# TEMPLEOS.TXT
# Date: 2022-11-12 03:09:06 UTC
#
#	Name:             TempleOS
#	Unicode version:  15.0
#	Table version:    0.1
#	Table format:     Format A
#	Date:             2022 November 12
#	Authors:          Fredrick Brennan <copypaste@kittens.ph>

0x0	0x0	# UNNAMED
0x1	0x1	# UNNAMED
0x2	0x250C	# BOX DRAWINGS LIGHT DOWN AND RIGHT
0x3	0x2550	# BOX DRAWINGS DOUBLE HORIZONTAL
0x4	0x2502	# BOX DRAWINGS LIGHT VERTICAL
0x5	0x2551	# BOX DRAWINGS DOUBLE VERTICAL
0x6	0x250C	# BOX DRAWINGS LIGHT DOWN AND RIGHT
0x7	0x2554	# BOX DRAWINGS DOUBLE DOWN AND RIGHT
0x8	0x2510	# BOX DRAWINGS LIGHT DOWN AND LEFT
0x9	0x2557	# BOX DRAWINGS DOUBLE DOWN AND LEFT
0xA	0x2514	# BOX DRAWINGS LIGHT UP AND RIGHT
0xB	0x255A	# BOX DRAWINGS DOUBLE UP AND RIGHT
0xC	0x2518	# BOX DRAWINGS LIGHT UP AND LEFT
0xD	0x255D	# BOX DRAWINGS DOUBLE UP AND LEFT
0xE	0xE	# UNNAMED
0xF	0xF	# UNNAMED
0x10	0x10	# UNNAMED
0x11	0x11	# UNNAMED
0x12	0x12	# UNNAMED
0x13	0x13	# UNNAMED
0x14	0x14	# UNNAMED
0x15	0x15	# UNNAMED
0x16	0x16	# UNNAMED
0x17	0x17	# UNNAMED
0x18	0x18	# UNNAMED
0x19	0x19	# UNNAMED
0x1A	0x1A	# UNNAMED
0x1B	0x1B	# UNNAMED
0x1C	0x1C	# UNNAMED
0x1D	0x1D	# UNNAMED
0x1E	0x1E	# UNNAMED
0x1F	0x1F	# UNNAMED
0x20	0x20	# SPACE
0x21	0x21	# EXCLAMATION MARK
0x22	0x22	# QUOTATION MARK
0x23	0x23	# NUMBER SIGN
0x24	0x24	# DOLLAR SIGN
0x25	0x25	# PERCENT SIGN
0x26	0x26	# AMPERSAND
0x27	0x27	# APOSTROPHE
0x28	0x28	# LEFT PARENTHESIS
0x29	0x29	# RIGHT PARENTHESIS
0x2A	0x2A	# ASTERISK
0x2B	0x2B	# PLUS SIGN
0x2C	0x2C	# COMMA
0x2D	0x2D	# HYPHEN-MINUS
0x2E	0x2E	# FULL STOP
0x2F	0x2F	# SOLIDUS
0x30	0x30	# DIGIT ZERO
0x31	0x31	# DIGIT ONE
0x32	0x32	# DIGIT TWO
0x33	0x33	# DIGIT THREE
0x34	0x34	# DIGIT FOUR
0x35	0x35	# DIGIT FIVE
0x36	0x36	# DIGIT SIX
0x37	0x37	# DIGIT SEVEN
0x38	0x38	# DIGIT EIGHT
0x39	0x39	# DIGIT NINE
0x3A	0x3A	# COLON
0x3B	0x3B	# SEMICOLON
0x3C	0x3C	# LESS-THAN SIGN
0x3D	0x3D	# EQUALS SIGN
0x3E	0x3E	# GREATER-THAN SIGN
0x3F	0x3F	# QUESTION MARK
0x40	0x40	# COMMERCIAL AT
0x41	0x41	# LATIN CAPITAL LETTER A
0x42	0x42	# LATIN CAPITAL LETTER B
0x43	0x43	# LATIN CAPITAL LETTER C
0x44	0x44	# LATIN CAPITAL LETTER D
0x45	0x45	# LATIN CAPITAL LETTER E
0x46	0x46	# LATIN CAPITAL LETTER F
0x47	0x47	# LATIN CAPITAL LETTER G
0x48	0x48	# LATIN CAPITAL LETTER H
0x49	0x49	# LATIN CAPITAL LETTER I
0x4A	0x4A	# LATIN CAPITAL LETTER J
0x4B	0x4B	# LATIN CAPITAL LETTER K
0x4C	0x4C	# LATIN CAPITAL LETTER L
0x4D	0x4D	# LATIN CAPITAL LETTER M
0x4E	0x4E	# LATIN CAPITAL LETTER N
0x4F	0x4F	# LATIN CAPITAL LETTER O
0x50	0x50	# LATIN CAPITAL LETTER P
0x51	0x51	# LATIN CAPITAL LETTER Q
0x52	0x52	# LATIN CAPITAL LETTER R
0x53	0x53	# LATIN CAPITAL LETTER S
0x54	0x54	# LATIN CAPITAL LETTER T
0x55	0x55	# LATIN CAPITAL LETTER U
0x56	0x56	# LATIN CAPITAL LETTER V
0x57	0x57	# LATIN CAPITAL LETTER W
0x58	0x58	# LATIN CAPITAL LETTER X
0x59	0x59	# LATIN CAPITAL LETTER Y
0x5A	0x5A	# LATIN CAPITAL LETTER Z
0x5B	0x5B	# LEFT SQUARE BRACKET
0x5C	0x5C	# REVERSE SOLIDUS
0x5D	0x5D	# RIGHT SQUARE BRACKET
0x5E	0x5E	# CIRCUMFLEX ACCENT
0x5F	0x5F	# LOW LINE
0x60	0x60	# GRAVE ACCENT
0x61	0x61	# LATIN SMALL LETTER A
0x62	0x62	# LATIN SMALL LETTER B
0x63	0x63	# LATIN SMALL LETTER C
0x64	0x64	# LATIN SMALL LETTER D
0x65	0x65	# LATIN SMALL LETTER E
0x66	0x66	# LATIN SMALL LETTER F
0x67	0x67	# LATIN SMALL LETTER G
0x68	0x68	# LATIN SMALL LETTER H
0x69	0x69	# LATIN SMALL LETTER I
0x6A	0x6A	# LATIN SMALL LETTER J
0x6B	0x6B	# LATIN SMALL LETTER K
0x6C	0x6C	# LATIN SMALL LETTER L
0x6D	0x6D	# LATIN SMALL LETTER M
0x6E	0x6E	# LATIN SMALL LETTER N
0x6F	0x6F	# LATIN SMALL LETTER O
0x70	0x70	# LATIN SMALL LETTER P
0x71	0x71	# LATIN SMALL LETTER Q
0x72	0x72	# LATIN SMALL LETTER R
0x73	0x73	# LATIN SMALL LETTER S
0x74	0x74	# LATIN SMALL LETTER T
0x75	0x75	# LATIN SMALL LETTER U
0x76	0x76	# LATIN SMALL LETTER V
0x77	0x77	# LATIN SMALL LETTER W
0x78	0x78	# LATIN SMALL LETTER X
0x79	0x79	# LATIN SMALL LETTER Y
0x7A	0x7A	# LATIN SMALL LETTER Z
0x7B	0x7B	# LEFT CURLY BRACKET
0x7C	0x7C	# VERTICAL LINE
0x7D	0x7D	# RIGHT CURLY BRACKET
0x7E	0x7E	# TILDE
0x7F	0x7F	# UNNAMED
0x80	0xC7	# LATIN CAPITAL LETTER C WITH CEDILLA
0x81	0xFC	# LATIN SMALL LETTER U WITH DIAERESIS
0x82	0xE9	# LATIN SMALL LETTER E WITH ACUTE
0x83	0xE2	# LATIN SMALL LETTER A WITH CIRCUMFLEX
0x84	0xE4	# LATIN SMALL LETTER A WITH DIAERESIS
0x85	0xE0	# LATIN SMALL LETTER A WITH GRAVE
0x86	0xE5	# LATIN SMALL LETER A WITH RING ABOVE
0x87	0xE7	# LATIN SMALL LETTER C WITH CEDILLA
0x88	0xEA	# LATIN SMALL LETTER E WITH CIRCUMFLEX
0x89	0xEB	# LATIN SMALL LETTER E WITH DIAERESIS
0x8A	0xE8	# LATIN SMALL LETTER E WITH GRAVE
0x8B	0xEF	# LATIN SMALL LETTER I WITH DIAERESIS
0x8C	0xEE	# LATIN SMALL LETTER I WITH CIRCUMFLEX
0x8D	0xEC	# LATIN SMALL LETTER I WITH GRAVE
0x8E	0xC4	# LATIN CAPITAL LETTER A WITH DIAERESIS
0x8F	0xC5	# LATIN CAPITAL LETTER A WITH RING ABOVE
0x90	0xC9	# LATIN CAPITAL LETTER E WITH ACUTE
0x91	0xE6	# LATIN SMALL LETTER AE
0x92	0xC6	# LATIN CAPITAL LETTER AE
0x93	0xF4	# LATIN SMALL LETTER O WITH CIRCUMFLEX
0x94	0xF6	# LATIN SMALL LETTER O WITH DIAERESIS
0x95	0xF2	# LATIN SMALL LETTER O WITH GRAVE
0x96	0xFB	# LATIN SMALL LETTER U WITH CIRCUMFLEX
0x97	0xF9	# LATIN SMALL LETTER U WITH GRAVE
0x98	0xFF	# LATIN SMALL LETTER Y WITH DIAERESIS
0x99	0xD6	# LATIN CAPITAL LETTER O WITH DIAERESIS
0x9A	0xDC	# LATIN CAPITAL LETTER U WITH DIAERESIS
0x9B	0xA2	# CENT SIGN
0x9C	0xA3	# POUND SIGN
0x9D	0xA5	# YEN SIGN
0x9E	0x20A7	# PESETA SIGN
0x9F	0x192	# LATIN SMALL LETTER F WITH HOOK
0xA0	0xE1	# LATIN SMALL LETTER A WITH ACUTE
0xA1	0xED	# LATIN SMALL LETTER I WITH ACUTE
0xA2	0xF3	# LATIN SMALL LETTER O WITH ACUTE
0xA3	0xFA	# LATIN SMALL LETTER U WITH ACUTE
0xA4	0xF1	# LATIN SMALL LETTER N WITH TILDE
0xA5	0xD1	# LATIN CAPITAL LETTER N WITH TILDE
0xA6	0xAA	# FEMININE ORDINAL INDICATOR
0xA7	0xBA	# MASCULINE ORDINAL INDICATOR
0xA8	0xBF	# INVERTED QUESTION MARK
0xA9	0x2310	# REVERSED NOT SIGN
0xAA	0xAC	# NOT SIGN
0xAB	0xBD	# VULGAR FRACTION ONE HALF
0xAC	0xBC	# VULGAR FRACTION ONE QUARTER
0xAD	0xA1	# INVERTED EXCLAMATION MARK
0xAE	0xAB	# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAF	0xBB	# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xB0	0x2591	# LIGHT SHADE
0xB1	0x2592	# MEDIUM SHADE
0xB2	0x2593	# DARK SHADE
0xB3	0x2502	# BOX DRAWINGS LIGHT VERTICAL
0xB4	0x2524	# BOX DRAWINGS LIGHT VERTICAL AND LEFT
0xB5	0x2561	# BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
0xB6	0x2562	# BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
0xB7	0x2556	# BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
0xB8	0x2555	# BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
0xB9	0x2563	# BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xBA	0x2551	# BOX DRAWINGS DOUBLE VERTICAL
0xBB	0x2557	# BOX DRAWINGS DOUBLE DOWN AND LEFT
0xBC	0x255D	# BOX DRAWINGS DOUBLE UP AND LEFT
0xBD	0x255C	# BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
0xBE	0x255B	# BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
0xBF	0x2510	# BOX DRAWINGS LIGHT DOWN AND LEFT
0xC0	0x2514	# BOX DRAWINGS LIGHT UP AND RIGHT
0xC1	0x2534	# BOX DRAWINGS LIGHT UP AND HORIZONTAL
0xC2	0x252C	# BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0xC3	0x251C	# BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0xC4	0x2500	# BOX DRAWINGS LIGHT HORIZONTAL
0xC5	0x253C	# BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0xC6	0x255E	# BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
0xC7	0x255F	# BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
0xC8	0x255A	# BOX DRAWINGS DOUBLE UP AND RIGHT
0xC9	0x2554	# BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xCA	0x2569	# BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xCB	0x2566	# BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
0xCC	0x2560	# BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xCD	0x2550	# BOX DRAWINGS DOUBLE HORIZONTAL
0xCE	0x256C	# BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
0xCF	0x2567	# BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
0xD0	0x2568	# BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
0xD1	0x2564	# BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
0xD2	0x2565	# BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
0xD3	0x2559	# BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
0xD4	0x2558	# BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
0xD5	0x2552	# BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
0xD6	0x2553	# BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
0xD7	0x256B	# BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
0xD8	0x256A	# BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
0xD9	0x2518	# BOX DRAWINGS LIGHT UP AND LEFT
0xDA	0x250C	# BOX DRAWINGS LIGHT DOWN AND RIGHT
0xDB	0x2588	# FULL BLOCK
0xDC	0x2584	# LOWER HALF BLOCK
0xDD	0x258C	# LEFT HALF BLOCK
0xDE	0x2590	# RIGHT HALF BLOCK
0xDF	0x2580	# UPPER HALF BLOCK
0xE0	0x3B1	# GREEK SMALL LETTER ALPHA
0xE1	0xDF	# LATIN SMALL LETTER SHARP S
0xE2	0x393	# GREEK CAPITAL LETTER GAMMA
0xE3	0x3C0	# GREEK SMALL LETTER PI
0xE4	0x3A3	# GREEK CAPITAL LETTER SIGMA
0xE5	0x3C3	# GREEK SMALL LETTER SIGMA
0xE6	0xB5	# MICRO SIGN
0xE7	0x3C4	# GREEK SMALL LETTER TAU
0xE8	0x3A6	# GREEK CAPITAL LETTER PHI
0xE9	0x398	# GREEK CAPITAL LETTER THETA
0xEA	0x3A9	# GREEK CAPITAL LETTER OMEGA
0xEB	0x3B4	# GREEK SMALL LETTER DELTA
0xEC	0x221E	# INFINITY
0xED	0x3C6	# GREEK SMALL LETTER PHI
0xEE	0x3B5	# GREEK SMALL LETTER EPSILON
0xEF	0x2229	# INTERSECTION
0xF0	0x2261	# IDENTICAL TO
0xF1	0xB1	# PLUS-MINUS SIGN
0xF2	0x2265	# GREATER-THAN OR EQUAL TO
0xF3	0x2264	# LESS-THAN OR EQUAL TO
0xF4	0x2320	# TOP HALF INTEGRAL
0xF5	0x2321	# BOTTOM HALF INTEGRAL
0xF6	0xF7	# DIVISION SIGN
0xF7	0x2248	# ALMOST EQUAL TO
0xF8	0xB0	# DEGREE SIGN
0xF9	0x2219	# BULLET OPERATOR
0xFA	0xB7	# MIDDLE DOT
0xFB	0x221A	# SQUARE ROOT
0xFC	0x207F	# SUPERSCRIPT LATIN SMALL LETTER N
0xFD	0xB2	# SUPERSCRIPT TWO
0xFE	0x25A0	# BLACK SQUARE
0xFF	0xA0	# NO-BREAK SPACE
0x100	0x411	# CYRILLIC CAPITAL LETTER BE
0x101	0x413	# CYRILLIC CAPITAL LETTER GHE
0x102	0x401	# CYRILLIC CAPITAL LETTER IO
0x103	0x416	# CYRILLIC CAPITAL LETTER ZHE
0x104	0x417	# CYRILLIC CAPITAL LETTER ZE
0x105	0x418	# CYRILLIC CAPITAL LETTER I
0x106	0x419	# CYRILLIC CAPITAL LETTER SHORT I
0x107	0x41B	# CYRILLIC CAPITAL LETTER EL
0x108	0x41F	# CYRILLIC CAPITAL LETTER PE
0x109	0x423	# CYRILLIC CAPITAL LETTER U
0x10A	0x424	# CYRILLIC CAPITAL LETTER EF
0x10B	0x427	# CYRILLIC CAPITAL LETTER CHE
0x10C	0x428	# CYRILLIC CAPITAL LETTER SHA
0x10D	0x42A	# CYRILLIC CAPITAL LETTER HARD SIGN
0x10E	0x42B	# CYRILLIC CAPITAL LETTER YERU
0x10F	0x42D	# CYRILLIC CAPITAL LETTER E
0x110	0x42E	# CYRILLIC CAPITAL LETTER YU
0x111	0x42F	# CYRILLIC CAPITAL LETTER YA
0x112	0x431	# CYRILLIC SMALL LETTER BE
0x113	0x432	# CYRILLIC SMALL LETTER VE
0x114	0x433	# CYRILLIC SMALL LETTER GHE
0x115	0x451	# CYRILLIC SMALL LETTER IO
0x116	0x436	# CYRILLIC SMALL LETTER ZHE
0x117	0x437	# CYRILLIC SMALL LETTER ZE
0x118	0x438	# CYRILLIC SMALL LETTER I
0x119	0x439	# CYRILLIC SMALL LETTER SHORT I
0x11A	0x43A	# CYRILLIC SMALL LETTER KA
0x11B	0x43B	# CYRILLIC SMALL LETTER EL
0x11C	0x43C	# CYRILLIC SMALL LETTER EM
0x11D	0x43D	# CYRILLIC SMALL LETTER EN
0x11E	0x43F	# CYRILLIC SMALL LETTER PE
0x11F	0x442	# CYRILLIC SMALL LETTER TE
0x120	0x447	# CYRILLIC SMALL LETTER CHE
0x121	0x448	# CYRILLIC SMALL LETTER SHA
0x122	0x44A	# CYRILLIC SMALL LETTER HARD SIGN
0x123	0x44B	# CYRILLIC SMALL LETTER YERU
0x124	0x44C	# CYRILLIC SMALL LETTER SOFT SIGN
0x125	0x44D	# CYRILLIC SMALL LETTER E
0x126	0x44E	# CYRILLIC SMALL LETTER YU
0x127	0x44F	# CYRILLIC SMALL LETTER YA
0x128	0xAB	# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0x129	0xBB	# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0x12A	0x201C	# LEFT DOUBLE QUOTATION MARK
0x12B	0x201D	# RIGHT DOUBLE QUOTATION MARK
0x12C	0x2116	# NUMERO SIGN
0x12D	0xBF	# INVERTED QUESTION MARK
0x12E	0x192	# LATIN SMALL LETTER F WITH HOOK
0x12F	0xA3	# POUND SIGN
0x130	0x2E	# FULL STOP
0x131	0x1D377	# TALLY MARK ONE
0x132	0x2E1A	# HYPHEN WITH DIAERESIS
0x133	0x203C	# DOUBLE EXCLAMATION MARK
0x134	0x134	# UNNAMED
0x135	0x2E3	# MODIFIER LETTER SMALL X
0x136	0x136	# UNNAMED
0x137	0x2160	# ROMAN NUMERAL ONE
0x138	0x2161	# ROMAN NUMERAL TWO
0x139	0x2191	# UPWARDS ARROW
0x13A	0x2193	# DOWNWARDS ARROW
0x13B	0x21E4	# LEFTWARDS ARROW TO BAR
0x13C	0x21E5	# RIGHTWARDS ARROW TO BAR
0x13D	0x13D	# UNNAMED
0x13E	0x13E	# UNNAMED
0x13F	0x2022	# BULLET
0x140	0x414	# CYRILLIC CAPITAL LETTER DE
0x141	0x426	# CYRILLIC CAPITAL LETTER TSE
0x142	0x429	# CYRILLIC CAPITAL LETTER SHCHA
0x143	0x434	# CYRILLIC SMALL LETTER DE
0x144	0x444	# CYRILLIC SMALL LETTER EF
0x145	0x145	# UNNAMED
0x146	0x449	# CYRILLIC SMALL LETTER SHCHA
0x147	0xB4	# ACUTE ACCENT
0x148	0xA8	# DIAERESIS
0x149	0x2DC	# SMALL TILDE
0x14A	0xE9	# LATIN SMALL LETTER E WITH ACUTE
0x14B	0xE7	# LATIN SMALL LETTER C WITH CEDILLA
0x14C	0x133	# LATIN SMALL LIGATURE IJ
0x14D	0x1F514	# BELL
0x14E	0x25CC	# DOTTED CIRCLE
0x14F	0x25EF	# LARGE CIRCLE
0x150	0xBC	# VULGAR FRACTION ONE QUARTER
0x151	0x2153	# VULGAR FRACTION ONE THIRD
0x152	0xBD	# VULGAR FRACTION ONE HALF
0x153	0xBE	# VULGAR FRACTION THREE QUARTERS
0x154	0x1FA9C	# LADDER
0x155	0x2056	# THREE DOT PUNCTUATION
0x156	0x2380	# INSERTION SYMBOL
0x157	0x157	# UNNAMED
0x158	0x158	# UNNAMED
0x159	0x159	# UNNAMED
0x15A	0x15A	# UNNAMED
0x15B	0x2626	# ORTHODOX CROSS
0x15C	0x21F2	# SOUTH EAST ARROW TO CORNER
0x15D	0xA7	# SECTION SIGN
0x15E	0xB6	# PILCROW SIGN
0x15F	0x200D	# ZERO WIDTH JOINER

@ctrlcctrlv
Copy link
Contributor Author

ctrlcctrlv commented Nov 12, 2022

image
image

@rendello
Copy link
Owner

@ctrlcctrlv I'm not up on the font world, but I don't understand points 2 and 3. Would the font with Terry's order not work with Unicode, and if not, might it be confusing to add for the font normies (such as myself)?

Regarding point 4, I knew that most of them would have Unicode representations, but I couldn't for the life of me figure out what they were. I was planning to go back and fix it up, but never got around to it. I just dumped them at the beginning of one of the PUAs. If you want to formalize their position in the PUA, then feel free, although it's probably will never be an issue for –again– us font normies. ;)

@ctrlcctrlv
Copy link
Contributor Author

ctrlcctrlv commented Nov 13, 2022

@rendello The issue is if you try to view a file made on TempleOS with your font, it will not work if the font is not in Terry order. (And some programs may have their own limitations around the use of certain codepoints, e.g., Terry likes to put blocks at 0x7F, some programs will not render these, nor any of the characters between 0x80 and 0x9F.)

So, the Unicode font should certainly be default, I agree with you: thus that huge encoding table which makes it possible to coerce Terry order to Unicode order.

@ctrlcctrlv
Copy link
Contributor Author

Today I'm going to generate an ICU compatible conversion file. (https://unicode-org.github.io/icu/userguide/conversion/data.html#icu-mapping-table-data-files)

@rendello
Copy link
Owner

@ctrlcctrlv I see, thanks for the explanation

@ctrlcctrlv
Copy link
Contributor Author

Yes, to do it right there need to be three conversion tables:

  1. Terry StdFont → Unicode
  2. Terry Cyrillic → Unicode
  3. TempleOS font merged → Unicode

Those files are enough for tools like iconv to do the reverse conversions, although some data will be inevitably lost because Terry duplicated characters. So e.g. if you convert to Unicode and back you may not get byte-for-byte results.

@ctrlcctrlv
Copy link
Contributor Author

(But the result will still look the same in TempleOS.)

@ctrlcctrlv
Copy link
Contributor Author

By the way, I think that Terry's encoding is the only popular encoding in history which does what's called "LCG unification". This is similar to CJK unification, which is common in encodings and software. Terry did not add a codepoint for e.g. Cyrillic a, instead I guess assuming users would use the Latin one even though it'd be hilariously ugly because the Cyrillic is regular and the Latin is bold. I won't be trying to fix this.

@ctrlcctrlv
Copy link
Contributor Author

Regarding point 4, I knew that most of them would have Unicode representations, but I couldn't for the life of me figure out what they were. I was planning to go back and fix it up, but never got around to it.

It doesn't help that Terry was a boomer and added a glyph for a currency that has not existed since 2002 (peseta, ₧), before he even started work on TempleOS lol :o)

@rendello
Copy link
Owner

The "LCG unification", as you've termed it, was a hilarious thing to figure out when I was first looking at the font. I wonder where the Cyrillic characters are from.

@ctrlcctrlv
Copy link
Contributor Author

Hahaha it's not my term, I read it on a Unicode mailing list years ago when someone was making an argument against some point about CJK unification. I've never seen LCG unification in practice until this day, it's usually an absurdly broken idea you can trot out to make a point in a discussion about character encodings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants