34 #define KEY_CODE(type, value)   (((type)<<8)|(value))    35 #define KEY_TYPE(x)             (((x) >> 8))    36 #define KEY_VALUE(x)            ((x) & 0xff)    38 #define KEY_MODIFIER_SHIFT        0    39 #define KEY_MODIFIER_ALTGR        1    40 #define KEY_MODIFIER_CTRL         2    41 #define KEY_MODIFIER_ALT          3    42 #define KEY_MODIFIER_SHIFTL       4    43 #define KEY_MODIFIER_KANASHIFT    4    44 #define KEY_MODIFIER_SHIFTR       5    45 #define KEY_MODIFIER_CTRLL        6    46 #define KEY_MODIFIER_CTRLR        7    47 #define KEY_MODIFIER_CAPSSHIFT    8    49 #define KEY_TYPE_LATIN  0x0    50 #define KEY_TYPE_FN     0x1    51 #define KEY_TYPE_SPEC   0x2    52 #define KEY_TYPE_PAD    0x3    53 #define KEY_TYPE_DEAD   0x4    54 #define KEY_TYPE_CONS   0x5    55 #define KEY_TYPE_CUR    0x6    56 #define KEY_TYPE_SHIFT  0x7    57 #define KEY_TYPE_META   0x8    58 #define KEY_TYPE_ASCII  0x9    59 #define KEY_TYPE_LOCK   0xA    60 #define KEY_TYPE_LETTER 0xB    61 #define KEY_TYPE_SLOCK  0xC    62 #define KEY_TYPE_DEAD2  0xD    63 #define KEY_TYPE_BRL    0xE    65 #define KEY_CODE_F1            KEY_CODE(KEY_TYPE_FN, 0)    66 #define KEY_CODE_F2            KEY_CODE(KEY_TYPE_FN, 1)    67 #define KEY_CODE_F3            KEY_CODE(KEY_TYPE_FN, 2)    68 #define KEY_CODE_F4            KEY_CODE(KEY_TYPE_FN, 3)    69 #define KEY_CODE_F5            KEY_CODE(KEY_TYPE_FN, 4)    70 #define KEY_CODE_F6            KEY_CODE(KEY_TYPE_FN, 5)    71 #define KEY_CODE_F7            KEY_CODE(KEY_TYPE_FN, 6)    72 #define KEY_CODE_F8            KEY_CODE(KEY_TYPE_FN, 7)    73 #define KEY_CODE_F9            KEY_CODE(KEY_TYPE_FN, 8)    74 #define KEY_CODE_F10           KEY_CODE(KEY_TYPE_FN, 9)    75 #define KEY_CODE_F11           KEY_CODE(KEY_TYPE_FN, 10)    76 #define KEY_CODE_F12           KEY_CODE(KEY_TYPE_FN, 11)    77 #define KEY_CODE_F13           KEY_CODE(KEY_TYPE_FN, 12)    78 #define KEY_CODE_F14           KEY_CODE(KEY_TYPE_FN, 13)    79 #define KEY_CODE_F15           KEY_CODE(KEY_TYPE_FN, 14)    80 #define KEY_CODE_F16           KEY_CODE(KEY_TYPE_FN, 15)    81 #define KEY_CODE_F17           KEY_CODE(KEY_TYPE_FN, 16)    82 #define KEY_CODE_F18           KEY_CODE(KEY_TYPE_FN, 17)    83 #define KEY_CODE_F19           KEY_CODE(KEY_TYPE_FN, 18)    84 #define KEY_CODE_F20           KEY_CODE(KEY_TYPE_FN, 19)    85 #define KEY_CODE_FIND          KEY_CODE(KEY_TYPE_FN, 20)    86 #define KEY_CODE_INSERT        KEY_CODE(KEY_TYPE_FN, 21)    87 #define KEY_CODE_REMOVE        KEY_CODE(KEY_TYPE_FN, 22)    88 #define KEY_CODE_SELECT        KEY_CODE(KEY_TYPE_FN, 23)    89 #define KEY_CODE_PGUP          KEY_CODE(KEY_TYPE_FN, 24)    90 #define KEY_CODE_PGDN          KEY_CODE(KEY_TYPE_FN, 25)    91 #define KEY_CODE_MACRO         KEY_CODE(KEY_TYPE_FN, 26)    92 #define KEY_CODE_HELP          KEY_CODE(KEY_TYPE_FN, 27)    93 #define KEY_CODE_DO            KEY_CODE(KEY_TYPE_FN, 28)    94 #define KEY_CODE_PAUSE         KEY_CODE(KEY_TYPE_FN, 29)    95 #define KEY_CODE_F21           KEY_CODE(KEY_TYPE_FN, 30)    96 #define KEY_CODE_F22           KEY_CODE(KEY_TYPE_FN, 31)    97 #define KEY_CODE_F23           KEY_CODE(KEY_TYPE_FN, 32)    98 #define KEY_CODE_F24           KEY_CODE(KEY_TYPE_FN, 33)    99 #define KEY_CODE_F25           KEY_CODE(KEY_TYPE_FN, 34)   100 #define KEY_CODE_F26           KEY_CODE(KEY_TYPE_FN, 35)   101 #define KEY_CODE_F27           KEY_CODE(KEY_TYPE_FN, 36)   102 #define KEY_CODE_F28           KEY_CODE(KEY_TYPE_FN, 37)   103 #define KEY_CODE_F29           KEY_CODE(KEY_TYPE_FN, 38)   104 #define KEY_CODE_F30           KEY_CODE(KEY_TYPE_FN, 39)   105 #define KEY_CODE_F31           KEY_CODE(KEY_TYPE_FN, 40)   106 #define KEY_CODE_F32           KEY_CODE(KEY_TYPE_FN, 41)   107 #define KEY_CODE_F33           KEY_CODE(KEY_TYPE_FN, 42)   108 #define KEY_CODE_F34           KEY_CODE(KEY_TYPE_FN, 43)   109 #define KEY_CODE_F35           KEY_CODE(KEY_TYPE_FN, 44)   110 #define KEY_CODE_F36           KEY_CODE(KEY_TYPE_FN, 45)   111 #define KEY_CODE_F37           KEY_CODE(KEY_TYPE_FN, 46)   112 #define KEY_CODE_F38           KEY_CODE(KEY_TYPE_FN, 47)   113 #define KEY_CODE_F39           KEY_CODE(KEY_TYPE_FN, 48)   114 #define KEY_CODE_F40           KEY_CODE(KEY_TYPE_FN, 49)   115 #define KEY_CODE_F41           KEY_CODE(KEY_TYPE_FN, 50)   116 #define KEY_CODE_F42           KEY_CODE(KEY_TYPE_FN, 51)   117 #define KEY_CODE_F43           KEY_CODE(KEY_TYPE_FN, 52)   118 #define KEY_CODE_F44           KEY_CODE(KEY_TYPE_FN, 53)   119 #define KEY_CODE_F45           KEY_CODE(KEY_TYPE_FN, 54)   120 #define KEY_CODE_F46           KEY_CODE(KEY_TYPE_FN, 55)   121 #define KEY_CODE_F47           KEY_CODE(KEY_TYPE_FN, 56)   122 #define KEY_CODE_F48           KEY_CODE(KEY_TYPE_FN, 57)   123 #define KEY_CODE_F49           KEY_CODE(KEY_TYPE_FN, 58)   124 #define KEY_CODE_F50           KEY_CODE(KEY_TYPE_FN, 59)   125 #define KEY_CODE_F51           KEY_CODE(KEY_TYPE_FN, 60)   126 #define KEY_CODE_F52           KEY_CODE(KEY_TYPE_FN, 61)   127 #define KEY_CODE_F53           KEY_CODE(KEY_TYPE_FN, 62)   128 #define KEY_CODE_F54           KEY_CODE(KEY_TYPE_FN, 63)   129 #define KEY_CODE_F55           KEY_CODE(KEY_TYPE_FN, 64)   130 #define KEY_CODE_F56           KEY_CODE(KEY_TYPE_FN, 65)   131 #define KEY_CODE_F57           KEY_CODE(KEY_TYPE_FN, 66)   132 #define KEY_CODE_F58           KEY_CODE(KEY_TYPE_FN, 67)   133 #define KEY_CODE_F59           KEY_CODE(KEY_TYPE_FN, 68)   134 #define KEY_CODE_F60           KEY_CODE(KEY_TYPE_FN, 69)   135 #define KEY_CODE_F61           KEY_CODE(KEY_TYPE_FN, 70)   136 #define KEY_CODE_F62           KEY_CODE(KEY_TYPE_FN, 71)   137 #define KEY_CODE_F63           KEY_CODE(KEY_TYPE_FN, 72)   138 #define KEY_CODE_F64           KEY_CODE(KEY_TYPE_FN, 73)   139 #define KEY_CODE_F65           KEY_CODE(KEY_TYPE_FN, 74)   140 #define KEY_CODE_F66           KEY_CODE(KEY_TYPE_FN, 75)   141 #define KEY_CODE_F67           KEY_CODE(KEY_TYPE_FN, 76)   142 #define KEY_CODE_F68           KEY_CODE(KEY_TYPE_FN, 77)   143 #define KEY_CODE_F69           KEY_CODE(KEY_TYPE_FN, 78)   144 #define KEY_CODE_F70           KEY_CODE(KEY_TYPE_FN, 79)   145 #define KEY_CODE_F71           KEY_CODE(KEY_TYPE_FN, 80)   146 #define KEY_CODE_F72           KEY_CODE(KEY_TYPE_FN, 81)   147 #define KEY_CODE_F73           KEY_CODE(KEY_TYPE_FN, 82)   148 #define KEY_CODE_F74           KEY_CODE(KEY_TYPE_FN, 83)   149 #define KEY_CODE_F75           KEY_CODE(KEY_TYPE_FN, 84)   150 #define KEY_CODE_F76           KEY_CODE(KEY_TYPE_FN, 85)   151 #define KEY_CODE_F77           KEY_CODE(KEY_TYPE_FN, 86)   152 #define KEY_CODE_F78           KEY_CODE(KEY_TYPE_FN, 87)   153 #define KEY_CODE_F79           KEY_CODE(KEY_TYPE_FN, 88)   154 #define KEY_CODE_F80           KEY_CODE(KEY_TYPE_FN, 89)   155 #define KEY_CODE_F81           KEY_CODE(KEY_TYPE_FN, 90)   156 #define KEY_CODE_F82           KEY_CODE(KEY_TYPE_FN, 91)   157 #define KEY_CODE_F83           KEY_CODE(KEY_TYPE_FN, 92)   158 #define KEY_CODE_F84           KEY_CODE(KEY_TYPE_FN, 93)   159 #define KEY_CODE_F85           KEY_CODE(KEY_TYPE_FN, 94)   160 #define KEY_CODE_F86           KEY_CODE(KEY_TYPE_FN, 95)   161 #define KEY_CODE_F87           KEY_CODE(KEY_TYPE_FN, 96)   162 #define KEY_CODE_F88           KEY_CODE(KEY_TYPE_FN, 97)   163 #define KEY_CODE_F89           KEY_CODE(KEY_TYPE_FN, 98)   164 #define KEY_CODE_F90           KEY_CODE(KEY_TYPE_FN, 99)   165 #define KEY_CODE_F91           KEY_CODE(KEY_TYPE_FN, 100)   166 #define KEY_CODE_F92           KEY_CODE(KEY_TYPE_FN, 101)   167 #define KEY_CODE_F93           KEY_CODE(KEY_TYPE_FN, 102)   168 #define KEY_CODE_F94           KEY_CODE(KEY_TYPE_FN, 103)   169 #define KEY_CODE_F95           KEY_CODE(KEY_TYPE_FN, 104)   170 #define KEY_CODE_F96           KEY_CODE(KEY_TYPE_FN, 105)   171 #define KEY_CODE_F97           KEY_CODE(KEY_TYPE_FN, 106)   172 #define KEY_CODE_F98           KEY_CODE(KEY_TYPE_FN, 107)   173 #define KEY_CODE_F99           KEY_CODE(KEY_TYPE_FN, 108)   174 #define KEY_CODE_F100          KEY_CODE(KEY_TYPE_FN, 109)   175 #define KEY_CODE_F101          KEY_CODE(KEY_TYPE_FN, 110)   176 #define KEY_CODE_F102          KEY_CODE(KEY_TYPE_FN, 111)   177 #define KEY_CODE_F103          KEY_CODE(KEY_TYPE_FN, 112)   178 #define KEY_CODE_F104          KEY_CODE(KEY_TYPE_FN, 113)   179 #define KEY_CODE_F105          KEY_CODE(KEY_TYPE_FN, 114)   180 #define KEY_CODE_F106          KEY_CODE(KEY_TYPE_FN, 115)   181 #define KEY_CODE_F107          KEY_CODE(KEY_TYPE_FN, 116)   182 #define KEY_CODE_F108          KEY_CODE(KEY_TYPE_FN, 117)   183 #define KEY_CODE_F109          KEY_CODE(KEY_TYPE_FN, 118)   184 #define KEY_CODE_F110          KEY_CODE(KEY_TYPE_FN, 119)   185 #define KEY_CODE_F111          KEY_CODE(KEY_TYPE_FN, 120)   186 #define KEY_CODE_F112          KEY_CODE(KEY_TYPE_FN, 121)   187 #define KEY_CODE_F113          KEY_CODE(KEY_TYPE_FN, 122)   188 #define KEY_CODE_F114          KEY_CODE(KEY_TYPE_FN, 123)   189 #define KEY_CODE_F115          KEY_CODE(KEY_TYPE_FN, 124)   190 #define KEY_CODE_F116          KEY_CODE(KEY_TYPE_FN, 125)   191 #define KEY_CODE_F117          KEY_CODE(KEY_TYPE_FN, 126)   192 #define KEY_CODE_F118          KEY_CODE(KEY_TYPE_FN, 127)   193 #define KEY_CODE_F119          KEY_CODE(KEY_TYPE_FN, 128)   194 #define KEY_CODE_F120          KEY_CODE(KEY_TYPE_FN, 129)   195 #define KEY_CODE_F121          KEY_CODE(KEY_TYPE_FN, 130)   196 #define KEY_CODE_F122          KEY_CODE(KEY_TYPE_FN, 131)   197 #define KEY_CODE_F123          KEY_CODE(KEY_TYPE_FN, 132)   198 #define KEY_CODE_F124          KEY_CODE(KEY_TYPE_FN, 133)   199 #define KEY_CODE_F125          KEY_CODE(KEY_TYPE_FN, 134)   200 #define KEY_CODE_F126          KEY_CODE(KEY_TYPE_FN, 135)   201 #define KEY_CODE_F127          KEY_CODE(KEY_TYPE_FN, 136)   202 #define KEY_CODE_F128          KEY_CODE(KEY_TYPE_FN, 137)   203 #define KEY_CODE_F129          KEY_CODE(KEY_TYPE_FN, 138)   204 #define KEY_CODE_F130          KEY_CODE(KEY_TYPE_FN, 139)   205 #define KEY_CODE_F131          KEY_CODE(KEY_TYPE_FN, 140)   206 #define KEY_CODE_F132          KEY_CODE(KEY_TYPE_FN, 141)   207 #define KEY_CODE_F133          KEY_CODE(KEY_TYPE_FN, 142)   208 #define KEY_CODE_F134          KEY_CODE(KEY_TYPE_FN, 143)   209 #define KEY_CODE_F135          KEY_CODE(KEY_TYPE_FN, 144)   210 #define KEY_CODE_F136          KEY_CODE(KEY_TYPE_FN, 145)   211 #define KEY_CODE_F137          KEY_CODE(KEY_TYPE_FN, 146)   212 #define KEY_CODE_F138          KEY_CODE(KEY_TYPE_FN, 147)   213 #define KEY_CODE_F139          KEY_CODE(KEY_TYPE_FN, 148)   214 #define KEY_CODE_F140          KEY_CODE(KEY_TYPE_FN, 149)   215 #define KEY_CODE_F141          KEY_CODE(KEY_TYPE_FN, 150)   216 #define KEY_CODE_F142          KEY_CODE(KEY_TYPE_FN, 151)   217 #define KEY_CODE_F143          KEY_CODE(KEY_TYPE_FN, 152)   218 #define KEY_CODE_F144          KEY_CODE(KEY_TYPE_FN, 153)   219 #define KEY_CODE_F145          KEY_CODE(KEY_TYPE_FN, 154)   220 #define KEY_CODE_F146          KEY_CODE(KEY_TYPE_FN, 155)   221 #define KEY_CODE_F147          KEY_CODE(KEY_TYPE_FN, 156)   222 #define KEY_CODE_F148          KEY_CODE(KEY_TYPE_FN, 157)   223 #define KEY_CODE_F149          KEY_CODE(KEY_TYPE_FN, 158)   224 #define KEY_CODE_F150          KEY_CODE(KEY_TYPE_FN, 159)   225 #define KEY_CODE_F151          KEY_CODE(KEY_TYPE_FN, 160)   226 #define KEY_CODE_F152          KEY_CODE(KEY_TYPE_FN, 161)   227 #define KEY_CODE_F153          KEY_CODE(KEY_TYPE_FN, 162)   228 #define KEY_CODE_F154          KEY_CODE(KEY_TYPE_FN, 163)   229 #define KEY_CODE_F155          KEY_CODE(KEY_TYPE_FN, 164)   230 #define KEY_CODE_F156          KEY_CODE(KEY_TYPE_FN, 165)   231 #define KEY_CODE_F157          KEY_CODE(KEY_TYPE_FN, 166)   232 #define KEY_CODE_F158          KEY_CODE(KEY_TYPE_FN, 167)   233 #define KEY_CODE_F159          KEY_CODE(KEY_TYPE_FN, 168)   234 #define KEY_CODE_F160          KEY_CODE(KEY_TYPE_FN, 169)   235 #define KEY_CODE_F161          KEY_CODE(KEY_TYPE_FN, 170)   236 #define KEY_CODE_F162          KEY_CODE(KEY_TYPE_FN, 171)   237 #define KEY_CODE_F163          KEY_CODE(KEY_TYPE_FN, 172)   238 #define KEY_CODE_F164          KEY_CODE(KEY_TYPE_FN, 173)   239 #define KEY_CODE_F165          KEY_CODE(KEY_TYPE_FN, 174)   240 #define KEY_CODE_F166          KEY_CODE(KEY_TYPE_FN, 175)   241 #define KEY_CODE_F167          KEY_CODE(KEY_TYPE_FN, 176)   242 #define KEY_CODE_F168          KEY_CODE(KEY_TYPE_FN, 177)   243 #define KEY_CODE_F169          KEY_CODE(KEY_TYPE_FN, 178)   244 #define KEY_CODE_F170          KEY_CODE(KEY_TYPE_FN, 179)   245 #define KEY_CODE_F171          KEY_CODE(KEY_TYPE_FN, 180)   246 #define KEY_CODE_F172          KEY_CODE(KEY_TYPE_FN, 181)   247 #define KEY_CODE_F173          KEY_CODE(KEY_TYPE_FN, 182)   248 #define KEY_CODE_F174          KEY_CODE(KEY_TYPE_FN, 183)   249 #define KEY_CODE_F175          KEY_CODE(KEY_TYPE_FN, 184)   250 #define KEY_CODE_F176          KEY_CODE(KEY_TYPE_FN, 185)   251 #define KEY_CODE_F177          KEY_CODE(KEY_TYPE_FN, 186)   252 #define KEY_CODE_F178          KEY_CODE(KEY_TYPE_FN, 187)   253 #define KEY_CODE_F179          KEY_CODE(KEY_TYPE_FN, 188)   254 #define KEY_CODE_F180          KEY_CODE(KEY_TYPE_FN, 189)   255 #define KEY_CODE_F181          KEY_CODE(KEY_TYPE_FN, 190)   256 #define KEY_CODE_F182          KEY_CODE(KEY_TYPE_FN, 191)   257 #define KEY_CODE_F183          KEY_CODE(KEY_TYPE_FN, 192)   258 #define KEY_CODE_F184          KEY_CODE(KEY_TYPE_FN, 193)   259 #define KEY_CODE_F185          KEY_CODE(KEY_TYPE_FN, 194)   260 #define KEY_CODE_F186          KEY_CODE(KEY_TYPE_FN, 195)   261 #define KEY_CODE_F187          KEY_CODE(KEY_TYPE_FN, 196)   262 #define KEY_CODE_F188          KEY_CODE(KEY_TYPE_FN, 197)   263 #define KEY_CODE_F189          KEY_CODE(KEY_TYPE_FN, 198)   264 #define KEY_CODE_F190          KEY_CODE(KEY_TYPE_FN, 199)   265 #define KEY_CODE_F191          KEY_CODE(KEY_TYPE_FN, 200)   266 #define KEY_CODE_F192          KEY_CODE(KEY_TYPE_FN, 201)   267 #define KEY_CODE_F193          KEY_CODE(KEY_TYPE_FN, 202)   268 #define KEY_CODE_F194          KEY_CODE(KEY_TYPE_FN, 203)   269 #define KEY_CODE_F195          KEY_CODE(KEY_TYPE_FN, 204)   270 #define KEY_CODE_F196          KEY_CODE(KEY_TYPE_FN, 205)   271 #define KEY_CODE_F197          KEY_CODE(KEY_TYPE_FN, 206)   272 #define KEY_CODE_F198          KEY_CODE(KEY_TYPE_FN, 207)   273 #define KEY_CODE_F199          KEY_CODE(KEY_TYPE_FN, 208)   274 #define KEY_CODE_F200          KEY_CODE(KEY_TYPE_FN, 209)   275 #define KEY_CODE_F201          KEY_CODE(KEY_TYPE_FN, 210)   276 #define KEY_CODE_F202          KEY_CODE(KEY_TYPE_FN, 211)   277 #define KEY_CODE_F203          KEY_CODE(KEY_TYPE_FN, 212)   278 #define KEY_CODE_F204          KEY_CODE(KEY_TYPE_FN, 213)   279 #define KEY_CODE_F205          KEY_CODE(KEY_TYPE_FN, 214)   280 #define KEY_CODE_F206          KEY_CODE(KEY_TYPE_FN, 215)   281 #define KEY_CODE_F207          KEY_CODE(KEY_TYPE_FN, 216)   282 #define KEY_CODE_F208          KEY_CODE(KEY_TYPE_FN, 217)   283 #define KEY_CODE_F209          KEY_CODE(KEY_TYPE_FN, 218)   284 #define KEY_CODE_F210          KEY_CODE(KEY_TYPE_FN, 219)   285 #define KEY_CODE_F211          KEY_CODE(KEY_TYPE_FN, 220)   286 #define KEY_CODE_F212          KEY_CODE(KEY_TYPE_FN, 221)   287 #define KEY_CODE_F213          KEY_CODE(KEY_TYPE_FN, 222)   288 #define KEY_CODE_F214          KEY_CODE(KEY_TYPE_FN, 223)   289 #define KEY_CODE_F215          KEY_CODE(KEY_TYPE_FN, 224)   290 #define KEY_CODE_F216          KEY_CODE(KEY_TYPE_FN, 225)   291 #define KEY_CODE_F217          KEY_CODE(KEY_TYPE_FN, 226)   292 #define KEY_CODE_F218          KEY_CODE(KEY_TYPE_FN, 227)   293 #define KEY_CODE_F219          KEY_CODE(KEY_TYPE_FN, 228)   294 #define KEY_CODE_F220          KEY_CODE(KEY_TYPE_FN, 229)   295 #define KEY_CODE_F221          KEY_CODE(KEY_TYPE_FN, 230)   296 #define KEY_CODE_F222          KEY_CODE(KEY_TYPE_FN, 231)   297 #define KEY_CODE_F223          KEY_CODE(KEY_TYPE_FN, 232)   298 #define KEY_CODE_F224          KEY_CODE(KEY_TYPE_FN, 233)   299 #define KEY_CODE_F225          KEY_CODE(KEY_TYPE_FN, 234)   300 #define KEY_CODE_F226          KEY_CODE(KEY_TYPE_FN, 235)   301 #define KEY_CODE_F227          KEY_CODE(KEY_TYPE_FN, 236)   302 #define KEY_CODE_F228          KEY_CODE(KEY_TYPE_FN, 237)   303 #define KEY_CODE_F229          KEY_CODE(KEY_TYPE_FN, 238)   304 #define KEY_CODE_F230          KEY_CODE(KEY_TYPE_FN, 239)   305 #define KEY_CODE_F231          KEY_CODE(KEY_TYPE_FN, 240)   306 #define KEY_CODE_F232          KEY_CODE(KEY_TYPE_FN, 241)   307 #define KEY_CODE_F233          KEY_CODE(KEY_TYPE_FN, 242)   308 #define KEY_CODE_F234          KEY_CODE(KEY_TYPE_FN, 243)   309 #define KEY_CODE_F235          KEY_CODE(KEY_TYPE_FN, 244)   310 #define KEY_CODE_F236          KEY_CODE(KEY_TYPE_FN, 245)   311 #define KEY_CODE_F237          KEY_CODE(KEY_TYPE_FN, 246)   312 #define KEY_CODE_F238          KEY_CODE(KEY_TYPE_FN, 247)   313 #define KEY_CODE_F239          KEY_CODE(KEY_TYPE_FN, 248)   314 #define KEY_CODE_F240          KEY_CODE(KEY_TYPE_FN, 249)   315 #define KEY_CODE_F241          KEY_CODE(KEY_TYPE_FN, 250)   316 #define KEY_CODE_F242          KEY_CODE(KEY_TYPE_FN, 251)   317 #define KEY_CODE_F243          KEY_CODE(KEY_TYPE_FN, 252)   318 #define KEY_CODE_F244          KEY_CODE(KEY_TYPE_FN, 253)   319 #define KEY_CODE_F245          KEY_CODE(KEY_TYPE_FN, 254)   320 #define KEY_CODE_UNDO          KEY_CODE(KEY_TYPE_FN, 255)   322 #define KEY_CODE_HOLE          KEY_CODE(KEY_TYPE_SPEC, 0)   323 #define KEY_CODE_ENTER         KEY_CODE(KEY_TYPE_SPEC, 1)   324 #define KEY_CODE_SH_REGS       KEY_CODE(KEY_TYPE_SPEC, 2)   325 #define KEY_CODE_SH_MEM        KEY_CODE(KEY_TYPE_SPEC, 3)   326 #define KEY_CODE_SH_STAT       KEY_CODE(KEY_TYPE_SPEC, 4)   327 #define KEY_CODE_BREAK         KEY_CODE(KEY_TYPE_SPEC, 5)   328 #define KEY_CODE_CONS          KEY_CODE(KEY_TYPE_SPEC, 6)   329 #define KEY_CODE_CAPS          KEY_CODE(KEY_TYPE_SPEC, 7)   330 #define KEY_CODE_NUM           KEY_CODE(KEY_TYPE_SPEC, 8)   331 #define KEY_CODE_HOLD          KEY_CODE(KEY_TYPE_SPEC, 9)   332 #define KEY_CODE_SCROLLFORW    KEY_CODE(KEY_TYPE_SPEC, 10)   333 #define KEY_CODE_SCROLLBACK    KEY_CODE(KEY_TYPE_SPEC, 11)   334 #define KEY_CODE_BOOT          KEY_CODE(KEY_TYPE_SPEC, 12)   335 #define KEY_CODE_CAPSON        KEY_CODE(KEY_TYPE_SPEC, 13)   336 #define KEY_CODE_COMPOSE       KEY_CODE(KEY_TYPE_SPEC, 14)   337 #define KEY_CODE_SAK           KEY_CODE(KEY_TYPE_SPEC, 15)   338 #define KEY_CODE_DECRCONSOLE   KEY_CODE(KEY_TYPE_SPEC, 16)   339 #define KEY_CODE_INCRCONSOLE   KEY_CODE(KEY_TYPE_SPEC, 17)   340 #define KEY_CODE_SPAWNCONSOLE  KEY_CODE(KEY_TYPE_SPEC, 18)   341 #define KEY_CODE_BARENUMLOCK   KEY_CODE(KEY_TYPE_SPEC, 19)   343 #define KEY_CODE_ALLOCATED     KEY_CODE(KEY_TYPE_SPEC, 126)   344 #define KEY_CODE_NOSUCHMAP     KEY_CODE(KEY_TYPE_SPEC, 127)   346 #define KEY_CODE_P0            KEY_CODE(KEY_TYPE_PAD, 0)   347 #define KEY_CODE_P1            KEY_CODE(KEY_TYPE_PAD, 1)   348 #define KEY_CODE_P2            KEY_CODE(KEY_TYPE_PAD, 2)   349 #define KEY_CODE_P3            KEY_CODE(KEY_TYPE_PAD, 3)   350 #define KEY_CODE_P4            KEY_CODE(KEY_TYPE_PAD, 4)   351 #define KEY_CODE_P5            KEY_CODE(KEY_TYPE_PAD, 5)   352 #define KEY_CODE_P6            KEY_CODE(KEY_TYPE_PAD, 6)   353 #define KEY_CODE_P7            KEY_CODE(KEY_TYPE_PAD, 7)   354 #define KEY_CODE_P8            KEY_CODE(KEY_TYPE_PAD, 8)   355 #define KEY_CODE_P9            KEY_CODE(KEY_TYPE_PAD, 9)   356 #define KEY_CODE_PPLUS         KEY_CODE(KEY_TYPE_PAD, 10)   357 #define KEY_CODE_PMINUS        KEY_CODE(KEY_TYPE_PAD, 11)   358 #define KEY_CODE_PSTAR         KEY_CODE(KEY_TYPE_PAD, 12)   359 #define KEY_CODE_PSLASH        KEY_CODE(KEY_TYPE_PAD, 13)   360 #define KEY_CODE_PENTER        KEY_CODE(KEY_TYPE_PAD, 14)   361 #define KEY_CODE_PCOMMA        KEY_CODE(KEY_TYPE_PAD, 15)   362 #define KEY_CODE_PDOT          KEY_CODE(KEY_TYPE_PAD, 16)   363 #define KEY_CODE_PPLUSMINUS    KEY_CODE(KEY_TYPE_PAD, 17)   364 #define KEY_CODE_PPARENL       KEY_CODE(KEY_TYPE_PAD, 18)   365 #define KEY_CODE_PPARENR       KEY_CODE(KEY_TYPE_PAD, 19)   367 #define KEY_CODE_DGRAVE        KEY_CODE(KEY_TYPE_DEAD, 0)   368 #define KEY_CODE_DACUTE        KEY_CODE(KEY_TYPE_DEAD, 1)   369 #define KEY_CODE_DCIRCM        KEY_CODE(KEY_TYPE_DEAD, 2)   370 #define KEY_CODE_DTILDE        KEY_CODE(KEY_TYPE_DEAD, 3)   371 #define KEY_CODE_DDIERE        KEY_CODE(KEY_TYPE_DEAD, 4)   372 #define KEY_CODE_DCEDIL        KEY_CODE(KEY_TYPE_DEAD, 5)   374 #define KEY_CODE_DOWN          KEY_CODE(KEY_TYPE_CUR, 0)   375 #define KEY_CODE_LEFT          KEY_CODE(KEY_TYPE_CUR, 1)   376 #define KEY_CODE_RIGHT         KEY_CODE(KEY_TYPE_CUR, 2)   377 #define KEY_CODE_UP            KEY_CODE(KEY_TYPE_CUR, 3)   379 #define KEY_CODE_SHIFT         KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_SHIFT)   380 #define KEY_CODE_CTRL          KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_CTRL)   381 #define KEY_CODE_ALT           KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_ALT)   382 #define KEY_CODE_ALTGR         KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_ALTGR)   383 #define KEY_CODE_SHIFTL        KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_SHIFTL)   384 #define KEY_CODE_SHIFTR        KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_SHIFTR)   385 #define KEY_CODE_CTRLL         KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_CTRLL)   386 #define KEY_CODE_CTRLR         KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_CTRLR)   387 #define KEY_CODE_CAPSSHIFT     KEY_CODE(KEY_TYPE_SHIFT, KEY_MODIFIER_CAPSSHIFT)   389 #define KEY_CODE_ASC0          KEY_CODE(KEY_TYPE_ASCII, 0)   390 #define KEY_CODE_ASC1          KEY_CODE(KEY_TYPE_ASCII, 1)   391 #define KEY_CODE_ASC2          KEY_CODE(KEY_TYPE_ASCII, 2)   392 #define KEY_CODE_ASC3          KEY_CODE(KEY_TYPE_ASCII, 3)   393 #define KEY_CODE_ASC4          KEY_CODE(KEY_TYPE_ASCII, 4)   394 #define KEY_CODE_ASC5          KEY_CODE(KEY_TYPE_ASCII, 5)   395 #define KEY_CODE_ASC6          KEY_CODE(KEY_TYPE_ASCII, 6)   396 #define KEY_CODE_ASC7          KEY_CODE(KEY_TYPE_ASCII, 7)   397 #define KEY_CODE_ASC8          KEY_CODE(KEY_TYPE_ASCII, 8)   398 #define KEY_CODE_ASC9          KEY_CODE(KEY_TYPE_ASCII, 9)   399 #define KEY_CODE_HEX0          KEY_CODE(KEY_TYPE_ASCII, 10)   400 #define KEY_CODE_HEX1          KEY_CODE(KEY_TYPE_ASCII, 11)   401 #define KEY_CODE_HEX2          KEY_CODE(KEY_TYPE_ASCII, 12)   402 #define KEY_CODE_HEX3          KEY_CODE(KEY_TYPE_ASCII, 13)   403 #define KEY_CODE_HEX4          KEY_CODE(KEY_TYPE_ASCII, 14)   404 #define KEY_CODE_HEX5          KEY_CODE(KEY_TYPE_ASCII, 15)   405 #define KEY_CODE_HEX6          KEY_CODE(KEY_TYPE_ASCII, 16)   406 #define KEY_CODE_HEX7          KEY_CODE(KEY_TYPE_ASCII, 17)   407 #define KEY_CODE_HEX8          KEY_CODE(KEY_TYPE_ASCII, 18)   408 #define KEY_CODE_HEX9          KEY_CODE(KEY_TYPE_ASCII, 19)   409 #define KEY_CODE_HEXa          KEY_CODE(KEY_TYPE_ASCII, 20)   410 #define KEY_CODE_HEXb          KEY_CODE(KEY_TYPE_ASCII, 21)   411 #define KEY_CODE_HEXc          KEY_CODE(KEY_TYPE_ASCII, 22)   412 #define KEY_CODE_HEXd          KEY_CODE(KEY_TYPE_ASCII, 23)   413 #define KEY_CODE_HEXe          KEY_CODE(KEY_TYPE_ASCII, 24)   414 #define KEY_CODE_HEXf          KEY_CODE(KEY_TYPE_ASCII, 25)   416 #define KEY_CODE_SHIFTLOCK     KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_SHIFT)   417 #define KEY_CODE_CTRLLOCK      KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_CTRL)   418 #define KEY_CODE_ALTLOCK       KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_ALT)   419 #define KEY_CODE_ALTGRLOCK     KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_ALTGR)   420 #define KEY_CODE_SHIFTLLOCK    KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_SHIFTL)   421 #define KEY_CODE_SHIFTRLOCK    KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_SHIFTR)   422 #define KEY_CODE_CTRLLLOCK     KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_CTRLL)   423 #define KEY_CODE_CTRLRLOCK     KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_CTRLR)   424 #define KEY_CODE_CAPSSHIFTLOCK KEY_CODE(KEY_TYPE_LOCK, KEY_MODIFIER_CAPSSHIFT)   426 #define KEY_CODE_SHIFT_SLOCK      KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_SHIFT)   427 #define KEY_CODE_CTRL_SLOCK       KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_CTRL)   428 #define KEY_CODE_ALT_SLOCK        KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_ALT)   429 #define KEY_CODE_ALTGR_SLOCK      KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_ALTGR)   430 #define KEY_CODE_SHIFTL_SLOCK     KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_SHIFTL)   431 #define KEY_CODE_SHIFTR_SLOCK     KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_SHIFTR)   432 #define KEY_CODE_CTRLL_SLOCK      KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_CTRLL)   433 #define KEY_CODE_CTRLR_SLOCK      KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_CTRLR)   434 #define KEY_CODE_CAPSSHIFT_SLOCK  KEY_CODE(KEY_TYPE_SLOCK, KEY_MODIFIER_CAPSSHIFT)   436 #define KEY_CODE_BRL_BLANK     KEY_CODE(KEY_TYPE_BRL, 0)   437 #define KEY_CODE_BRL_DOT1      KEY_CODE(KEY_TYPE_BRL, 1)   438 #define KEY_CODE_BRL_DOT2      KEY_CODE(KEY_TYPE_BRL, 2)   439 #define KEY_CODE_BRL_DOT3      KEY_CODE(KEY_TYPE_BRL, 3)   440 #define KEY_CODE_BRL_DOT4      KEY_CODE(KEY_TYPE_BRL, 4)   441 #define KEY_CODE_BRL_DOT5      KEY_CODE(KEY_TYPE_BRL, 5)   442 #define KEY_CODE_BRL_DOT6      KEY_CODE(KEY_TYPE_BRL, 6)   443 #define KEY_CODE_BRL_DOT7      KEY_CODE(KEY_TYPE_BRL, 7)   444 #define KEY_CODE_BRL_DOT8      KEY_CODE(KEY_TYPE_BRL, 8)   445 #define KEY_CODE_BRL_DOT9      KEY_CODE(KEY_TYPE_BRL, 9)   446 #define KEY_CODE_BRL_DOT10     KEY_CODE(KEY_TYPE_BRL, 10)   474 #define KEYBOARD_LED_SCROLLOCK  1   475 #define KEYBOARD_LED_NUMLOCK    2   476 #define KEYBOARD_LED_CAPSLOCK   4   485     #define KEYBOARD_BUFFER_PORT        0x60   486     #define KEYBOARD_STATUS_PORT        0x64   493     #define KEYBOARD_KDC_TEST_KEYBOARD      0xAA   494     #define KEYBOARD_KDC_TEST_CONNECTION    0xAB   495     #define KEYBOARD_KDC_DISABLE            0xAD   496     #define KEYBOARD_KDC_ENABLE             0xAE   497     #define KEYBOARD_KDC_READ_INPUT         0xC0   498     #define KEYBOARD_KDC_READ_OUTPUT        0xD0   499     #define KEYBOARD_KDC_WRITE_OUTPUT       0xD1   506     #define KEYBOARD_CMD_LED        0xED   507     #define KEYBOARD_CMD_TEST       0xEE   508     #define KEYBOARD_CMD_SCANCODES  0xF0   509     #define KEYBOARD_CMD_IDENTIFY   0xF2   510     #define KEYBOARD_CMD_REPEAT     0xF3   511     #define KEYBOARD_CMD_ENABLE     0xF4   512     #define KEYBOARD_CMD_DISABLE    0xF5   513     #define KEYBOARD_CMD_DEFAULT    0xF6   514     #define KEYBOARD_CMD_RESET_TEST 0xFF const struct keyMap * keyMaps
Supported keymaps. 
 
uint32_t keyboardGetLEDFlags()
Return the current active LED flags. 
 
uint16_t * altgr_ctrl_map
 
void keyboardSetLEDFlags(uint32_t flags)
Set LED Flags. 
 
struct keyModifier modifiers
 
uint16_t * shift_ctrl_map
 
void keyboardInit(struct object *obj)
Initializes the keyboard. 
 
void keyboardSend(uint8_t cmd)
Send a command to the keyboard controller.