# Russian Braille Table for TSS
#
#  Copyright (C) 2007-2008 ViewPlus Technologies, Inc. www.viewplus.com
#
#  This file is part of liblouis.
#
#  liblouis 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.
#
#  liblouis 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 liblouis. If not, see
#  <http://www.gnu.org/licenses/>.

# by Mike Sivill <mike.sivill@viewplus.com>

#include text_nabcc.dis All display opcodes
include ru-ru.dis All display opcodes	#replace text_nabcc.dis Yuemei Sun 03/12/08


# ----------- define all chars --------------------------------------

space \t 0
space \x000A 0
space \x000D 0
space \s 0 blank	
replace \x0007
punctuation ! 2346				# 33
punctuation " 5						# 34
sign # 3456								# 35
sign $ 1246								# 36
sign % 146		# 37
sign & 12346							# 38
punctuation ' 3						# 39 apostrophe
punctuation ( 12356				# 40
punctuation ) 23456				# 41
sign * 16									# 42
math + 346								# 43
punctuation , 6						# 44
punctuation - 36					# 45
punctuation . 46					# 46
math / 34									# 47
punctuation \x00AB 236
punctuation \x00BB 356
include loweredDigits6Dots.uti
punctuation : 156					# 58
punctuation ; 56					# 59
math < 126								# 60
math = 123456							# 61
math > 345								# 62
punctuation ? 1456				# 63
sign @ 47									# 64


# The Alphabet
uplow \x0410\x0430 1
uplow \x0411\x0431 12
uplow \x0412\x0432 2456
uplow \x0413\x0433 1245
uplow \x0414\x0434 145
uplow \x0415\x0435 15
uplow \x0416\x0436 245
uplow \x0417\x0437 1356
uplow \x0418\x0438 24
uplow \x0419\x0439 12346
uplow \x041A\x043A 13
uplow \x041B\x043B 123
uplow \x041C\x043C 134
uplow \x041D\x043D 1345
uplow \x041E\x043E 135
uplow \x041F\x043F 1234
uplow \x0420\x0440 1235
uplow \x0421\x0441 234
uplow \x0422\x0442 2345
uplow \x0423\x0443 136
uplow \x0424\x0444 124
uplow \x0425\x0445 125
uplow \x0426\x0446 14
uplow \x0427\x0447 12345
uplow \x0428\x0448 156
uplow \x0429\x0449 1346
uplow \x042A\x044A 12356
uplow \x042B\x044B 2346
uplow \x042C\x044C 23456
uplow \x042D\x044D 246
uplow \x042E\x044E 1256
uplow \x042F\x044F 1246 
uplow \x0401\x0451 16 

punctuation [ 2467				# 91
sign \\ 12567							# 92
punctuation ] 124567			# 93
sign ^ 457								# 94 circumflex accent
sign _ 456								# 95 underscore
sign ` 4									# 96 grave accent
# a - z										# 97 - 122
punctuation { 246					# 123
sign | 1256								# 124
punctuation } 12456				# 125
math ~ 45									# 126

space \X00A0 0						# 160 no-break space
sign \x00A2 4-14					# 162 ¢ cents sign
sign \x00A3 4-123					# 163 £ pounds sign

sign \x00A5 4-13456				#	165 ¥ yen sign

sign § 4-234-3						# 167 section sign \x00A7

sign \x00A9 2356-6-14-2356 # 169	© copyright sign
sign \x00AE 2356-6-1235-2356	# Registered
sign \X2116 1345 NUMERO SIGN 
punctuation \x00Ad 36			# 173	  soft hyphen
sign \x00B0 356 degrees
sign \x00B4 4
always \x00B4 4 # acute accent sign
sign \x00B5 2-134 # micro sign, (mu)
sign \x00B6 4-1234-345		#	182	  ¶ pilcrow sign
math \x00D7 56-236				# 215		× multiplication sign

math \x00F7 56-256				# 247		÷ division sign

punctuation \x2010 36			# 8208  hyphen
punctuation \x2011 23478	# 8209  non-breaking hyphen

punctuation \x2013 36-36		# 8211	en dash
punctuation \x2014 36-36		# em dash
punctuation	\x2018 6-236			# 8216	smart single left quotation mark
punctuation	\x2019 356-3			# 8217	smart single right quotation mark

punctuation	\x201C 236		# 8220	smart opening double quote
punctuation	\x201D 356		# 8221	smart closing double quote
punctuation	\x201E 236		# 8222	smart double low quotation mark
punctuation	\x201F 356		# 8223	smart double high reverse quotation mark

punctuation \x2026 256-256-256 	# 8230 smart ellipsis
sign \x20AC 4-15					# 8364 Euro sign anywhere else

# --------------------------- end definitions ---------------------------------


# Braille indicators
numsign 3456  number sign, just a dots operand
capsletter 45
emphclass italic
begemph italic 456
begemphphrase italic 456

# the decimal digits
include litdigits6Dots.uti

# Letters are defined in en-chardefs
include chardefs.cti


# accented letters

uplow \x00C0\x00E0 1				# a with grave
uplow \x00C1\x00E1 1				# a with acute
uplow \x00C2\x00E2 1				# a with circumflex
uplow \x00C3\x00E3 1				# a with tilde
uplow \x00C4\x00E4 1				# a with dieresis
uplow \x00C5\x00E5 1				# a with ring above
uplow \x00C6\x00E6 1				# letter ae
uplow \x00C7\x00E7 14				# c with cedilla
uplow \x00C8\x00E8 15				# e with grave
uplow \x00C9\x00E9 15				# e with acute
uplow \x00CA\x00EA 15				# e with circumflex
uplow \x00CB\x00EB 15				# e with dieresis
uplow \x00CC\x00EC 24				# i with grave above
uplow \x00CD\x00ED 24				# i with acute above
uplow \x00CE\x00EE 24				# i with circumflex
uplow \x00CF\x00EF 24				# i with dieresis
uplow \x00D0\x00F0 15				# letter eth
uplow \x00D1\x00F1 1345			# n with tilde
uplow \x00D2\x00F2 135			# o with grave above
uplow \x00D3\x00F3 135			# o with acute above
uplow \x00D4\x00F4 135			# o with circumflex
uplow \x00D5\x00F5 135			# o with tilde
uplow \x00D6\x00F6 135			# o with dieresis
# \x00D7	× multiplication sign	----------------------
uplow \x00D8\x00F8 135			# o with stroke
uplow \x00D9\x00F9 136			# u with grave above
uplow \x00DA\x00FA 136			# u with acute above
uplow \x00DB\x00FB 136			# u with circumflex above
uplow \x00DC\x00FC 136				# u with dieeresis
uplow \x00DD\x00FD 13456		# y with acute above
uplow \x00DE\x00FE 4-1456                 # letter thorn
letter \x00DF 2346		# small sharp s
uplow \x0174\x0175 4-2456 w with circumflex
uplow \x0176\x0177 4-13456 # y with circumflex
uplow \x0178\x00ff 4-13456 # y with diaeresis
uplow \x1ef2\x1ef3 4-13456 # y with grave
largesign \x00C0 4-1      [C0] upper a grave
largesign \x00E0   4-1      [E0] lower a grave
largesign \x00C1 4-1      [C1] upper a acute
largesign \x00E1   4-1      [E1] lower a acute
largesign \x00C2 4-1      [C2] upper a circumflex
largesign \x00E2   4-1      [E2] lower a circumflex
largesign \x00C3 4-1      [C3] upper a tilde
largesign \x00E3   4-1      [E3] lower a tilde
largesign \x00C4 4-1      [C4] upper a dieresis
largesign \x00E4   4-1      [E4] lower a dieresis

largesign \x00C5 4-1      [C5] upper a ring
largesign \x00E5   4-1      [E5] lower a ring

largesign \x00C6 1-15     [C6] upper ae
largesign \x00E6   1-15			[E6] lower ae

largesign \x00C7 4-14     [C7] upper c cedilla
largesign \x00E7   4-14     [E7] lower c cedilla

largesign \x00C8 4-15     [C8] upper e grave
largesign \x00E8   4-15     [E8] lower e grave

largesign \x00C9 4-15     [C9] upper e acute
largesign \x00E9   4-15     [E9] lower e acute

largesign \x00CA 4-15     [CA] upper e circumflex
largesign \x00EA   4-15     [EA] lower e circumflex

largesign \x00CB 4-15     [CB] upper e dieresis
largesign \x00EB   4-15     [EB] lower e dieresis

largesign \x00CC 4-24     [CC] upper i grave
largesign \x00EC   4-24     [EC] lower i grave

largesign \x00CD 4-24     [CD] upper i acute
largesign \x00ED   4-24     [ED] lower i acute

largesign \x00CE 4-24     [CE] upper i circumflex
largesign \x00EE   4-24     [EE] lower i circumflex

largesign \x00CF 4-24     [CF] upper i dieresis
largesign \x00EF   4-24     [EF] lower i dieresis

largesign \x00D0 4-15     [D0] upper eth
largesign \x00F0   4-15     [F0] lower eth

largesign \x00D1 4-1345   [D1] upper n tilde
largesign \x00F1   4-1345   [F1] lower n tilde

largesign \x00D2 4-135    [D2] upper o grave
largesign \x00F2   4-135    [F2] lower o grave

largesign \x00D3 4-135    [D3] upper o acute
largesign \x00F3   4-135    [F3] lower o acute

largesign \x00D4 4-135    [D4] upper o circumflex
largesign \x00F4   4-135    [F4] lower o circumflex

largesign \x00D5 4-135    [D5] upper o tilde
largesign \x00F5   4-135    [F5] lower o tilde

largesign \x00D6 4-135    [D6] upper o dieresis
largesign \x00F6   4-135			[F6] lower o dieresis

largesign \x00D8 4-135    [D8] upper o slash
largesign \x00f8   4-135    [F8] lower o slash

largesign \x00D9 4-136    [D9] upper u grave
largesign \x00F9   4-136    [F9] lower u grave

largesign \x00DA 4-136    [DA] upper u acute
largesign \x00FA   4-136    [FA] lower u acute

largesign \x00DB 4-136    [DB] upper u circumflex
largesign \x00FB   4-136    [FB] lower u circumflex

largesign \x00DC 4-136    [DC] upper u dieresis
largesign \x00FC   4-136    [FC] lower u dieresis

largesign \x00DD 4-13456  [DD] upper y acute
largesign \x00FD   4-13456  [FD] lower y acute

largesign \x00DE 4-2345   [DE] upper t horn
largesign \x00FE   4-2345   [FE] lower t horn

largesign \x00DF 234-234 (DF) lower ss

largesign \x0174 4-2456 lower w circumflex
largesign \x0175 4-2456 upper w circumflex

largesign \x0176 4-13456 upper y circumflex
largesign \x0177 4-13456 lower y circumflex

largesign \x0178 4-13456 upper y with dieresis
largesign \x00FF 4-13456 lower y with dieresis

largesign \x1EF2 4-13456 upper y with grave
largesign \x1EF3 4-13456 lower y with grave

# punctuation
punctuation \x2013 36-36		# 8211	en dash
punctuation \x2014 36-36		# em dash
prepunc ( 126
postpunc ) 345
begword ` 6-236
prepunc " 236
postpunc " 356
always \x00AB 236 (opening quotation mark) 
always \x00BB 356 (closing quotation mark)
prepunc ' 6-236
postpunc ' 356-3
word 'em = 
word 'tis =
word 'twas =
begnum # 1345 print number sign before number
begnum ° 145-1245 degrees sign
endnum ° 56-145-1245 ;dg degrees sign
begnum  \x20AC 15       # euro sign at beginning of number
endnum  \x20AC 4-15       # euro sign atend  of number
postpunc , 2
hyphen - 36
#capsnocont
postpunc . 256
postpunc ; 23
postpunc : 25
postpunc ! 235
always / 34
always < 5-13
always > 46-2
postpunc ? 26
midnum + 0-235-3456
always + 235
endnum % 3456-245-356 
always ^ 4
always ~ 12456
always & 12346
always * 35
midword \x2019 3	# stupid smart apostrophe
always [ 45
always ] 3456
always { 46
always } 6
prepunc ` 6-236
always @ 146
always \\ 456-16
always | 456
always ... 256-256-256
always .\s.\s. 256-256-256 . . .
always $ 256-3456

# special character sequences
sign \x00BD 3456-1-34-12	# 1/2 fraction
sign \x00BC 3456-1-34-145	# 1/4 fraction
sign \x00BE 3456-14-34-145	# 3/4 fraction
noback sign \X25CF 16	# 9679 black circle
