diff --git a/MacRomanExploration.py b/MacRomanExploration.py new file mode 100644 index 0000000..4726e58 --- /dev/null +++ b/MacRomanExploration.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import unicodedata + +col_widths = [7, 54, 20] +rows = [['MacRom', 'UTF-8 NFC', 'UTF-8 NFD']] +for i in range(256): + rows.append(['[%02X]' % i]) + for form in ('NFC', 'NFD'): + unistr = bytes([i]).decode('mac_roman') + unistr = unicodedata.normalize(form, unistr) + codepoints = [] + for cp in unistr: + utf8hex = cp.encode('utf-8').hex().upper() + name = unicodedata.name(cp, 'U+%04X' % ord(cp)) + codepoints.append(f'[{utf8hex}] {name}') + rows[-1].append(' + '.join(codepoints)) + +for row in rows: + accum = '' + for wid, col in zip(col_widths, row): + accum += (col + ' ').ljust(wid) + accum = accum.rstrip() + print(accum) diff --git a/MacRomanExploration.txt b/MacRomanExploration.txt new file mode 100644 index 0000000..3e0d163 --- /dev/null +++ b/MacRomanExploration.txt @@ -0,0 +1,257 @@ +MacRom UTF-8 NFC UTF-8 NFD +[00] [00] U+0000 [00] U+0000 +[01] [01] U+0001 [01] U+0001 +[02] [02] U+0002 [02] U+0002 +[03] [03] U+0003 [03] U+0003 +[04] [04] U+0004 [04] U+0004 +[05] [05] U+0005 [05] U+0005 +[06] [06] U+0006 [06] U+0006 +[07] [07] U+0007 [07] U+0007 +[08] [08] U+0008 [08] U+0008 +[09] [09] U+0009 [09] U+0009 +[0A] [0A] U+000A [0A] U+000A +[0B] [0B] U+000B [0B] U+000B +[0C] [0C] U+000C [0C] U+000C +[0D] [0D] U+000D [0D] U+000D +[0E] [0E] U+000E [0E] U+000E +[0F] [0F] U+000F [0F] U+000F +[10] [10] U+0010 [10] U+0010 +[11] [11] U+0011 [11] U+0011 +[12] [12] U+0012 [12] U+0012 +[13] [13] U+0013 [13] U+0013 +[14] [14] U+0014 [14] U+0014 +[15] [15] U+0015 [15] U+0015 +[16] [16] U+0016 [16] U+0016 +[17] [17] U+0017 [17] U+0017 +[18] [18] U+0018 [18] U+0018 +[19] [19] U+0019 [19] U+0019 +[1A] [1A] U+001A [1A] U+001A +[1B] [1B] U+001B [1B] U+001B +[1C] [1C] U+001C [1C] U+001C +[1D] [1D] U+001D [1D] U+001D +[1E] [1E] U+001E [1E] U+001E +[1F] [1F] U+001F [1F] U+001F +[20] [20] SPACE [20] SPACE +[21] [21] EXCLAMATION MARK [21] EXCLAMATION MARK +[22] [22] QUOTATION MARK [22] QUOTATION MARK +[23] [23] NUMBER SIGN [23] NUMBER SIGN +[24] [24] DOLLAR SIGN [24] DOLLAR SIGN +[25] [25] PERCENT SIGN [25] PERCENT SIGN +[26] [26] AMPERSAND [26] AMPERSAND +[27] [27] APOSTROPHE [27] APOSTROPHE +[28] [28] LEFT PARENTHESIS [28] LEFT PARENTHESIS +[29] [29] RIGHT PARENTHESIS [29] RIGHT PARENTHESIS +[2A] [2A] ASTERISK [2A] ASTERISK +[2B] [2B] PLUS SIGN [2B] PLUS SIGN +[2C] [2C] COMMA [2C] COMMA +[2D] [2D] HYPHEN-MINUS [2D] HYPHEN-MINUS +[2E] [2E] FULL STOP [2E] FULL STOP +[2F] [2F] SOLIDUS [2F] SOLIDUS +[30] [30] DIGIT ZERO [30] DIGIT ZERO +[31] [31] DIGIT ONE [31] DIGIT ONE +[32] [32] DIGIT TWO [32] DIGIT TWO +[33] [33] DIGIT THREE [33] DIGIT THREE +[34] [34] DIGIT FOUR [34] DIGIT FOUR +[35] [35] DIGIT FIVE [35] DIGIT FIVE +[36] [36] DIGIT SIX [36] DIGIT SIX +[37] [37] DIGIT SEVEN [37] DIGIT SEVEN +[38] [38] DIGIT EIGHT [38] DIGIT EIGHT +[39] [39] DIGIT NINE [39] DIGIT NINE +[3A] [3A] COLON [3A] COLON +[3B] [3B] SEMICOLON [3B] SEMICOLON +[3C] [3C] LESS-THAN SIGN [3C] LESS-THAN SIGN +[3D] [3D] EQUALS SIGN [3D] EQUALS SIGN +[3E] [3E] GREATER-THAN SIGN [3E] GREATER-THAN SIGN +[3F] [3F] QUESTION MARK [3F] QUESTION MARK +[40] [40] COMMERCIAL AT [40] COMMERCIAL AT +[41] [41] LATIN CAPITAL LETTER A [41] LATIN CAPITAL LETTER A +[42] [42] LATIN CAPITAL LETTER B [42] LATIN CAPITAL LETTER B +[43] [43] LATIN CAPITAL LETTER C [43] LATIN CAPITAL LETTER C +[44] [44] LATIN CAPITAL LETTER D [44] LATIN CAPITAL LETTER D +[45] [45] LATIN CAPITAL LETTER E [45] LATIN CAPITAL LETTER E +[46] [46] LATIN CAPITAL LETTER F [46] LATIN CAPITAL LETTER F +[47] [47] LATIN CAPITAL LETTER G [47] LATIN CAPITAL LETTER G +[48] [48] LATIN CAPITAL LETTER H [48] LATIN CAPITAL LETTER H +[49] [49] LATIN CAPITAL LETTER I [49] LATIN CAPITAL LETTER I +[4A] [4A] LATIN CAPITAL LETTER J [4A] LATIN CAPITAL LETTER J +[4B] [4B] LATIN CAPITAL LETTER K [4B] LATIN CAPITAL LETTER K +[4C] [4C] LATIN CAPITAL LETTER L [4C] LATIN CAPITAL LETTER L +[4D] [4D] LATIN CAPITAL LETTER M [4D] LATIN CAPITAL LETTER M +[4E] [4E] LATIN CAPITAL LETTER N [4E] LATIN CAPITAL LETTER N +[4F] [4F] LATIN CAPITAL LETTER O [4F] LATIN CAPITAL LETTER O +[50] [50] LATIN CAPITAL LETTER P [50] LATIN CAPITAL LETTER P +[51] [51] LATIN CAPITAL LETTER Q [51] LATIN CAPITAL LETTER Q +[52] [52] LATIN CAPITAL LETTER R [52] LATIN CAPITAL LETTER R +[53] [53] LATIN CAPITAL LETTER S [53] LATIN CAPITAL LETTER S +[54] [54] LATIN CAPITAL LETTER T [54] LATIN CAPITAL LETTER T +[55] [55] LATIN CAPITAL LETTER U [55] LATIN CAPITAL LETTER U +[56] [56] LATIN CAPITAL LETTER V [56] LATIN CAPITAL LETTER V +[57] [57] LATIN CAPITAL LETTER W [57] LATIN CAPITAL LETTER W +[58] [58] LATIN CAPITAL LETTER X [58] LATIN CAPITAL LETTER X +[59] [59] LATIN CAPITAL LETTER Y [59] LATIN CAPITAL LETTER Y +[5A] [5A] LATIN CAPITAL LETTER Z [5A] LATIN CAPITAL LETTER Z +[5B] [5B] LEFT SQUARE BRACKET [5B] LEFT SQUARE BRACKET +[5C] [5C] REVERSE SOLIDUS [5C] REVERSE SOLIDUS +[5D] [5D] RIGHT SQUARE BRACKET [5D] RIGHT SQUARE BRACKET +[5E] [5E] CIRCUMFLEX ACCENT [5E] CIRCUMFLEX ACCENT +[5F] [5F] LOW LINE [5F] LOW LINE +[60] [60] GRAVE ACCENT [60] GRAVE ACCENT +[61] [61] LATIN SMALL LETTER A [61] LATIN SMALL LETTER A +[62] [62] LATIN SMALL LETTER B [62] LATIN SMALL LETTER B +[63] [63] LATIN SMALL LETTER C [63] LATIN SMALL LETTER C +[64] [64] LATIN SMALL LETTER D [64] LATIN SMALL LETTER D +[65] [65] LATIN SMALL LETTER E [65] LATIN SMALL LETTER E +[66] [66] LATIN SMALL LETTER F [66] LATIN SMALL LETTER F +[67] [67] LATIN SMALL LETTER G [67] LATIN SMALL LETTER G +[68] [68] LATIN SMALL LETTER H [68] LATIN SMALL LETTER H +[69] [69] LATIN SMALL LETTER I [69] LATIN SMALL LETTER I +[6A] [6A] LATIN SMALL LETTER J [6A] LATIN SMALL LETTER J +[6B] [6B] LATIN SMALL LETTER K [6B] LATIN SMALL LETTER K +[6C] [6C] LATIN SMALL LETTER L [6C] LATIN SMALL LETTER L +[6D] [6D] LATIN SMALL LETTER M [6D] LATIN SMALL LETTER M +[6E] [6E] LATIN SMALL LETTER N [6E] LATIN SMALL LETTER N +[6F] [6F] LATIN SMALL LETTER O [6F] LATIN SMALL LETTER O +[70] [70] LATIN SMALL LETTER P [70] LATIN SMALL LETTER P +[71] [71] LATIN SMALL LETTER Q [71] LATIN SMALL LETTER Q +[72] [72] LATIN SMALL LETTER R [72] LATIN SMALL LETTER R +[73] [73] LATIN SMALL LETTER S [73] LATIN SMALL LETTER S +[74] [74] LATIN SMALL LETTER T [74] LATIN SMALL LETTER T +[75] [75] LATIN SMALL LETTER U [75] LATIN SMALL LETTER U +[76] [76] LATIN SMALL LETTER V [76] LATIN SMALL LETTER V +[77] [77] LATIN SMALL LETTER W [77] LATIN SMALL LETTER W +[78] [78] LATIN SMALL LETTER X [78] LATIN SMALL LETTER X +[79] [79] LATIN SMALL LETTER Y [79] LATIN SMALL LETTER Y +[7A] [7A] LATIN SMALL LETTER Z [7A] LATIN SMALL LETTER Z +[7B] [7B] LEFT CURLY BRACKET [7B] LEFT CURLY BRACKET +[7C] [7C] VERTICAL LINE [7C] VERTICAL LINE +[7D] [7D] RIGHT CURLY BRACKET [7D] RIGHT CURLY BRACKET +[7E] [7E] TILDE [7E] TILDE +[7F] [7F] U+007F [7F] U+007F +[80] [C384] LATIN CAPITAL LETTER A WITH DIAERESIS [41] LATIN CAPITAL LETTER A + [CC88] COMBINING DIAERESIS +[81] [C385] LATIN CAPITAL LETTER A WITH RING ABOVE [41] LATIN CAPITAL LETTER A + [CC8A] COMBINING RING ABOVE +[82] [C387] LATIN CAPITAL LETTER C WITH CEDILLA [43] LATIN CAPITAL LETTER C + [CCA7] COMBINING CEDILLA +[83] [C389] LATIN CAPITAL LETTER E WITH ACUTE [45] LATIN CAPITAL LETTER E + [CC81] COMBINING ACUTE ACCENT +[84] [C391] LATIN CAPITAL LETTER N WITH TILDE [4E] LATIN CAPITAL LETTER N + [CC83] COMBINING TILDE +[85] [C396] LATIN CAPITAL LETTER O WITH DIAERESIS [4F] LATIN CAPITAL LETTER O + [CC88] COMBINING DIAERESIS +[86] [C39C] LATIN CAPITAL LETTER U WITH DIAERESIS [55] LATIN CAPITAL LETTER U + [CC88] COMBINING DIAERESIS +[87] [C3A1] LATIN SMALL LETTER A WITH ACUTE [61] LATIN SMALL LETTER A + [CC81] COMBINING ACUTE ACCENT +[88] [C3A0] LATIN SMALL LETTER A WITH GRAVE [61] LATIN SMALL LETTER A + [CC80] COMBINING GRAVE ACCENT +[89] [C3A2] LATIN SMALL LETTER A WITH CIRCUMFLEX [61] LATIN SMALL LETTER A + [CC82] COMBINING CIRCUMFLEX ACCENT +[8A] [C3A4] LATIN SMALL LETTER A WITH DIAERESIS [61] LATIN SMALL LETTER A + [CC88] COMBINING DIAERESIS +[8B] [C3A3] LATIN SMALL LETTER A WITH TILDE [61] LATIN SMALL LETTER A + [CC83] COMBINING TILDE +[8C] [C3A5] LATIN SMALL LETTER A WITH RING ABOVE [61] LATIN SMALL LETTER A + [CC8A] COMBINING RING ABOVE +[8D] [C3A7] LATIN SMALL LETTER C WITH CEDILLA [63] LATIN SMALL LETTER C + [CCA7] COMBINING CEDILLA +[8E] [C3A9] LATIN SMALL LETTER E WITH ACUTE [65] LATIN SMALL LETTER E + [CC81] COMBINING ACUTE ACCENT +[8F] [C3A8] LATIN SMALL LETTER E WITH GRAVE [65] LATIN SMALL LETTER E + [CC80] COMBINING GRAVE ACCENT +[90] [C3AA] LATIN SMALL LETTER E WITH CIRCUMFLEX [65] LATIN SMALL LETTER E + [CC82] COMBINING CIRCUMFLEX ACCENT +[91] [C3AB] LATIN SMALL LETTER E WITH DIAERESIS [65] LATIN SMALL LETTER E + [CC88] COMBINING DIAERESIS +[92] [C3AD] LATIN SMALL LETTER I WITH ACUTE [69] LATIN SMALL LETTER I + [CC81] COMBINING ACUTE ACCENT +[93] [C3AC] LATIN SMALL LETTER I WITH GRAVE [69] LATIN SMALL LETTER I + [CC80] COMBINING GRAVE ACCENT +[94] [C3AE] LATIN SMALL LETTER I WITH CIRCUMFLEX [69] LATIN SMALL LETTER I + [CC82] COMBINING CIRCUMFLEX ACCENT +[95] [C3AF] LATIN SMALL LETTER I WITH DIAERESIS [69] LATIN SMALL LETTER I + [CC88] COMBINING DIAERESIS +[96] [C3B1] LATIN SMALL LETTER N WITH TILDE [6E] LATIN SMALL LETTER N + [CC83] COMBINING TILDE +[97] [C3B3] LATIN SMALL LETTER O WITH ACUTE [6F] LATIN SMALL LETTER O + [CC81] COMBINING ACUTE ACCENT +[98] [C3B2] LATIN SMALL LETTER O WITH GRAVE [6F] LATIN SMALL LETTER O + [CC80] COMBINING GRAVE ACCENT +[99] [C3B4] LATIN SMALL LETTER O WITH CIRCUMFLEX [6F] LATIN SMALL LETTER O + [CC82] COMBINING CIRCUMFLEX ACCENT +[9A] [C3B6] LATIN SMALL LETTER O WITH DIAERESIS [6F] LATIN SMALL LETTER O + [CC88] COMBINING DIAERESIS +[9B] [C3B5] LATIN SMALL LETTER O WITH TILDE [6F] LATIN SMALL LETTER O + [CC83] COMBINING TILDE +[9C] [C3BA] LATIN SMALL LETTER U WITH ACUTE [75] LATIN SMALL LETTER U + [CC81] COMBINING ACUTE ACCENT +[9D] [C3B9] LATIN SMALL LETTER U WITH GRAVE [75] LATIN SMALL LETTER U + [CC80] COMBINING GRAVE ACCENT +[9E] [C3BB] LATIN SMALL LETTER U WITH CIRCUMFLEX [75] LATIN SMALL LETTER U + [CC82] COMBINING CIRCUMFLEX ACCENT +[9F] [C3BC] LATIN SMALL LETTER U WITH DIAERESIS [75] LATIN SMALL LETTER U + [CC88] COMBINING DIAERESIS +[A0] [E280A0] DAGGER [E280A0] DAGGER +[A1] [C2B0] DEGREE SIGN [C2B0] DEGREE SIGN +[A2] [C2A2] CENT SIGN [C2A2] CENT SIGN +[A3] [C2A3] POUND SIGN [C2A3] POUND SIGN +[A4] [C2A7] SECTION SIGN [C2A7] SECTION SIGN +[A5] [E280A2] BULLET [E280A2] BULLET +[A6] [C2B6] PILCROW SIGN [C2B6] PILCROW SIGN +[A7] [C39F] LATIN SMALL LETTER SHARP S [C39F] LATIN SMALL LETTER SHARP S +[A8] [C2AE] REGISTERED SIGN [C2AE] REGISTERED SIGN +[A9] [C2A9] COPYRIGHT SIGN [C2A9] COPYRIGHT SIGN +[AA] [E284A2] TRADE MARK SIGN [E284A2] TRADE MARK SIGN +[AB] [C2B4] ACUTE ACCENT [C2B4] ACUTE ACCENT +[AC] [C2A8] DIAERESIS [C2A8] DIAERESIS +[AD] [E289A0] NOT EQUAL TO [3D] EQUALS SIGN + [CCB8] COMBINING LONG SOLIDUS OVERLAY +[AE] [C386] LATIN CAPITAL LETTER AE [C386] LATIN CAPITAL LETTER AE +[AF] [C398] LATIN CAPITAL LETTER O WITH STROKE [C398] LATIN CAPITAL LETTER O WITH STROKE +[B0] [E2889E] INFINITY [E2889E] INFINITY +[B1] [C2B1] PLUS-MINUS SIGN [C2B1] PLUS-MINUS SIGN +[B2] [E289A4] LESS-THAN OR EQUAL TO [E289A4] LESS-THAN OR EQUAL TO +[B3] [E289A5] GREATER-THAN OR EQUAL TO [E289A5] GREATER-THAN OR EQUAL TO +[B4] [C2A5] YEN SIGN [C2A5] YEN SIGN +[B5] [C2B5] MICRO SIGN [C2B5] MICRO SIGN +[B6] [E28882] PARTIAL DIFFERENTIAL [E28882] PARTIAL DIFFERENTIAL +[B7] [E28891] N-ARY SUMMATION [E28891] N-ARY SUMMATION +[B8] [E2888F] N-ARY PRODUCT [E2888F] N-ARY PRODUCT +[B9] [CF80] GREEK SMALL LETTER PI [CF80] GREEK SMALL LETTER PI +[BA] [E288AB] INTEGRAL [E288AB] INTEGRAL +[BB] [C2AA] FEMININE ORDINAL INDICATOR [C2AA] FEMININE ORDINAL INDICATOR +[BC] [C2BA] MASCULINE ORDINAL INDICATOR [C2BA] MASCULINE ORDINAL INDICATOR +[BD] [CEA9] GREEK CAPITAL LETTER OMEGA [CEA9] GREEK CAPITAL LETTER OMEGA +[BE] [C3A6] LATIN SMALL LETTER AE [C3A6] LATIN SMALL LETTER AE +[BF] [C3B8] LATIN SMALL LETTER O WITH STROKE [C3B8] LATIN SMALL LETTER O WITH STROKE +[C0] [C2BF] INVERTED QUESTION MARK [C2BF] INVERTED QUESTION MARK +[C1] [C2A1] INVERTED EXCLAMATION MARK [C2A1] INVERTED EXCLAMATION MARK +[C2] [C2AC] NOT SIGN [C2AC] NOT SIGN +[C3] [E2889A] SQUARE ROOT [E2889A] SQUARE ROOT +[C4] [C692] LATIN SMALL LETTER F WITH HOOK [C692] LATIN SMALL LETTER F WITH HOOK +[C5] [E28988] ALMOST EQUAL TO [E28988] ALMOST EQUAL TO +[C6] [E28886] INCREMENT [E28886] INCREMENT +[C7] [C2AB] LEFT-POINTING DOUBLE ANGLE QUOTATION MARK [C2AB] LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +[C8] [C2BB] RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK [C2BB] RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +[C9] [E280A6] HORIZONTAL ELLIPSIS [E280A6] HORIZONTAL ELLIPSIS +[CA] [C2A0] NO-BREAK SPACE [C2A0] NO-BREAK SPACE +[CB] [C380] LATIN CAPITAL LETTER A WITH GRAVE [41] LATIN CAPITAL LETTER A + [CC80] COMBINING GRAVE ACCENT +[CC] [C383] LATIN CAPITAL LETTER A WITH TILDE [41] LATIN CAPITAL LETTER A + [CC83] COMBINING TILDE +[CD] [C395] LATIN CAPITAL LETTER O WITH TILDE [4F] LATIN CAPITAL LETTER O + [CC83] COMBINING TILDE +[CE] [C592] LATIN CAPITAL LIGATURE OE [C592] LATIN CAPITAL LIGATURE OE +[CF] [C593] LATIN SMALL LIGATURE OE [C593] LATIN SMALL LIGATURE OE +[D0] [E28093] EN DASH [E28093] EN DASH +[D1] [E28094] EM DASH [E28094] EM DASH +[D2] [E2809C] LEFT DOUBLE QUOTATION MARK [E2809C] LEFT DOUBLE QUOTATION MARK +[D3] [E2809D] RIGHT DOUBLE QUOTATION MARK [E2809D] RIGHT DOUBLE QUOTATION MARK +[D4] [E28098] LEFT SINGLE QUOTATION MARK [E28098] LEFT SINGLE QUOTATION MARK +[D5] [E28099] RIGHT SINGLE QUOTATION MARK [E28099] RIGHT SINGLE QUOTATION MARK +[D6] [C3B7] DIVISION SIGN [C3B7] DIVISION SIGN +[D7] [E2978A] LOZENGE [E2978A] LOZENGE +[D8] [C3BF] LATIN SMALL LETTER Y WITH DIAERESIS [79] LATIN SMALL LETTER Y + [CC88] COMBINING DIAERESIS +[D9] [C5B8] LATIN CAPITAL LETTER Y WITH DIAERESIS [59] LATIN CAPITAL LETTER Y + [CC88] COMBINING DIAERESIS +[DA] [E28184] FRACTION SLASH [E28184] FRACTION SLASH +[DB] [E282AC] EURO SIGN [E282AC] EURO SIGN +[DC] [E280B9] SINGLE LEFT-POINTING ANGLE QUOTATION MARK [E280B9] SINGLE LEFT-POINTING ANGLE QUOTATION MARK +[DD] [E280BA] SINGLE RIGHT-POINTING ANGLE QUOTATION MARK [E280BA] SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +[DE] [EFAC81] LATIN SMALL LIGATURE FI [EFAC81] LATIN SMALL LIGATURE FI +[DF] [EFAC82] LATIN SMALL LIGATURE FL [EFAC82] LATIN SMALL LIGATURE FL +[E0] [E280A1] DOUBLE DAGGER [E280A1] DOUBLE DAGGER +[E1] [C2B7] MIDDLE DOT [C2B7] MIDDLE DOT +[E2] [E2809A] SINGLE LOW-9 QUOTATION MARK [E2809A] SINGLE LOW-9 QUOTATION MARK +[E3] [E2809E] DOUBLE LOW-9 QUOTATION MARK [E2809E] DOUBLE LOW-9 QUOTATION MARK +[E4] [E280B0] PER MILLE SIGN [E280B0] PER MILLE SIGN +[E5] [C382] LATIN CAPITAL LETTER A WITH CIRCUMFLEX [41] LATIN CAPITAL LETTER A + [CC82] COMBINING CIRCUMFLEX ACCENT +[E6] [C38A] LATIN CAPITAL LETTER E WITH CIRCUMFLEX [45] LATIN CAPITAL LETTER E + [CC82] COMBINING CIRCUMFLEX ACCENT +[E7] [C381] LATIN CAPITAL LETTER A WITH ACUTE [41] LATIN CAPITAL LETTER A + [CC81] COMBINING ACUTE ACCENT +[E8] [C38B] LATIN CAPITAL LETTER E WITH DIAERESIS [45] LATIN CAPITAL LETTER E + [CC88] COMBINING DIAERESIS +[E9] [C388] LATIN CAPITAL LETTER E WITH GRAVE [45] LATIN CAPITAL LETTER E + [CC80] COMBINING GRAVE ACCENT +[EA] [C38D] LATIN CAPITAL LETTER I WITH ACUTE [49] LATIN CAPITAL LETTER I + [CC81] COMBINING ACUTE ACCENT +[EB] [C38E] LATIN CAPITAL LETTER I WITH CIRCUMFLEX [49] LATIN CAPITAL LETTER I + [CC82] COMBINING CIRCUMFLEX ACCENT +[EC] [C38F] LATIN CAPITAL LETTER I WITH DIAERESIS [49] LATIN CAPITAL LETTER I + [CC88] COMBINING DIAERESIS +[ED] [C38C] LATIN CAPITAL LETTER I WITH GRAVE [49] LATIN CAPITAL LETTER I + [CC80] COMBINING GRAVE ACCENT +[EE] [C393] LATIN CAPITAL LETTER O WITH ACUTE [4F] LATIN CAPITAL LETTER O + [CC81] COMBINING ACUTE ACCENT +[EF] [C394] LATIN CAPITAL LETTER O WITH CIRCUMFLEX [4F] LATIN CAPITAL LETTER O + [CC82] COMBINING CIRCUMFLEX ACCENT +[F0] [EFA3BF] U+F8FF [EFA3BF] U+F8FF +[F1] [C392] LATIN CAPITAL LETTER O WITH GRAVE [4F] LATIN CAPITAL LETTER O + [CC80] COMBINING GRAVE ACCENT +[F2] [C39A] LATIN CAPITAL LETTER U WITH ACUTE [55] LATIN CAPITAL LETTER U + [CC81] COMBINING ACUTE ACCENT +[F3] [C39B] LATIN CAPITAL LETTER U WITH CIRCUMFLEX [55] LATIN CAPITAL LETTER U + [CC82] COMBINING CIRCUMFLEX ACCENT +[F4] [C399] LATIN CAPITAL LETTER U WITH GRAVE [55] LATIN CAPITAL LETTER U + [CC80] COMBINING GRAVE ACCENT +[F5] [C4B1] LATIN SMALL LETTER DOTLESS I [C4B1] LATIN SMALL LETTER DOTLESS I +[F6] [CB86] MODIFIER LETTER CIRCUMFLEX ACCENT [CB86] MODIFIER LETTER CIRCUMFLEX ACCENT +[F7] [CB9C] SMALL TILDE [CB9C] SMALL TILDE +[F8] [C2AF] MACRON [C2AF] MACRON +[F9] [CB98] BREVE [CB98] BREVE +[FA] [CB99] DOT ABOVE [CB99] DOT ABOVE +[FB] [CB9A] RING ABOVE [CB9A] RING ABOVE +[FC] [C2B8] CEDILLA [C2B8] CEDILLA +[FD] [CB9D] DOUBLE ACUTE ACCENT [CB9D] DOUBLE ACUTE ACCENT +[FE] [CB9B] OGONEK [CB9B] OGONEK +[FF] [CB87] CARON [CB87] CARON diff --git a/UnusedCharsInSource.py b/UnusedCharsInSource.py new file mode 100755 index 0000000..876a99a --- /dev/null +++ b/UnusedCharsInSource.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import os +from os import path + +textfiles = [] +for base, dirlist, filelist in os.walk('/Users/elliotnunn/Documents/mac/supermario/base/SuperMarioProj.1994-02-09'): + dirlist = [d for d in dirlist if not d.startswith('.')] + filelist = [f for f in filelist if not f.startswith('.')] + + for f in filelist: + try: + if open(path.join(base, f) + '.idump', 'rb').read(4) == b'TEXT': + textfiles.append(path.join(base, f)) + except: + pass + +bigstring = b'' +for tf in textfiles: + bigstring += open(tf).read().encode('mac_roman') + +for i in range(256): + if i not in bigstring: + print(f'{i:02x} {repr(bytes([i]).decode("mac_roman"))}')