# liblouis: German Eurobraille Display Table
#
#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
#
#  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/>.
#
#-------------------------------------------------------------------------------
#
#  EUROBRAILLE DISPLAY TABLE
#
#  This character mapping of 6-dot braille is widely being
#  used in german speaking parts of europe.
#
#  Version 2009-11-19
#  christian.waldvogel@sbszh.ch
#
#-------------------------------------------------------------------------------

display \s 0
display a 1
display b 12
display c 14
display d 145
display e 15
display f 124
display g 1245
display h 125
display i 24
display j 245
display k 13
display l 123
display m 134
display n 1345
display o 135
display p 1234
display q 12345
display r 1235
display s 234
display t 2345
display u 136
display v 1236
display x 1346
display y 13456
display z 1356
display & 12346
display % 123456
display { 12356
display ~ 2346
display } 23456
display 1 16
display 2 126
display 3 146
display 4 1456
display 5 156
display 6 1246
display 7 12456
display 8 1256
display 9 246
display w 2456
display , 2
display ; 23
display : 25
display / 256
display ? 26
display + 235
display = 2356
display ( 236
display * 35
display ) 356
display . 3
display - 36
display | 34
display 0 346
display ` 345
display # 3456
display " 4
display ! 5
display > 45
display $ 46
# according to the standard it should be \x007F but _ seems more convenient and used more widely
# display \x007F 456
display _ 456 
display < 56
display ' 6
