# This file is obsolete. Do not use!

# liblouis: text.nabcc.dis
#
# Based on the braille contraction modules in BRLTTY
#
# Copyright (C) 1995-2004 by The BRLTTY Team
# Copyright (C) 2004 ViewPlus Technologies, Inc., www.viewplustech.com
# Copyright (C) 2004 Computers to Help People, Inc., www.chpi.org

# This file is free software; you can redistribute it and/or
# modify it 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.

# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with this file; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
# liblouis  comes with ABSOLUTELY NO WARRANTY.

# Maintained by John J. Boyer, director@chpi.org, www.chpi.org

# This is a description of the default text translation 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
display \X0020 0			#32  space
display \X0061 1			#97  a  Latin small letter a
display \X0062 12			#98  b Latin small letter b
display \X0063 14			#99  c Latin small letter c
display \X0064 145		#100 d Latin small letter d
display \X0065 15			#101 e Latin small letter e
display \X0066 124		#102 f Latin small letter f
display \X0067 1245		#103 g Latin small letter g
display \X0068 125		#104 h Latin small letter h
display \X0069  24		#105 i Latin small letter i
display \X006A  245		#106 j Latin small letter j
display \X006B 13			#107 k Latin small letter k
display \X006C 123		#108 l Latin small letter l
display \X006D 134		#109 m Latin small letter m
display \X006E 1345		#110 n Latin small letter n
display \X006F 135		#111 o Latin small letter o
display \X0070 1234		#112 p Latin small letter p
display \X0071 12345	#113 q Latin small letter q
display \X0072 1235		#114 r Latin small letter r
display \X0073 234		#115 s Latin small letter s
display \X0074  2345	#116 t Latin small letter t
display \X0075 136		#117 u Latin small letter u
display \X0076 1236		#118 v Latin small letter v
display \X0077  2456	#119 w Latin small letter w
display \X0078 1346		#120 x Latin small letter x
display \X0079 13456	#121 y Latin small letter y
display \X007A 1356		#122 z Latin small letter z

# The 26 uppercase letters A-Z) are the same as their lowercase counterparts 
# except that dot7 is added:

        #Hex   Dots		Dec	Char Description
display \X0041 1			#65	A Latin capital letter a
display \X0042 12			#66	B Latin capital letter b
display \X0043 14			#67	C Latin capital letter c
display \X0044 145		#68	D Latin capital letter d
display \X0045 15			#69	E Latin capital letter e
display \X0046 124		#70	F Latin capital letter f
display \X0047 1245		#71	G Latin capital letter g
display \X0048 125		#72	H Latin capital letter h
display \X0049 24			#73	I Latin capital letter i
display \X004A 245		#74	J Latin capital letter j
display \X004B 13			#75	K Latin capital letter k
display \X004C 123		#76	L Latin capital letter l
display \X004D 134		#77	M Latin capital letter m
display \X004E 1345		#78	N Latin capital letter n
display \X004F 135		#79	O Latin capital letter o
display \X0050 1234		#80	P Latin capital letter p
display \X0051 12345	#81	Q Latin capital letter q
display \X0052 1235		#82	R Latin capital letter r
display \X0053 234		#83	S Latin capital letter s
display \X0054 2345		#84	T Latin capital letter t
display \X0055 136		#85	U Latin capital letter u
display \X0056 1236		#86	V Latin capital letter v
display \X0057 2456		#87	W Latin capital letter w
display \X0058 1346		#88	X Latin capital letter x
display \X0059 13456  #89	Y Latin capital letter y
display \X005A 1356		#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
display \X0030 356 #480digit zero
display \X0031 2 #491digit one
display \X0032 23 #502digit two
display \X0033 25 #513digit three
display \X0034  256 #524digit four
display \X0035  26 #535digit five
display \X0036  235 #546digit six
display \X0037  2356 #557digit seven
display \X0038  236 #568digit eight
display \X0039 35 #579digit 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
display \X002E 46 #46.full stop
display \X002B 346 #43+plus sign
display \X002D 36 #45-hyphen-minus
display \X002A 16 #42*asterisk
display \X002F 34  #47/solidus
display \X0028 12356 #40left parenthesis
display \X0029  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
display \X0026 12346	#38 &		 ampersand
display \X0023   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 dot7 to any character within the lowercase block 96-127)
# yields its corresponding character within the uppercase block 64-95) except
# that removing dot7 from the DEL control character yields the underscore.

				#Hex			Dots Dec	Char	Description
display \X002C      6		#44 ,			comma
display \X003B     56		#59 ;			semicolon
display \X003A	156			#58 :			colon
display \X0021   2346		#33 !			exclamation mark
display \X003F  1456		#63 ?			question mark
display \X0022    5			#34 "			quotation mark
display \X0027  3				#39 '			apostrophe
display \X0060   4			#96 `			grave accent
display \X005E   457		#94 ^			circumflex accent
display \X007E   45     #126 ~    tilde

display \X005B  246			#91  [	left square bracket
display \X005D 12456		#93  ]	right square bracket
display \X007B  256			#123 {	left curly bracket
display \X007D 12456		#125 }	right curly bracket
display \X003D 123456		#61  =	equals sign
display \X003C 126			#60  <	less-than sign
display \X003E 345			#62  >	greater-than sign
display \X0024 1246			#36  $	dollar sign
display \X0025 146			#37  %	percent sign
display \X0040 47				#64  @	commercial at
display \X007C 1256 # 124|vertical line
display \X005C 12567  #92\reverse solidus
display \X005F 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 block64-95)
# and the lowercase block 96-127) except that dots7 and8 are both used.

#Hex Dots Dec Char Description
display \X0000 478 #0^@null
display \X0001 178 #1^Astart of heading
display \X0002 1278 #2^Bstart of text
display \X0003 1478 #3^Cend of text
display \X0004 14578 #4^Dend of transmission
display \X0005 1578 #5^Eenquiry
display \X0006 12478 #6^Facknowledge
display \X0007 124578 #7^Gbell
display \X0008 12578 #8^Hbackspace
display \X0009  2478 #9^Ihorizontal tabulation
display \X000A  24578 #10^Jline feed
display \X000B 1378 #11^Kvertical tabulation
display \X000C 12378 #12^Lform feed
display \X000D 13478 #13^Mcarriage return
display \X000E 134578 #14^Nshift out
display \X000F 13578 #15^Oshift in
display \X0010 123478 #16^Pdata link escape
display \X0011 1234578 #17^Qdevice control one
display \X0012 123578 #18^Rdevice control two
display \X0013 23478 #19^Sdevice control three
display \X0014  234578 #20^Tdevice control four
display \X0015 13678 #21^Unegative acknowledge
display \X0016 123678 #22^Vsynchronous idle
display \X0017  245678 #23^Wend of transmission block
display \X0018 134678 #24^Xcancel
display \X0019 1345678 #25^Yend of medium
display \X001A 135678 #26^Zsubstitute
display \X001B  24678 #27^[escape
display \X001C 125678 #28^\file separator
display \X001D 1245678 #29^]group separator
display \X001E 4578 #30^^record separator
display \X001F 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 dot8 is used.

#Hex Dots Dec Char Description
display \X0080 48 # 128~@<control>
display \X0081 18 # 129~A<control>
display \X0082 128 # 130~Bbreak permitted here
display \X0083 148 # 131~Cno break here
display \X0084 1458 # 132~D<control>
display \X0085 158 # 133~Enext line
display \X0086 1248 # 134~Fstart of selected area
display \X0087 12458 # 135~Gend of selected area
display \X0088 1258 # 136~Hcharacter tabulation set
display \X0089  248 # 137~Icharacter tabulation with justification
display \X008A  2458 # 138~Jline tabulation set
display \X008B 138 # 139~Kpartial line down
display \X008C 1238 # 140~Lpartial line up
display \X008D 1348 # 141~Mreverse line feed
display \X008E 13458 # 142~Nsingle shift two
display \X008F 1358 # 143~Osingle shift three
display \X0090 12348 # 144~Pdevice control string
display \X0091 123458 # 145~Qprivate use one
display \X0092 12358 # 146~Rprivate use two
display \X0093 2348 # 147~Sset transmit state
display \X0094  23458 # 148~Tcancel character
display \X0095 1368 # 149~Umessage waiting
display \X0096 12368 # 150~Vstart of guarded area
display \X0097  24568 # 151~Wend of guarded area
display \X0098 13468 # 152~Xstart of string
display \X0099 134568 # 153~Y<control>
display \X009A 13568 # 154~Zsingle character introducer
display \X009B  2468 # 155~[control sequence introducer
display \X009C 12568 # 156~\string terminator
display \X009D 124568 # 157~]operating system command
display \X009E 458 # 158~^privacy message


# 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  Latin 1 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
display \X009F 4568 # 159				~_application program command
display \X00A0 0				#160			no-break space
display \X00A1 23467  #161 ¡		inverted exclamation mark
display \X00A2 4	   #162 ¢		cent sign
display \X00A3 34567  # 163£pound sign
display \X00A4 1467  # 164¤currency sign
display \X00A5 123467  # 165¥yen sign
display \X00A6 1567  # 166¦broken bar
display \X00A7 357  # 167§section sign
display \X00A8  57  # 168¨diaeresis
display \X00A9  23567  # 169©copyright sign
display \X00AA 8 # 170ªfeminine ordinal indicator
display \X00AB 1267  # 171«left-pointing double angle quotation mark
display \X00AC  2567  # 172¬not sign
display \X00AD 367  # 173­soft hyphen
display \X00AE  2367  # 174®registered sign
display \X00AF  267  # 175¯macron
display \X00B0 3567  # 176°degree sign

display \X00C0  23578		# 192		À		Latin capital letter a with grave
display \X00C1	1678		# 193		Á		Latin capital letter a with acute
display \X00C2	16			# 194		Â		Latin capital letter a with circumflex
display \X00C3	578 # 195Ã Latin capital letter a with tilde
display \X00C4	1234678 # 196Ä Latin capital letter a with diaeresis
display \X00C5	34578 # 197Å Latin capital letter a with ring above
display \X00C6	378 # 198Æ Latin capital letter ae
display \X00C7	34678 # 199Ç Latin capital letter c with cedilla
display \X00C8  23567		#	200		È		Latin capital letter e with grave
display \X00C9	12678		# 201É Latin capital letter e with acute
display \X00CA  2378	# 202		Ê		Latin capital letter e with circumflex
display \X00CB 12345678 # 203Ë Latin capital letter e with diaeresis
display \X00CC  23678 # 204Ì Latin capital letter i with grave
display \X00CD 14678 # 205Í Latin capital letter i with acute
display \X00CE  2578	# 206		Î		Latin capital letter i with circumflex
display \X00CF 1235678 # 207Ï Latin capital letter i with diaeresis
display \X00D0 678 # 208Ð Latin capital letter eth
display \X00D1 4678 # 209Ñ Latin capital letter n with tilde
display \X00D2 3578 # 210Ò Latin capital letter o with grave
display \X00D3 145678 # 211Ó Latin capital letter o with acute
display \X00D4  25678 # 212		Ô		Latin capital letter o with circumflex
display \X00D5  5678 # 213Õ Latin capital letter o with tilde
display \X00D6  234678 # 214Ö Latin capital letter o with diaeresis
display \X00D7 167  # 215×multiplication sign
display \X00D8 3478 # 216Ø Latin capital letter o with stroke
display \X00D9 35678 # 217Ù Latin capital letter u with grave
display \X00DA 15678 # 218Ú Latin capital letter u with acute
display \X00DB  2678	# 219		Û		Latin capital letter u with circumflex
display \X00DC  2345678 # 220Ü Latin capital letter u with diaeresis
display \X00DD 124678 # 221Ý Latin capital letter y with acute
display \X00DE 3678 # 222Þ Latin capital letter thorn
display \X00DF 345678 # 223ß Latin small letter sharp s
display \X00E0  2358 # 224à Latin small letter a with grave
display \X00E1 168 # 225á Latin small letter a with acute
display \X00E2	16		# 226		â		Latin small letter a with circumflex
display \X00E3 58 # 227ã Latin small letter a with tilde
display \X00E4 123468 # 228ä Latin small letter a with diaeresis
display \X00E5 3458 # 229å Latin small letter a with ring above
display \X00E6 38 # 230æ Latin small letter ae
display \X00E7 3468 # 231ç Latin small letter c with cedilla
display \X00E8  23568 # 232è Latin small letter e with grave
display \X00E9 1268 # 233é Latin small letter e with acute
display \X00EA  238		# 234		ê		Latin small letter e with circumflex
display \X00EB 1234568 # 235ë Latin small letter e with diaeresis
display \X00EC  2368 # 236ì Latin small letter i with grave
display \X00ED 1468 # 237í Latin small letter i with acute
display \X00EE  258		# 238		î		Latin small letter i with circumflex
display \X00EF 123568 # 239ï Latin small letter i with diaeresis
display \X00F0 68 # 240ð Latin small letter eth
display \X00F1 468 # 241ñ Latin small letter n with tilde
display \X00F2 358 # 242ò Latin small letter o with grave
display \X00F3 14568 # 243ó Latin small letter o with acute
display \X00F4  2568	# 244		ô		Latin small letter o with circumflex
display \X00F5  568 # 245õ Latin small letter o with tilde
display \X00F6  23468 # 246ö Latin small letter o with diaeresis
display \X00F7 347  # 247÷division sign
display \X00F8 348 # 248ø Latin small letter o with stroke
display \X00F9 3568 # 249ù Latin small letter u with grave
display \X00FA 1568 # 250ú Latin small letter u with acute
display \X00FB  268		# 251		û		Latin small letter u with circumflex
display \X00FC  234568 # 252ü Latin small letter u with diaeresis
display \X00FD 12468 # 253ý Latin small letter y with acute
display \X00FE 368 # 254þ Latin small letter thorn
display \X00FF 34568 # 255ÿ Latin small letter y with diaeresis


# Some characters are the same as other characters which they resemble but with
# dot 7 added:

#Hex Dots Dec Char Description


display \X00BB 3457  # 187»right-pointing double angle quotation mark
display \X00B9  27  # 185¹superscript one
display \X00B2 237  # 178²superscript two
display \X00B3 257  # 179³superscript three
display \X00B1 3467  # 177±plus-minus sign
display \X00D7 167  # 215×multiplication sign

display \X00B7 467  # 183·middle dot

display \X00BF 14567  # 191¿inverted question mark



# A few more characters follow this same convention but they're relationships
# to their base characters is a bit obscure:

#Hex Dots Dec Char Description



# Some characters are represented by the first letters of their names lowered
# by one row of dots:

#Hex Dots Dec Char Description

display \X00B6  2357  # 182¶pilcrow 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
display \X00BC 123567  # 188¼vulgar fraction one quarter
display \X00BD 1234567  # 189½vulgar fraction one half
display \X00BE  234567  # 190¾vulgar fraction three quarters

# Each of the three extended accent characters is the same as its conventional
# compose character but with dot7 added:

#Hex Dots Dec Char Description
display \X00B4 37  # 180´acute accent
display \X00B8 67  # 184¸cedilla


# The two gender symbols are:

#Hex Dots Dec Char Description
display \X00BA 7  # 186ºmasculine ordinal indicator


# The three remaining characters are:

#Hex Dots Dec Char Description

display \X00B5  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
display \X007F 4567  # 127^?delete
