Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
422 lines (372 sloc) 20.2 KB
###############################################################################
# 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-2019 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 <dave@mielke.cc>.
###############################################################################
# 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 ~@ <control>
char \X81 (1 8) # 129 ~A <control>
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 <control>
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 <control>
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
You can’t perform that action at this time.