# Conversion Map for X52 Pro MFD character map # # Copyright (C) 2012-2018 Nirenjan Krishnan (nirenjan@nirenjan.org) # # SPDX-License-Identifier: GPL-2.0-only WITH Classpath-exception-2.0 # The X52 Pro MFD uses a single byte character set and encodes multiple # character ranges in that set. This file defines the mapping from Unicode # code points to the vendor character set. This is transformed at compilation # time to a lookup table using UTF-8. All characters must be explicitly # specified to be added to the lookup table. # Lines must be formatted as follows # # or # # Comment lines begin with the # character in the first column # Comments may begin after the character map value, they are ignored as long # as the rest of the line is in a valid format. # Code points which are not found in the list below will translate to # 0xDB which is the entry in the character map for a box (similar to U+25FB) # Note that the library will not attempt to perform any additional matching # steps like iconv does to find a close match in the glyph, so if you need # to add any such "close matches", you will need to explicitly list them # in the list below. # The following chart indicates which glyphs in the character map have been # listed below, it is intended to give at a quick glance what additional # characters need to be mapped. Rows are the lower nibble, columns are the # higher nibble. # NOTE TO MAINTAINERS: Update the chart below when you add new codepoints to # the translation list. # LEGEND # ====== # ? - Needs to be mapped # * - Already mapped # x - There is no mapping for this (0x00-0x07) # +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ # | \ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | # +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ # | 0 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | ? | # | 1 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | ? | # | 2 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | ? | # | 3 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | ? | # | 4 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | ? | # | 5 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | 6 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | 7 | x | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | 8 | ? | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | 9 | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | A | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | B | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | C | * | * | * | * | * | ? | * | * | * | * | * | * | * | * | * | * | # | D | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | E | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # | F | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | * | # +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ # Map starts below # ---------------------------------------------------------------------------- # Printable ASCII Range - These map directly onto their respective code points # except where specified. 0x0020 0x20 0x0021 ! 0x0022 " 0x0023 0x23 # Can't really use the # character as the parser strips it out 0x0024 $ 0x0025 % 0x0026 & 0x0027 ' 0x0028 ( 0x0029 ) 0x002a * 0x002b + 0x002c , 0x002d - 0x002e . 0x002f / 0x0030 0 0x0031 1 0x0032 2 0x0033 3 0x0034 4 0x0035 5 0x0036 6 0x0037 7 0x0038 8 0x0039 9 0x003a : 0x003b ; 0x003c < 0x003d = 0x003e > 0x003f ? 0x0040 @ 0x0041 A 0x0042 B 0x0043 C 0x0044 D 0x0045 E 0x0046 F 0x0047 G 0x0048 H 0x0049 I 0x004a J 0x004b K 0x004c L 0x004d M 0x004e N 0x004f O 0x0050 P 0x0051 Q 0x0052 R 0x0053 S 0x0054 T 0x0055 U 0x0056 V 0x0057 W 0x0058 X 0x0059 Y 0x005a Z 0x005b [ # Backslash (\) does not appear in the character set 0x005d ] 0x005e ^ 0x005f _ 0x0060 ` 0x0061 a 0x0062 b 0x0063 c 0x0064 d 0x0065 e 0x0066 f 0x0067 g 0x0068 h 0x0069 i 0x006a j 0x006b k 0x006c l 0x006d m 0x006e n 0x006f o 0x0070 p 0x0071 q 0x0072 r 0x0073 s 0x0074 t 0x0075 u 0x0076 v 0x0077 w 0x0078 x 0x0079 y 0x007a z 0x007b { 0x007c | 0x007d } # Tilde (~) does not appear in the character set # Miscellaneous Symbols 0x00B7 0x0D # MIDDLE DOT 0x00AE 0x0E # REGISTERD SIGN 0x00A9 0x0F # COPYRIGHT SIGN 0x2122 0x10 # TRADE MARK SIGN 0x2020 0x11 # DAGGER 0x00A7 0x12 # SECTION SIGN 0x00B6 0x13 # PILCROW SIGN 0x2192 0x7E # RIGHTWARDS ARROW 0x2190 0x7F # LEFTWARDS ARROW (also available at 0x08) 0x00A0 0xA0 # NO-BREAK SPACE 0x203E 0xFF # OVERLINE # Mathematical Symbols 0x00BD 0xF5 # VULGAR FRACTION ONE HALF 0x00BC 0xF6 # VULGAR FRACTION ONE QUARTER 0x00D7 0xF7 # MULTIPLICATION SIGN 0x00F7 0xF8 # DIVISION SIGN 0x2264 0xF9 # LESS-THAN OR EQUAL TO 0x2265 0xFA # GREATER-THAN OR EQUAL TO 0x226A 0xFB # MUCH LESS-THAN 0x226B 0xFC # MUCH GREATER-THAN 0x2260 0xFD # NOT EQUAL TO 0x221A 0xFE # SQUARE ROOT # Accented Latin characters 0x00C7 0x80 # LATIN CAPITAL LETTER C WITH CEDILLA 0x00FC 0x81 # LATIN SMALL LETTER U WITH DIAERESIS 0x00E9 0x82 # LATIN SMALL LETTER E WITH ACUTE 0x00E2 0x83 # LATIN SMALL LETTER A WITH CIRCUMFLEX 0x00E4 0x84 # LATIN SMALL LETTER A WITH DIAERESIS 0x00E0 0x85 # LATIN SMALL LETTER A WITH GRAVE 0x0227 0x86 # LATIN SMALL LETTER A WITH DOT ABOVE 0x00E7 0x87 # LATIN SMALL LETTER C WITH CEDILLA 0x00EA 0x88 # LATIN SMALL LETTER E WITH CIRCUMFLEX 0x00EB 0x89 # LATIN SMALL LETTER E WITH DIAERESIS 0x00E8 0x8A # LATIN SMALL LETTER E WITH GRAVE 0x00EF 0x8B # LATIN SMALL LETTER I WITH DIAERESIS 0x00EE 0x8C # LATIN SMALL LETTER I WITH CIRCUMFLEX 0x00EC 0x8D # LATIN SMALL LETTER I WITH GRAVE 0x00C4 0x8E # LATIN CAPITAL LETTER A WITH DIAERESIS 0x00C2 0x8F # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x00C9 0x90 # LATIN CAPITAL LETTER E WITH ACUTE 0x00E6 0x91 # LATIN SMALL LETTER AE 0x00C6 0x92 # LATIN CAPITAL LETTER AE 0x00F4 0x93 # LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00F6 0x94 # LATIN SMALL LETTER O WITH DIAERESIS 0x00F2 0x95 # LATIN SMALL LETTER O WITH GRAVE 0x00FB 0x96 # LATIN SMALL LETTER U WITH CIRCUMFLEX 0x00F9 0x97 # LATIN SMALL LETTER U WITH GRAVE 0x00FF 0x98 # LATIN SMALL LETTER Y WITH DIAERESIS 0x00D6 0x99 # LATIN CAPITAL LETTER O WITH DIAERESIS 0x00DC 0x9A # LATIN CAPITAL LETTER U WITH DIAERESIS 0x00F1 0x9B # LATIN SMALL LETTER N WITH TILDE 0x00D1 0x9C # LATIN CAPITAL LETTER N WITH TILDE 0x00AA 0x9D # FEMININE ORDINAL INDICATOR 0x00BA 0x9E # MASCULINE ORDINAL INDICATOR 0x00BF 0x9F # INVERTED QUESTION MARK 0x00E1 0xE0 # LATIN SMALL LETTER A WITH ACUTE 0x00ED 0xE1 # LATIN SMALL LETTER I WITH ACUTE 0x00F3 0xE2 # LATIN SMALL LETTER O WITH ACUTE 0x00FA 0xE3 # LATIN SMALL LETTER U WITH ACUTE 0x00A2 0xE4 # CENT SIGN 0x00A3 0xE5 # POUND SIGN 0x00A5 0xE6 # YEN SIGN 0x20A7 0xE7 # PESETA SIGN 0x0192 0xE8 # LATIN SMALL LETTER F WITH HOOK 0x00A1 0xE9 # INVERTED EXCLAMATION MARK 0x00C3 0xEA # LATIN CAPITAL LETTER A WITH TILDE 0x00E3 0xEB # LATIN SMALL LETTER A WITH TILDE 0x00D5 0xEC # LATIN CAPITAL LETTER O WITH TILDE 0x00F5 0xED # LATIN SMALL LETTER O WITH TILDE 0x00D8 0xEE # LATIN CAPITAL LETTER O WITH STROKE 0x00F8 0xEF # LATIN SMALL LETTER O WITH STROKE # Greek 0x0393 0x14 # GREEK CAPITAL LETTER GAMMA 0x0394 0x15 # GREEK CAPITAL LETTER DELTA 0x0398 0x16 # GREEK CAPITAL LETTER THETA 0x039B 0x17 # GREEK CAPITAL LETTER LAMDA 0x039E 0x18 # GREEK CAPITAL LETTER XI 0x03A0 0x19 # GREEK CAPITAL LETTER PI 0x03A3 0x1A # GREEK CAPITAL LETTER SIGMA 0x03D2 0x1B # GREEK UPSILON WITH HOOK SYMBOL 0x03A6 0x1C # GREEK CAPITAL LETTER PHI 0x03A8 0x1D # GREEK CAPITAL LETTER PSI 0x03A9 0x1E # GREEK CAPITAL LETTER OMEGA 0x03B1 0x1F # GREEK SMALL LETTER ALPHA # Box Drawing 0x250C 0x09 # BOX DRAWINGS LIGHT DOWN AND RIGHT 0x2510 0x0A # BOX DRAWINGS LIGHT DOWN AND LEFT 0x2514 0x0B # BOX DRAWINGS LIGHT UP AND RIGHT 0x2518 0x0C # BOX DRAWINGS LIGHT UP AND LEFT # Halfwidth CJK punctuation 0xFF61 0xA1 # HALFWIDTH IDEOGRAPHIC FULL STOP 0xFF62 0xA2 # HALFWIDTH LEFT CORNER BRACKET 0xFF63 0xA3 # HALFWIDTH RIGHT CORNER BRACKET 0xFF64 0xA4 # HALFWIDTH IDEOGRAPHIC COMMA # Halfwidth Katakana variants 0xFF65 0xA5 # HALFWIDTH KATAKANA MIDDLE DOT 0xFF66 0xA6 # HALFWIDTH KATAKANA LETTER WO 0xFF67 0xA7 # HALFWIDTH KATAKANA LETTER SMALL A 0xFF68 0xA8 # HALFWIDTH KATAKANA LETTER SMALL I 0xFF69 0xA9 # HALFWIDTH KATAKANA LETTER SMALL U 0xFF6A 0xAA # HALFWIDTH KATAKANA LETTER SMALL E 0xFF6B 0xAB # HALFWIDTH KATAKANA LETTER SMALL O 0xFF6C 0xAC # HALFWIDTH KATAKANA LETTER SMALL YA 0xFF6D 0xAD # HALFWIDTH KATAKANA LETTER SMALL YU 0xFF6E 0xAE # HALFWIDTH KATAKANA LETTER SMALL YO 0xFF6F 0xAF # HALFWIDTH KATAKANA LETTER SMALL TU 0xFF70 0xB0 # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK 0xFF71 0xB1 # HALFWIDTH KATAKANA LETTER A 0xFF72 0xB2 # HALFWIDTH KATAKANA LETTER I 0xFF73 0xB3 # HALFWIDTH KATAKANA LETTER U 0xFF74 0xB4 # HALFWIDTH KATAKANA LETTER E 0xFF75 0xB5 # HALFWIDTH KATAKANA LETTER O 0xFF76 0xB6 # HALFWIDTH KATAKANA LETTER KA 0xFF77 0xB7 # HALFWIDTH KATAKANA LETTER KI 0xFF78 0xB8 # HALFWIDTH KATAKANA LETTER KU 0xFF79 0xB9 # HALFWIDTH KATAKANA LETTER KE 0xFF7A 0xBA # HALFWIDTH KATAKANA LETTER KO 0xFF7B 0xBB # HALFWIDTH KATAKANA LETTER SA 0xFF7C 0xBC # HALFWIDTH KATAKANA LETTER SI 0xFF7D 0xBD # HALFWIDTH KATAKANA LETTER SU 0xFF7E 0xBE # HALFWIDTH KATAKANA LETTER SE 0xFF7F 0xBF # HALFWIDTH KATAKANA LETTER SO 0xFF80 0xC0 # HALFWIDTH KATAKANA LETTER TA 0xFF81 0xC1 # HALFWIDTH KATAKANA LETTER TI 0xFF82 0xC2 # HALFWIDTH KATAKANA LETTER TU 0xFF83 0xC3 # HALFWIDTH KATAKANA LETTER TE 0xFF84 0xC4 # HALFWIDTH KATAKANA LETTER TO 0xFF85 0xC5 # HALFWIDTH KATAKANA LETTER NA 0xFF86 0xC6 # HALFWIDTH KATAKANA LETTER NI 0xFF87 0xC7 # HALFWIDTH KATAKANA LETTER NU 0xFF88 0xC8 # HALFWIDTH KATAKANA LETTER NE 0xFF89 0xC9 # HALFWIDTH KATAKANA LETTER NO 0xFF8A 0xCA # HALFWIDTH KATAKANA LETTER HA 0xFF8B 0xCB # HALFWIDTH KATAKANA LETTER HI 0xFF8C 0xCC # HALFWIDTH KATAKANA LETTER HU 0xFF8D 0xCD # HALFWIDTH KATAKANA LETTER HE 0xFF8E 0xCE # HALFWIDTH KATAKANA LETTER HO 0xFF8F 0xCF # HALFWIDTH KATAKANA LETTER MA 0xFF90 0xD0 # HALFWIDTH KATAKANA LETTER MI 0xFF91 0xD1 # HALFWIDTH KATAKANA LETTER MU 0xFF92 0xD2 # HALFWIDTH KATAKANA LETTER ME 0xFF93 0xD3 # HALFWIDTH KATAKANA LETTER MO 0xFF94 0xD4 # HALFWIDTH KATAKANA LETTER YA 0xFF95 0xD5 # HALFWIDTH KATAKANA LETTER YU 0xFF96 0xD6 # HALFWIDTH KATAKANA LETTER YO 0xFF97 0xD7 # HALFWIDTH KATAKANA LETTER RA 0xFF98 0xD8 # HALFWIDTH KATAKANA LETTER RI 0xFF99 0xD9 # HALFWIDTH KATAKANA LETTER RU 0xFF9A 0xDA # HALFWIDTH KATAKANA LETTER RE 0xFF9B 0xDB # HALFWIDTH KATAKANA LETTER RO 0xFF9C 0xDC # HALFWIDTH KATAKANA LETTER WA 0xFF9D 0xDD # HALFWIDTH KATAKANA LETTER N 0xFF9E 0xDE # HALFWIDTH KATAKANA VOICED SOUND MARK 0xFF9F 0xDF # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK