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.