1# Copyright (c) 2004
2#         Kim Norgaard <jasen@jasen.dk>, Denmark.
3#     All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8# 1. Redistributions of source code must retain the above copyright
9#    notice, this list of conditions and the following disclaimer as
10#    the first lines of this file unmodified.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY KIM NOORGAARD ``AS IS'' AND ANY EXPRESS OR
16# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18# IN NO EVENT SHALL KIM NOORGAARD BE LIABLE FOR ANY DIRECT, INDIRECT,
19# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25#
26
27# scan                       cntrl          alt    alt   cntrl lock
28# code  base   shift  cntrl  shift  alt    shift  cntrl  shift state
29# ------------------------------------------------------------------
30  000   nop    nop    nop    nop    nop    nop    nop    nop     O
31  001   esc    esc    esc    esc    esc    esc    debug  esc     O
32  002   '1'    '!'    nop    nop    161    185    nop    nop     O
33  003   '2'    '"'    nul    nul    '@'    178    nul    nul     O
34  004   '3'    '#'    nop    nop    158    179    nop    nop     O
35  005   '4'    164    nop    nop    '$'    164    nop    nop     O
36  006   '5'    '%'    nop    nop    '5'    '%'    nop    nop     O
37  007   '6'    '&'    nop    nop    '6'    '&'    nop    nop     O
38  008   '7'    '/'    nop    nop    '{'    '/'    nop    nop     O
39  009   '8'    '('    esc    esc    '['    '8'    esc    esc     O
40  010   '9'    ')'    gs     gs     ']'    ')'    gs     gs      O
41  011   '0'    '='    nop    nop    '}'    '='    nop    nop     O
42  012   '+'    '?'    nop    nop    '+'    191    nop    nop     O
43  013   dacu   dgra   nop    nop    '|'    '`'    nop    nop     O
44  014   bs     bs     del    del    bs     bs     del    del     O
45  015   ht     btab   nop    nop    ht     btab   nop    nop     O
46  016   'q'    'Q'    dc1    dc1    'q'    'Q'    dc1    dc1     C
47  017   'w'    'W'    etb    etb    'w'    'W'    etb    etb     C
48  018   'e'    'E'    enq    enq    164    'E'    enq    enq     C
49  019   'r'    'R'    dc2    dc2    'r'    'R'    dc2    dc2     C
50  020   't'    'T'    dc4    dc4    't'    'T'    dc4    dc4     C
51  021   'y'    'Y'    em     em     'y'    'Y'    em     em      C
52  022   'u'    'U'    nak    nak    'u'    'U'    nak    nak     C
53  023   'i'    'I'    ht     ht     'i'    'I'    ht     ht      C
54  024   'o'    'O'    si     si     'o'    'O'    si     si      C
55  025   'p'    'P'    dle    dle    'p'    'P'    dle    dle     C
56  026   229    197    nop    nop    134    143    nop    nop     C
57  027   duml    dcir    rs     rs     dtil    '^'    rs     rs      O
58  028   cr     cr     nl     nl     cr     cr     nl     nl      O
59  029   lctrl  lctrl  lctrl  lctrl  lctrl  lctrl  lctrl  lctrl   O
60  030   'a'    'A'    soh    soh    'a'    'A'    soh    soh     C
61  031   's'    'S'    dc3    dc3    223    'S'    dc3    dc3     C
62  032   'd'    'D'    eot    eot    'd'    'D'    eot    eot     C
63  033   'f'    'F'    ack    ack    'f'    'F'    ack    ack     C
64  034   'g'    'G'    bel    bel    'g'    'G'    bel    bel     C
65  035   'h'    'H'    bs     bs     'h'    'H'    bs     bs      C
66  036   'j'    'J'    nl     nl     'j'    'J'    nl     nl      C
67  037   'k'    'K'    vt     vt     'k'    'K'    vt     vt      C
68  038   'l'    'L'    ff     ff     'l'    'L'    ff     ff      C
69  039   230    198    nop    nop    145    146    nop    nop     C
70  040   248    216    nop    nop    155    157    nop    nop     C
71  041   189    167    nop    nop    189    167    nop    nop     O
72  042   lshift lshift lshift lshift lshift lshift lshift lshift  O
73  043   '''    '*'    nop    nop    '''    '*'    nop    nop     O
74  044   'z'    'Z'    sub    sub    'z'    'Z'    sub    sub     C
75  045   'x'    'X'    can    can    'x'    'X'    can    can     C
76  046   'c'    'C'    etx    etx    'c'    'C'    etx    etx     C
77  047   'v'    'V'    syn    syn    'v'    'V'    syn    syn     C
78  048   'b'    'B'    stx    stx    'b'    'B'    stx    stx     C
79  049   'n'    'N'    so     so     'n'    'N'    so     so      C
80  050   'm'    'M'    cr     cr     'm'    'M'    cr     cr      C
81  051   ','    ';'    nop    nop    ','    ';'    nop    nop     O
82  052   '.'    ':'    nop    nop    '.'    ':'    nop    nop     O
83  053   '-'    '_'    us     us     '-'    '_'    us     us      O
84  054   rshift rshift rshift rshift rshift rshift rshift rshift  O
85  055   '*'    '*'    '*'    '*'    '*'    '*'    '*'    '*'     O
86  056   lalt   lalt   lalt   lalt   lalt   lalt   lalt   lalt    O
87  057   ' '    ' '    nul    ' '    ' '    ' '    susp   ' '     O
88  058   clock  clock  clock  clock  clock  clock  clock  clock   O
89  059   fkey01 fkey13 fkey25 fkey37 scr01  scr11  scr01  scr11   O
90  060   fkey02 fkey14 fkey26 fkey38 scr02  scr12  scr02  scr12   O
91  061   fkey03 fkey15 fkey27 fkey39 scr03  scr13  scr03  scr13   O
92  062   fkey04 fkey16 fkey28 fkey40 scr04  scr14  scr04  scr14   O
93  063   fkey05 fkey17 fkey29 fkey41 scr05  scr15  scr05  scr15   O
94  064   fkey06 fkey18 fkey30 fkey42 scr06  scr16  scr06  scr16   O
95  065   fkey07 fkey19 fkey31 fkey43 scr07  scr07  scr07  scr07   O
96  066   fkey08 fkey20 fkey32 fkey44 scr08  scr08  scr08  scr08   O
97  067   fkey09 fkey21 fkey33 fkey45 scr09  scr09  scr09  scr09   O
98  068   fkey10 fkey22 fkey34 fkey46 scr10  scr10  scr10  scr10   O
99  069   nlock  nlock  nlock  nlock  nlock  nlock  nlock  nlock   O
100  070   slock  slock  slock  slock  slock  slock  slock  slock   O
101  071   fkey49 '7'    '7'    '7'    '7'    '7'    '7'    '7'     N
102  072   fkey50 '8'    '8'    '8'    '8'    '8'    '8'    '8'     N
103  073   fkey51 '9'    '9'    '9'    '9'    '9'    '9'    '9'     N
104  074   fkey52 '-'    '-'    '-'    '-'    '-'    '-'    '-'     N
105  075   fkey53 '4'    '4'    '4'    '4'    '4'    '4'    '4'     N
106  076   fkey54 '5'    '5'    '5'    '5'    '5'    '5'    '5'     N
107  077   fkey55 '6'    '6'    '6'    '6'    '6'    '6'    '6'     N
108  078   fkey56 '+'    '+'    '+'    '+'    '+'    '+'    '+'     N
109  079   fkey57 '1'    '1'    '1'    '1'    '1'    '1'    '1'     N
110  080   fkey58 '2'    '2'    '2'    '2'    '2'    '2'    '2'     N
111  081   fkey59 '3'    '3'    '3'    '3'    '3'    '3'    '3'     N
112  082   fkey60 '0'    '0'    '0'    '0'    '0'    '0'    '0'     N
113  083   del    '.'    '.'    '.'    '.'    '.'    boot   boot    N
114  084   nop    nop    nop    nop    nop    nop    nop    nop     O
115  085   nop    nop    nop    nop    nop    nop    nop    nop     O
116  086   '<'    '>'    fs     fs     '\'    '>'    fs     fs      O
117  087   fkey11 fkey23 fkey35 fkey47 scr11  scr11  scr11  scr11   O
118  088   fkey12 fkey24 fkey36 fkey48 scr12  scr12  scr12  scr12   O
119  089   cr     cr     nl     nl     cr     cr     nl     nl      O
120  090   rctrl  rctrl  rctrl  rctrl  rctrl  rctrl  rctrl  rctrl   O
121  091   '/'    '/'    '/'    '/'    '/'    '/'    '/'    '/'     O
122  092   nscr   pscr   debug  debug  nop    nop    nop    nop     O
123  093   ralt   ralt   ralt   ralt   ralt   ralt   ralt   ralt    O
124  094   fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49  O
125  095   fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50  O
126  096   fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51  O
127  097   fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53  O
128  098   fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55  O
129  099   fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57  O
130  100   fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58  O
131  101   fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59  O
132  102   fkey60 paste  fkey60 fkey60 fkey60 fkey60 fkey60 fkey60  O
133  103	fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot   fkey61  O
134  104   slock  saver  slock  saver  susp   nop    susp   nop     O
135  105   fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62  O
136  106   fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63  O
137  107   fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64  O
138  108   nop    nop    nop    nop    nop    nop    nop    nop     O
139
140  duml  '"'  ( 'a' 228 ) ( 'A' 196 ) ( 'e' 235 ) ( 'E' 203 )
141             ( 'i' 239 ) ( 'I' 207 ) ( 'o' 246 ) ( 'O' 214 )
142             ( 'u' 252 ) ( 'U' 220 ) ( 'y' 255 )
143  dcir  '^'  ( 'a' 226 ) ( 'A' 194 ) ( 'e' 234 ) ( 'E' 202 )
144             ( 'i' 238 ) ( 'I' 206 ) ( 'o' 244 ) ( 'O' 212 )
145             ( 'u' 251 ) ( 'U' 219 )
146  dtil  '~'  ( 'a' 227 ) ( 'A' 195 ) ( 'n' 241 ) ( 'N' 209 )
147             ( 'o' 245 ) ( 'O' 213 )
148  dgra  '`'  ( 'a' 224 ) ( 'A' 192 ) ( 'e' 232 ) ( 'E' 200 )
149             ( 'i' 236 ) ( 'I' 204 ) ( 'o' 242 ) ( 'O' 210 )
150             ( 'u' 249 ) ( 'U' 217 )
151  dacu  '''  ( 'a' 225 ) ( 'A' 193 ) ( 'e' 233 ) ( 'E' 201 )
152             ( 'i' 237 ) ( 'I' 205 ) ( 'o' 243 ) ( 'O' 211 )
153             ( 'u' 250 ) ( 'U' 218 ) ( 'y' 253 ) ( 'Y' 221 )
154  drin  176  ( 'a' 229 ) ( 'A' 197 )
155  dced  184  ( 'c' 231 ) ( 'C' 199 )
156  dmac  000
157  dbre  000
158  ddot  000
159  dsla  000
160  dapo  000
161  ddac  000
162  dogo  000
163  dcar  000
164