############################################################################### # BRLTTY - A background process providing access to the console screen (when in # text mode) for a blind person using a refreshable braille display. # # Copyright (C) 1995-2021 by The BRLTTY Developers. # # BRLTTY comes with ABSOLUTELY NO WARRANTY. # # This is free software, placed under the terms of the # GNU Lesser General Public License, as published by the Free Software # Foundation; either version 2.1 of the License, or (at your option) any # later version. Please see the file LICENSE-LGPL for details. # # Web Page: http://brltty.app/ # # This software is maintained by Dave Mielke . ############################################################################### # BRLTTY Text Table - English (North American Braille Computer Code) # This is a description of the default text table used by BRLTTY. # It's based on the North American Braille Computer Code, but defines the full # Latin1 (ISO-8859-1) character set. # The 95 printable characters of the standard 7-bit US-ASCII character set # (32-126) are identical to their representations within the North American # Braille Computer Code (these are the only characters which the NABCC actually # defines). Characters from literary braille, symbols from The Nemeth Braille # Code for Mathematics and Science Notation, and a bit of human imagination # have all been combined to create an easy-to-remember, one-to-one mapping # between each character and its braille counterpart. All possible combinations # involving only the original 6 braille dots are used, but that only allows for # 64 out of the required 95 character representations. The presence or absence # of dot 7 is used to differentiate between pairs of characters which either # are very closely related in meaning or, in a few cases where a more intuitive # reason couldn't be found, have a very close logical relationship within the # US-ASCII code. Dot 8 isn't used at all. # The space and the 26 lowercase letters (a-z) are the same as in literary # braille: #Hex Dots Dec Char Description char \X20 ( ) # 32 space char \X61 (1 ) # 97 a latin small letter a char \X62 (12 ) # 98 b latin small letter b char \X63 (1 4 ) # 99 c latin small letter c char \X64 (1 45 ) # 100 d latin small letter d char \X65 (1 5 ) # 101 e latin small letter e char \X66 (12 4 ) # 102 f latin small letter f char \X67 (12 45 ) # 103 g latin small letter g char \X68 (12 5 ) # 104 h latin small letter h char \X69 ( 2 4 ) # 105 i latin small letter i char \X6A ( 2 45 ) # 106 j latin small letter j char \X6B (1 3 ) # 107 k latin small letter k char \X6C (123 ) # 108 l latin small letter l char \X6D (1 34 ) # 109 m latin small letter m char \X6E (1 345 ) # 110 n latin small letter n char \X6F (1 3 5 ) # 111 o latin small letter o char \X70 (1234 ) # 112 p latin small letter p char \X71 (12345 ) # 113 q latin small letter q char \X72 (123 5 ) # 114 r latin small letter r char \X73 ( 234 ) # 115 s latin small letter s char \X74 ( 2345 ) # 116 t latin small letter t char \X75 (1 3 6 ) # 117 u latin small letter u char \X76 (123 6 ) # 118 v latin small letter v char \X77 ( 2 456 ) # 119 w latin small letter w char \X78 (1 34 6 ) # 120 x latin small letter x char \X79 (1 3456 ) # 121 y latin small letter y char \X7A (1 3 56 ) # 122 z latin small letter z # The 26 uppercase letters (A-Z) are the same as their lowercase counterparts # except that dot 7 is added: #Hex Dots Dec Char Description char \X41 (1 7 ) # 65 A latin capital letter a char \X42 (12 7 ) # 66 B latin capital letter b char \X43 (1 4 7 ) # 67 C latin capital letter c char \X44 (1 45 7 ) # 68 D latin capital letter d char \X45 (1 5 7 ) # 69 E latin capital letter e char \X46 (12 4 7 ) # 70 F latin capital letter f char \X47 (12 45 7 ) # 71 G latin capital letter g char \X48 (12 5 7 ) # 72 H latin capital letter h char \X49 ( 2 4 7 ) # 73 I latin capital letter i char \X4A ( 2 45 7 ) # 74 J latin capital letter j char \X4B (1 3 7 ) # 75 K latin capital letter k char \X4C (123 7 ) # 76 L latin capital letter l char \X4D (1 34 7 ) # 77 M latin capital letter m char \X4E (1 345 7 ) # 78 N latin capital letter n char \X4F (1 3 5 7 ) # 79 O latin capital letter o char \X50 (1234 7 ) # 80 P latin capital letter p char \X51 (12345 7 ) # 81 Q latin capital letter q char \X52 (123 5 7 ) # 82 R latin capital letter r char \X53 ( 234 7 ) # 83 S latin capital letter s char \X54 ( 2345 7 ) # 84 T latin capital letter t char \X55 (1 3 67 ) # 85 U latin capital letter u char \X56 (123 67 ) # 86 V latin capital letter v char \X57 ( 2 4567 ) # 87 W latin capital letter w char \X58 (1 34 67 ) # 88 X latin capital letter x char \X59 (1 34567 ) # 89 Y latin capital letter y char \X5A (1 3 567 ) # 90 Z latin capital letter z # The 10 decimal digits (0-9) are the same as in the Nemeth Code: #Hex Dots Dec Char Description char \X30 ( 3 56 ) # 48 0 digit zero char \X31 ( 2 ) # 49 1 digit one char \X32 ( 23 ) # 50 2 digit two char \X33 ( 2 5 ) # 51 3 digit three char \X34 ( 2 56 ) # 52 4 digit four char \X35 ( 2 6 ) # 53 5 digit five char \X36 ( 23 5 ) # 54 6 digit six char \X37 ( 23 56 ) # 55 7 digit seven char \X38 ( 23 6 ) # 56 8 digit eight char \X39 ( 3 5 ) # 57 9 digit nine # Common symbols used within mathematical expressions by popular computer # programming languages are the same as in the Nemeth Code: #Hex Dots Dec Char Description char \X2E ( 4 6 ) # 46 . full stop char \X2B ( 34 6 ) # 43 + plus sign char \X2D ( 3 6 ) # 45 - hyphen-minus char \X2A (1 6 ) # 42 * asterisk char \X2F ( 34 ) # 47 / solidus char \X28 (123 56 ) # 40 ( left parenthesis char \X29 ( 23456 ) # 41 ) right parenthesis # With all of these major considerations having been taken into account, # convenient representations were still available, and are used, for some of # the remaining characters: #Hex Dots Dec Char Description char \X26 (1234 6 ) # 38 & ampersand char \X23 ( 3456 ) # 35 # number sign # The remaining characters are what they are. Dot 7 isn't used either within # the number block (32-63) or, with the exception of the DEL control character # (127), within the lowercase block (96-127). With the exception of the # underscore (95), dot 7 is used for every character within the uppercase block # (64-95). Adding dot 7 to any character within the lowercase block (96-127) # yields its corresponding character within the uppercase block (64-95) except # that removing dot 7 from the DEL control character yields the underscore. #Hex Dots Dec Char Description char \X2C ( 6 ) # 44 , comma char \X3B ( 56 ) # 59 ; semicolon char \X3A (1 56 ) # 58 : colon char \X21 ( 234 6 ) # 33 ! exclamation mark char \X3F (1 456 ) # 63 ? question mark char \X22 ( 5 ) # 34 " quotation mark char \X27 ( 3 ) # 39 ' apostrophe char \X60 ( 4 ) # 96 ` grave accent char \X5E ( 45 7 ) # 94 ^ circumflex accent char \X7E ( 45 ) # 126 ~ tilde char \X5B ( 2 4 67 ) # 91 [ left square bracket char \X5D (12 4567 ) # 93 ] right square bracket char \X7B ( 2 4 6 ) # 123 { left curly bracket char \X7D (12 456 ) # 125 } right curly bracket char \X3D (123456 ) # 61 = equals sign char \X3C (12 6 ) # 60 < less-than sign char \X3E ( 345 ) # 62 > greater-than sign char \X24 (12 4 6 ) # 36 $ dollar sign char \X25 (1 4 6 ) # 37 % percent sign char \X40 ( 4 7 ) # 64 @ commercial at char \X7C (12 56 ) # 124 | vertical line char \X5C (12 567 ) # 92 \ reverse solidus char \X5F ( 456 ) # 95 _ low line # Each of the characters within the basic control character block (0-31) is the # same as its corresponding character within both the uppercase block (64-95) # and the lowercase block (96-127) except that dots 7 and 8 are both used. #Hex Dots Dec Char Description char \X00 ( 4 78) # 0 ^@ null char \X01 (1 78) # 1 ^A start of heading char \X02 (12 78) # 2 ^B start of text char \X03 (1 4 78) # 3 ^C end of text char \X04 (1 45 78) # 4 ^D end of transmission char \X05 (1 5 78) # 5 ^E enquiry char \X06 (12 4 78) # 6 ^F acknowledge char \X07 (12 45 78) # 7 ^G bell char \X08 (12 5 78) # 8 ^H backspace char \X09 ( 2 4 78) # 9 ^I horizontal tabulation char \X0A ( 2 45 78) # 10 ^J line feed char \X0B (1 3 78) # 11 ^K vertical tabulation char \X0C (123 78) # 12 ^L form feed char \X0D (1 34 78) # 13 ^M carriage return char \X0E (1 345 78) # 14 ^N shift out char \X0F (1 3 5 78) # 15 ^O shift in char \X10 (1234 78) # 16 ^P data link escape char \X11 (12345 78) # 17 ^Q device control one char \X12 (123 5 78) # 18 ^R device control two char \X13 ( 234 78) # 19 ^S device control three char \X14 ( 2345 78) # 20 ^T device control four char \X15 (1 3 678) # 21 ^U negative acknowledge char \X16 (123 678) # 22 ^V synchronous idle char \X17 ( 2 45678) # 23 ^W end of transmission block char \X18 (1 34 678) # 24 ^X cancel char \X19 (1 345678) # 25 ^Y end of medium char \X1A (1 3 5678) # 26 ^Z substitute char \X1B ( 2 4 678) # 27 ^[ escape char \X1C (12 5678) # 28 ^\ file separator char \X1D (12 45678) # 29 ^] group separator char \X1E ( 45 78) # 30 ^^ record separator char \X1F ( 45678) # 31 ^_ unit separator # Each of the characters within the extended control character block (128-159) # is the same as its corresponding character within the basic control character # block (0-31) except that only dot 8 is used. #Hex Dots Dec Char Description char \X80 ( 4 8) # 128 ~@ char \X81 (1 8) # 129 ~A char \X82 (12 8) # 130 ~B break permitted here char \X83 (1 4 8) # 131 ~C no break here char \X84 (1 45 8) # 132 ~D char \X85 (1 5 8) # 133 ~E next line char \X86 (12 4 8) # 134 ~F start of selected area char \X87 (12 45 8) # 135 ~G end of selected area char \X88 (12 5 8) # 136 ~H character tabulation set char \X89 ( 2 4 8) # 137 ~I character tabulation with justification char \X8A ( 2 45 8) # 138 ~J line tabulation set char \X8B (1 3 8) # 139 ~K partial line down char \X8C (123 8) # 140 ~L partial line up char \X8D (1 34 8) # 141 ~M reverse line feed char \X8E (1 345 8) # 142 ~N single shift two char \X8F (1 3 5 8) # 143 ~O single shift three char \X90 (1234 8) # 144 ~P device control string char \X91 (12345 8) # 145 ~Q private use one char \X92 (123 5 8) # 146 ~R private use two char \X93 ( 234 8) # 147 ~S set transmit state char \X94 ( 2345 8) # 148 ~T cancel character char \X95 (1 3 6 8) # 149 ~U message waiting char \X96 (123 6 8) # 150 ~V start of guarded area char \X97 ( 2 456 8) # 151 ~W end of guarded area char \X98 (1 34 6 8) # 152 ~X start of string char \X99 (1 3456 8) # 153 ~Y char \X9A (1 3 56 8) # 154 ~Z single character introducer char \X9B ( 2 4 6 8) # 155 ~[ control sequence introducer char \X9C (12 56 8) # 156 ~\ string terminator char \X9D (12 456 8) # 157 ~] operating system command char \X9E ( 45 8) # 158 ~^ privacy message char \X9F ( 456 8) # 159 ~_ application program command # Representations for the uppercase accented letters are drawn from the # remaining combinations which use both dots 7 and 8. The representation for a # lowercase accented letter is the same as its uppercase counterpart except # that dot 7 isn't used. This scheme retains the use of dot 7 as the modifier # for a capitalized letter. The only exception to these rules is that, due to # the nature of the Latin1 character set, the German lowercase double-s is # treated as though it were an uppercase y-dieresis (neither has an uppercase # definition). These representations have been gathered, as much as possible, # into logical groupings. # The 5 letters with a circumflex accent (^) use the [1-5] dot combinations: #Hex Dots Dec Char Description char \XC2 ( 2 78) # 194 Â latin capital letter a with circumflex char \XCA ( 23 78) # 202 Ê latin capital letter e with circumflex char \XCE ( 2 5 78) # 206 Î latin capital letter i with circumflex char \XD4 ( 2 5678) # 212 Ô latin capital letter o with circumflex char \XDB ( 2 678) # 219 Û latin capital letter u with circumflex char \XE2 ( 2 8) # 226 â latin small letter a with circumflex char \XEA ( 23 8) # 234 ê latin small letter e with circumflex char \XEE ( 2 5 8) # 238 î latin small letter i with circumflex char \XF4 ( 2 56 8) # 244 ô latin small letter o with circumflex char \XFB ( 2 6 8) # 251 û latin small letter u with circumflex # The 5 letters with a grave accent (`) use the [6-0] dot combinations: #Hex Dots Dec Char Description char \XC0 ( 23 5 78) # 192 À latin capital letter a with grave char \XC8 ( 23 5678) # 200 È latin capital letter e with grave char \XCC ( 23 678) # 204 Ì latin capital letter i with grave char \XD2 ( 3 5 78) # 210 Ò latin capital letter o with grave char \XD9 ( 3 5678) # 217 Ù latin capital letter u with grave char \XE0 ( 23 5 8) # 224 à latin small letter a with grave char \XE8 ( 23 56 8) # 232 è latin small letter e with grave char \XEC ( 23 6 8) # 236 ì latin small letter i with grave char \XF2 ( 3 5 8) # 242 ò latin small letter o with grave char \XF9 ( 3 56 8) # 249 ù latin small letter u with grave # The 6 letters with an acute accent (') use the [a-f] dot combinations with # dots 3 and 6 added: #Hex Dots Dec Char Description char \XC1 (1 678) # 193 Á latin capital letter a with acute char \XC9 (12 678) # 201 É latin capital letter e with acute char \XCD (1 4 678) # 205 Í latin capital letter i with acute char \XD3 (1 45678) # 211 Ó latin capital letter o with acute char \XDA (1 5678) # 218 Ú latin capital letter u with acute char \XDD (12 4 678) # 221 Ý latin capital letter y with acute char \XE1 (1 6 8) # 225 á latin small letter a with acute char \XE9 (12 6 8) # 233 é latin small letter e with acute char \XED (1 4 6 8) # 237 í latin small letter i with acute char \XF3 (1 456 8) # 243 ó latin small letter o with acute char \XFA (1 56 8) # 250 ú latin small letter u with acute char \XFD (12 4 6 8) # 253 ý latin small letter y with acute # The 6 letters with a dieresis accent (") use the [f-j] dot combinations with # dots 3 and 6 added, and the number sign (because it fits the sequence # reasonably well): #Hex Dots Dec Char Description char \XC4 (1234 678) # 196 Ä latin capital letter a with diaeresis char \XCB (12345678) # 203 Ë latin capital letter e with diaeresis char \XCF (123 5678) # 207 Ï latin capital letter i with diaeresis char \XD6 ( 234 678) # 214 Ö latin capital letter o with diaeresis char \XDC ( 2345678) # 220 Ü latin capital letter u with diaeresis char \XE4 (1234 6 8) # 228 ä latin small letter a with diaeresis char \XEB (123456 8) # 235 ë latin small letter e with diaeresis char \XEF (123 56 8) # 239 ï latin small letter i with diaeresis char \XF6 ( 234 6 8) # 246 ö latin small letter o with diaeresis char \XFC ( 23456 8) # 252 ü latin small letter u with diaeresis char \XFF ( 3456 8) # 255 ÿ latin small letter y with diaeresis # There is no uppercase y-dieresis in the Latin1 character set. The German # lowercase double-s, which also doesn't have an uppercase counterpart in the # Latin1 character set, uses its representation: #Hex Dots Dec Char Description char \XDF ( 345678) # 223 ß latin small letter sharp s # The remaining accented letters are: #Hex Dots Dec Char Description char \XC3 ( 5 78) # 195 Ã latin capital letter a with tilde char \XD1 ( 4 678) # 209 Ñ latin capital letter n with tilde char \XD5 ( 5678) # 213 Õ latin capital letter o with tilde char \XC5 ( 345 78) # 197 Å latin capital letter a with ring above char \XC7 ( 34 678) # 199 Ç latin capital letter c with cedilla char \XD8 ( 34 78) # 216 Ø latin capital letter o with stroke char \XC6 ( 3 78) # 198 Æ latin capital letter ae char \XD0 ( 678) # 208 Ð latin capital letter eth char \XDE ( 3 678) # 222 Þ latin capital letter thorn char \XE3 ( 5 8) # 227 ã latin small letter a with tilde char \XF1 ( 4 6 8) # 241 ñ latin small letter n with tilde char \XF5 ( 56 8) # 245 õ latin small letter o with tilde char \XE5 ( 345 8) # 229 å latin small letter a with ring above char \XE7 ( 34 6 8) # 231 ç latin small letter c with cedilla char \XF8 ( 34 8) # 248 ø latin small letter o with stroke char \XE6 ( 3 8) # 230 æ latin small letter ae char \XF0 ( 6 8) # 240 ð latin small letter eth char \XFE ( 3 6 8) # 254 þ latin small letter thorn # Some characters are the same as other characters which they resemble but with # dot 7 added: #Hex Dots Dec Char Description char \XAD ( 3 67 ) # 173 ­ soft hyphen char \XAB (12 67 ) # 171 « left-pointing double angle quotation mark char \XBB ( 345 7 ) # 187 » right-pointing double angle quotation mark char \XA6 (1 567 ) # 166 ¦ broken bar char \XB9 ( 2 7 ) # 185 ¹ superscript one char \XB2 ( 23 7 ) # 178 ² superscript two char \XB3 ( 2 5 7 ) # 179 ³ superscript three char \XB1 ( 34 67 ) # 177 ± plus-minus sign char \XD7 (1 67 ) # 215 × multiplication sign char \XF7 ( 34 7 ) # 247 ÷ division sign char \XB7 ( 4 67 ) # 183 · middle dot char \XA1 ( 234 67 ) # 161 ¡ inverted exclamation mark char \XBF (1 4567 ) # 191 ¿ inverted question mark char \XA2 (12 4 67 ) # 162 ¢ cent sign char \XA3 ( 34567 ) # 163 £ pound sign # A few more characters follow this same convention but their relationships # to their base characters is a bit obscure: #Hex Dots Dec Char Description char \XA4 (1 4 67 ) # 164 ¤ currency sign char \XA5 (1234 67 ) # 165 ¥ yen sign # Some characters are represented by the first letters of their names lowered # by one row of dots: #Hex Dots Dec Char Description char \XAC ( 2 567 ) # 172 ¬ not sign char \XB6 ( 23 5 7 ) # 182 ¶ pilcrow sign char \XA9 ( 23 567 ) # 169 © copyright sign char \XAE ( 23 67 ) # 174 ® registered sign char \XA7 ( 3 5 7 ) # 167 § section sign char \XB0 ( 3 567 ) # 176 ° degree sign # The three fraction characters use combinations of dots 1 and 4 (which # progress from left to right as the value of the fraction increases) together # with dots 2,3,5,6,7: #Hex Dots Dec Char Description char \XBC (123 567 ) # 188 ¼ vulgar fraction one quarter char \XBD (1234567 ) # 189 ½ vulgar fraction one half char \XBE ( 234567 ) # 190 ¾ vulgar fraction three quarters # Each of the three extended accent characters is the same as its conventional # compose character but with dot 7 added: #Hex Dots Dec Char Description char \XB4 ( 3 7 ) # 180 ´ acute accent char \XB8 ( 67 ) # 184 ¸ cedilla char \XA8 ( 5 7 ) # 168 ¨ diaeresis # The two gender symbols are: #Hex Dots Dec Char Description char \XBA ( 7 ) # 186 º masculine ordinal indicator char \XAA ( 8) # 170 ª feminine ordinal indicator # The three remaining characters are: #Hex Dots Dec Char Description char \XAF ( 2 67 ) # 175 ¯ macron char \XB5 ( 567 ) # 181 µ micro sign # The nonbreaking space is dots 7 and 8 because this presents a sequence of # nonbreaking spaces as a smooth low line segment. #Hex Dots Dec Char Description char \X7F ( 4567 ) # 127 ^? delete include ltr-alias.tti include num-alias.tti include common.tti