1 /* 2 * This software is Copyright (c) 1989, 1990, 1991 by Patrick J. Wolfe. 3 * 4 * Permission is hereby granted to copy, distribute or otherwise 5 * use any part of this package as long as you do not try to make 6 * money from it or pretend that you wrote it. This copyright 7 * notice must be maintained in any copy made. 8 * 9 * Use of this software constitutes acceptance for use in an AS IS 10 * condition. There are NO warranties with regard to this software. 11 * In no event shall the author be liable for any damages whatsoever 12 * arising out of or in connection with the use or performance of this 13 * software. Any use of this software is at the user's own risk. 14 * 15 * If you make modifications to this software that you feel 16 * increases it usefulness for the rest of the community, please 17 * email the changes, enhancements, bug fixes as well as any and 18 * all ideas to me. This software is going to be maintained and 19 * enhanced as deemed necessary by the community. 20 * 21 * Patrick J. Wolfe 22 * uunet!uiucuxc!kailand!pwolfe 23 * pwolfe@kailand.kai.com 24 * 25 * Additions of DOS keys and extended function key descriptions 26 * made by Mark Hessling. 27 * 28 */ 29 30 /* System V curses key names and codes returned by getch */ 31 32 /* 33 $Id: getch.h,v 1.4 2008/10/02 12:12:46 mark Exp $ 34 */ 35 36 37 #ifndef KEY_MIN 38 #define KEY_MIN 0x101 /* Minimum curses key */ 39 #endif 40 #ifndef KEY_BREAK 41 #define KEY_BREAK 0x101 /* Not on PC KBD */ 42 #endif 43 #ifndef KEY_DOWN 44 #define KEY_DOWN 0x102 /* Down arrow key */ 45 #endif 46 #ifndef KEY_UP 47 #define KEY_UP 0x103 /* Up arrow key */ 48 #endif 49 #ifndef KEY_LEFT 50 #define KEY_LEFT 0x104 /* Left arrow key */ 51 #endif 52 #ifndef KEY_RIGHT 53 #define KEY_RIGHT 0x105 /* Right arrow key */ 54 #endif 55 #ifndef KEY_HOME 56 #define KEY_HOME 0x106 /* home key */ 57 #endif 58 #ifndef KEY_BACKSPACE 59 #define KEY_BACKSPACE 0x107 /* not on pc */ 60 #endif 61 #ifndef KEY_F0 62 #define KEY_F0 0x108 /* function keys. space for */ 63 #define KEY_F(n) (KEY_F0+(n))/* 64 keys are reserved. */ 64 #endif 65 #ifndef KEY_DL 66 #define KEY_DL 0x148 /* not on pc */ 67 #endif 68 #ifndef KEY_IL 69 #define KEY_IL 0x149 /* insert line */ 70 #endif 71 #ifndef KEY_DC 72 #define KEY_DC 0x14a /* delete character */ 73 #endif 74 #ifndef KEY_IC 75 #define KEY_IC 0x14b /* insert char or enter ins mode */ 76 #endif 77 #ifndef KEY_EIC 78 #define KEY_EIC 0x14c /* exit insert char mode */ 79 #endif 80 #ifndef KEY_CLEAR 81 #define KEY_CLEAR 0x14d /* clear screen */ 82 #endif 83 #ifndef KEY_EOS 84 #define KEY_EOS 0x14e /* clear to end of screen */ 85 #endif 86 #ifndef KEY_EOL 87 #define KEY_EOL 0x14f /* clear to end of line */ 88 #endif 89 #ifndef KEY_SF 90 #define KEY_SF 0x150 /* scroll 1 line forward */ 91 #endif 92 #ifndef KEY_SR 93 #define KEY_SR 0x151 /* scroll 1 line back (reverse) */ 94 #endif 95 #ifndef KEY_NPAGE 96 #define KEY_NPAGE 0x152 /* next page */ 97 #endif 98 #ifndef KEY_PPAGE 99 #define KEY_PPAGE 0x153 /* previous page */ 100 #endif 101 #ifndef KEY_STAB 102 #define KEY_STAB 0x154 /* set tab */ 103 #endif 104 #ifndef KEY_CTAB 105 #define KEY_CTAB 0x155 /* clear tab */ 106 #endif 107 #ifndef KEY_CATAB 108 #define KEY_CATAB 0x156 /* clear all tabs */ 109 #endif 110 #ifndef KEY_ENTER 111 #define KEY_ENTER 0x157 /* enter or send (unreliable) */ 112 #endif 113 #ifndef KEY_SRESET 114 #define KEY_SRESET 0x158 /* soft/reset (partial/unreliable)*/ 115 #endif 116 #ifndef KEY_RESET 117 #define KEY_RESET 0x159 /* reset/hard reset (unreliable) */ 118 #endif 119 #ifndef KEY_PRINT 120 #define KEY_PRINT 0x15a /* print/copy */ 121 #endif 122 #ifndef KEY_LL 123 #define KEY_LL 0x15b /* home down/bottom (lower left) */ 124 #endif 125 #ifndef KEY_ABORT 126 #define KEY_ABORT 0x15c /* abort/terminate key (any) */ 127 #endif 128 #ifndef KEY_SHELP 129 #define KEY_SHELP 0x15d /* short help */ 130 #endif 131 #ifndef KEY_LHELP 132 #define KEY_LHELP 0x15e /* long help */ 133 #endif 134 #ifndef KEY_BTAB 135 #define KEY_BTAB 0x15f /* Back tab key */ 136 #endif 137 #ifndef KEY_BEG 138 #define KEY_BEG 0x160 /* beg(inning) key */ 139 #endif 140 #ifndef KEY_CANCEL 141 #define KEY_CANCEL 0x161 /* cancel key */ 142 #endif 143 #ifndef KEY_CLOSE 144 #define KEY_CLOSE 0x162 /* close key */ 145 #endif 146 #ifndef KEY_COMMAND 147 #define KEY_COMMAND 0x163 /* cmd (command) key */ 148 #endif 149 #ifndef KEY_COPY 150 #define KEY_COPY 0x164 /* copy key */ 151 #endif 152 #ifndef KEY_CREATE 153 #define KEY_CREATE 0x165 /* create key */ 154 #endif 155 #ifndef KEY_END 156 #define KEY_END 0x166 /* end key */ 157 #endif 158 #ifndef KEY_EXIT 159 #define KEY_EXIT 0x167 /* exit key */ 160 #endif 161 #ifndef KEY_FIND 162 #define KEY_FIND 0x168 /* find key */ 163 #endif 164 #ifndef KEY_HELP 165 #define KEY_HELP 0x169 /* help key */ 166 #endif 167 #ifndef KEY_MARK 168 #define KEY_MARK 0x16a /* mark key */ 169 #endif 170 #ifndef KEY_MESSAGE 171 #define KEY_MESSAGE 0x16b /* message key */ 172 #endif 173 #ifndef KEY_MOVE 174 #define KEY_MOVE 0x16c /* move key */ 175 #endif 176 #ifndef KEY_NEXT 177 #define KEY_NEXT 0x16d /* next object key */ 178 #endif 179 #ifndef KEY_OPEN 180 #define KEY_OPEN 0x16e /* open key */ 181 #endif 182 #ifndef KEY_OPTIONS 183 #define KEY_OPTIONS 0x16f /* options key */ 184 #endif 185 #ifndef KEY_PREVIOUS 186 #define KEY_PREVIOUS 0x170 /* previous object key */ 187 #endif 188 #ifndef KEY_REDO 189 #define KEY_REDO 0x171 /* redo key */ 190 #endif 191 #ifndef KEY_REFERENCE 192 #define KEY_REFERENCE 0x172 /* ref(erence) key */ 193 #endif 194 #ifndef KEY_REFRESH 195 #define KEY_REFRESH 0x173 /* refresh key */ 196 #endif 197 #ifndef KEY_REPLACE 198 #define KEY_REPLACE 0x174 /* replace key */ 199 #endif 200 #ifndef KEY_RESTART 201 #define KEY_RESTART 0x175 /* restart key */ 202 #endif 203 #ifndef KEY_RESUME 204 #define KEY_RESUME 0x176 /* resume key */ 205 #endif 206 #ifndef KEY_SAVE 207 #define KEY_SAVE 0x177 /* save key */ 208 #endif 209 #ifndef KEY_SBEG 210 #define KEY_SBEG 0x178 /* shifted beginning key */ 211 #endif 212 #ifndef KEY_SCANCEL 213 #define KEY_SCANCEL 0x179 /* shifted cancel key */ 214 #endif 215 #ifndef KEY_SCOMMAND 216 #define KEY_SCOMMAND 0x17a /* shifted command key */ 217 #endif 218 #ifndef KEY_SCOPY 219 #define KEY_SCOPY 0x17b /* shifted copy key */ 220 #endif 221 #ifndef KEY_SCREATE 222 #define KEY_SCREATE 0x17c /* shifted create key */ 223 #endif 224 #ifndef KEY_SDC 225 #define KEY_SDC 0x17d /* shifted delete char key */ 226 #endif 227 #ifndef KEY_SDL 228 #define KEY_SDL 0x17e /* shifted delete line key */ 229 #endif 230 #ifndef KEY_SELECT 231 #define KEY_SELECT 0x17f /* select key */ 232 #endif 233 #ifndef KEY_SEND 234 #define KEY_SEND 0x180 /* shifted end key */ 235 #endif 236 #ifndef KEY_SEOL 237 #define KEY_SEOL 0x181 /* shifted clear line key */ 238 #endif 239 #ifndef KEY_SEXIT 240 #define KEY_SEXIT 0x182 /* shifted exit key */ 241 #endif 242 #ifndef KEY_SFIND 243 #define KEY_SFIND 0x183 /* shifted find key */ 244 #endif 245 #ifndef KEY_SHOME 246 #define KEY_SHOME 0x184 /* shifted home key */ 247 #endif 248 #ifndef KEY_SIC 249 #define KEY_SIC 0x185 /* shifted input key */ 250 #endif 251 #ifndef KEY_SLEFT 252 #define KEY_SLEFT 0x187 /* shifted left arrow key */ 253 #endif 254 #ifndef KEY_SMESSAGE 255 #define KEY_SMESSAGE 0x188 /* shifted message key */ 256 #endif 257 #ifndef KEY_SMOVE 258 #define KEY_SMOVE 0x189 /* shifted move key */ 259 #endif 260 #ifndef KEY_SNEXT 261 #define KEY_SNEXT 0x18a /* shifted next key */ 262 #endif 263 #ifndef KEY_SOPTIONS 264 #define KEY_SOPTIONS 0x18b /* shifted options key */ 265 #endif 266 #ifndef KEY_SPREVIOUS 267 #define KEY_SPREVIOUS 0x18c /* shifted prev key */ 268 #endif 269 #ifndef KEY_SPRINT 270 #define KEY_SPRINT 0x18d /* shifted print key */ 271 #endif 272 #ifndef KEY_SREDO 273 #define KEY_SREDO 0x18e /* shifted redo key */ 274 #endif 275 #ifndef KEY_SREPLACE 276 #define KEY_SREPLACE 0x18f /* shifted replace key */ 277 #endif 278 #ifndef KEY_SRIGHT 279 #define KEY_SRIGHT 0x190 /* shifted right arrow */ 280 #endif 281 #ifndef KEY_SRSUME 282 #define KEY_SRSUME 0x191 /* shifted resume key */ 283 #endif 284 #ifndef KEY_SSAVE 285 #define KEY_SSAVE 0x192 /* shifted save key */ 286 #endif 287 #ifndef KEY_SSUSPEND 288 #define KEY_SSUSPEND 0x193 /* shifted suspend key */ 289 #endif 290 #ifndef KEY_SUNDO 291 #define KEY_SUNDO 0x194 /* shifted undo key */ 292 #endif 293 #ifndef KEY_SUSPEND 294 #define KEY_SUSPEND 0x195 /* suspend key */ 295 #endif 296 #ifndef KEY_UNDO 297 #define KEY_UNDO 0x196 /* undo key */ 298 #endif 299 #ifndef KEY_A1 300 #define KEY_A1 0x197 /* Upper left of keypad */ 301 #endif 302 #ifndef KEY_A2 303 #define KEY_A2 0x198 /* Upper centre of keypad */ 304 #endif 305 #ifndef KEY_A3 306 #define KEY_A3 0x199 /* Upper right of keypad */ 307 #endif 308 #ifndef KEY_B1 309 #define KEY_B1 0x19a /* Middle left of keypad */ 310 #endif 311 #ifndef KEY_B2 312 #define KEY_B2 0x19b /* Middle centre of keypad */ 313 #endif 314 #ifndef KEY_B3 315 #define KEY_B3 0x19c /* Middle right of keypad */ 316 #endif 317 #ifndef KEY_C1 318 #define KEY_C1 0x19d /* Lower left of keypad */ 319 #endif 320 #ifndef KEY_C2 321 #define KEY_C2 0x19e /* Lower centre of keypad */ 322 #endif 323 #ifndef KEY_C3 324 #define KEY_C3 0x19f /* Lower right of keypad */ 325 #endif 326 #ifndef KEY_MAX 327 #define KEY_MAX 0xfff /* Maximum curses key */ 328 #endif 329 330 #define KEY_DELETE 127 331 332 #if !defined(DOS) && !defined(OS2) && !defined(USE_XCURSES) && !defined(WIN32) 333 334 /* vt220 special keys */ 335 336 #define CTL_LEFT 0x302 337 #define CTL_RIGHT 0x303 338 #define CTL_UP 0x304 339 #define CTL_DOWN 0x305 340 #define CTL_HOME 0x306 341 #define CTL_END 0x307 342 #define CTL_PGUP 0x308 343 #define CTL_PGDN 0x309 344 345 # ifndef KEY_RETURN 346 # define KEY_RETURN KEY_ENTER 347 # endif 348 349 # ifndef KEY_NUMENTER 350 # define KEY_NUMENTER KEY_ENTER 351 # endif 352 353 #endif 354 355 #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32) 356 /* normal characters */ 357 #define KEY_a 0x61 358 #define KEY_b 0x62 359 #define KEY_c 0x63 360 #define KEY_d 0x64 361 #define KEY_e 0x65 362 #define KEY_f 0x66 363 #define KEY_g 0x67 364 #define KEY_h 0x68 365 #define KEY_i 0x69 366 #define KEY_j 0x6a 367 #define KEY_k 0x6b 368 #define KEY_l 0x6c 369 #define KEY_m 0x6d 370 #define KEY_n 0x6e 371 #define KEY_o 0x6f 372 #define KEY_p 0x70 373 #define KEY_q 0x71 374 #define KEY_r 0x72 375 #define KEY_s 0x73 376 #define KEY_t 0x74 377 #define KEY_u 0x75 378 #define KEY_v 0x76 379 #define KEY_w 0x77 380 #define KEY_x 0x78 381 #define KEY_y 0x79 382 #define KEY_z 0x7a 383 #define KEY_0 0x30 384 #define KEY_1 0x31 385 #define KEY_2 0x32 386 #define KEY_3 0x33 387 #define KEY_4 0x34 388 #define KEY_5 0x35 389 #define KEY_6 0x36 390 #define KEY_7 0x37 391 #define KEY_8 0x38 392 #define KEY_9 0x39 393 #define KEY_BQUOTE 0x60 394 #define KEY_MINUS 0x2d 395 #define KEY_EQUAL 0x3d 396 #define KEY_LBRACKET 0x5b 397 #define KEY_RBRACKET 0x5d 398 #define KEY_BSLASH 0x5c 399 #define KEY_SEMICOLON 0x3b 400 #define KEY_FQUOTE 0x27 401 #define KEY_COMMA 0x2c 402 #define KEY_STOP 0x2e 403 #define KEY_FSLASH 0x2f 404 #define KEY_SPACE 0x20 405 #define KEY_RETURN 0xd 406 #define KEY_TAB 0x9 407 #define KEY_BKSP 0x8 408 #define KEY_PGUP KEY_PPAGE 409 #define KEY_PGDN KEY_NPAGE 410 #define KEY_CURU KEY_UP 411 #define KEY_CURD KEY_DOWN 412 #define KEY_CURL KEY_LEFT 413 #define KEY_CURR KEY_RIGHT 414 #define KEY_INS KEY_IC 415 #define KEY_DEL KEY_DC 416 #define KEY_NUMENTER PADENTER 417 /* shifted characters */ 418 #define KEY_S_a 0x41 419 #define KEY_S_b 0x42 420 #define KEY_S_c 0x43 421 #define KEY_S_d 0x44 422 #define KEY_S_e 0x45 423 #define KEY_S_f 0x46 424 #define KEY_S_g 0x47 425 #define KEY_S_h 0x48 426 #define KEY_S_i 0x49 427 #define KEY_S_j 0x4a 428 #define KEY_S_k 0x4b 429 #define KEY_S_l 0x4c 430 #define KEY_S_m 0x4d 431 #define KEY_S_n 0x4e 432 #define KEY_S_o 0x4f 433 #define KEY_S_p 0x50 434 #define KEY_S_q 0x51 435 #define KEY_S_r 0x52 436 #define KEY_S_s 0x53 437 #define KEY_S_t 0x54 438 #define KEY_S_u 0x55 439 #define KEY_S_v 0x56 440 #define KEY_S_w 0x57 441 #define KEY_S_x 0x58 442 #define KEY_S_y 0x59 443 #define KEY_S_z 0x5a 444 #define KEY_S_0 0x29 445 #define KEY_S_1 0x21 446 #define KEY_S_2 0x40 447 #define KEY_S_3 0x23 448 #define KEY_S_4 0x24 449 #define KEY_S_5 0x25 450 #define KEY_S_6 0x5e 451 #define KEY_S_7 0x26 452 #define KEY_S_8 0x2a 453 #define KEY_S_9 0x28 454 #define KEY_S_BQUOTE 0x7e 455 #define KEY_S_MINUS 0x5f 456 #define KEY_S_EQUAL 0x2b 457 #define KEY_S_LBRACKET 0x7b 458 #define KEY_S_RBRACKET 0x7d 459 #define KEY_S_BSLASH 0x7c 460 #define KEY_S_SEMICOLON 0x3a 461 #define KEY_S_FQUOTE 0x22 462 #define KEY_S_COMMA 0x3c 463 #define KEY_S_STOP 0x3e 464 #define KEY_S_FSLASH 0x3f 465 #define KEY_S_TAB KEY_BTAB 466 #define KEY_S_CURU KEY_SUP 467 #define KEY_S_CURD KEY_SDOWN 468 #define KEY_S_INS KEY_SIC 469 #define KEY_S_DEL KEY_SDC 470 #define KEY_S_NUMCENTER KEY_5 471 /* control characters */ 472 /* Control-A to Control-Z at end */ 473 #define KEY_C_2 0x0 474 #define KEY_C_6 0x1e 475 #define KEY_C_MINUS 0x1f 476 #define KEY_C_LBRACKET 0x1b 477 #define KEY_C_RBRACKET 0x1d 478 #define KEY_C_BSLASH 0x1c 479 #endif 480 481 /* special definition for UNIX systems */ 482 #ifndef KEY_RETURN 483 #define KEY_RETURN 0xd 484 #endif 485 486 #define CSI 0233 487 #define KEY_ESC 0x1b 488 489 /* control alpha keys */ 490 #define KEY_C_a 0x1 491 #define KEY_C_b 0x2 492 #define KEY_C_c 0x3 493 #define KEY_C_d 0x4 494 #define KEY_C_e 0x5 495 #define KEY_C_f 0x6 496 #define KEY_C_g 0x7 497 #define KEY_C_h 0x8 498 #define KEY_C_i 0x9 499 #define KEY_C_j 0xa 500 #define KEY_C_k 0xb 501 #define KEY_C_l 0xc 502 #define KEY_C_m 0xd 503 #define KEY_C_n 0xe 504 #define KEY_C_o 0xf 505 #define KEY_C_p 0x10 506 #define KEY_C_q 0x11 507 #define KEY_C_r 0x12 508 #define KEY_C_s 0x13 509 #define KEY_C_t 0x14 510 #define KEY_C_u 0x15 511 #define KEY_C_v 0x16 512 #define KEY_C_w 0x17 513 #define KEY_C_x 0x18 514 #define KEY_C_y 0x19 515 #define KEY_C_z 0x1a 516 517 /* unshifted function keys */ 518 #define KEY_F1 KEY_F(1) 519 #define KEY_F2 KEY_F(2) 520 #define KEY_F3 KEY_F(3) 521 #define KEY_F4 KEY_F(4) 522 #define KEY_F5 KEY_F(5) 523 #define KEY_F6 KEY_F(6) 524 #define KEY_F7 KEY_F(7) 525 #define KEY_F8 KEY_F(8) 526 #define KEY_F9 KEY_F(9) 527 #define KEY_F10 KEY_F(10) 528 #define KEY_F11 KEY_F(11) 529 #define KEY_F12 KEY_F(12) 530 531 /* shifted function keys */ 532 #define KEY_S_F1 KEY_F(13) 533 #define KEY_S_F2 KEY_F(14) 534 #define KEY_S_F3 KEY_F(15) 535 #define KEY_S_F4 KEY_F(16) 536 #define KEY_S_F5 KEY_F(17) 537 #define KEY_S_F6 KEY_F(18) 538 #define KEY_S_F7 KEY_F(19) 539 #define KEY_S_F8 KEY_F(20) 540 #define KEY_S_F9 KEY_F(21) 541 #define KEY_S_F10 KEY_F(22) 542 #define KEY_S_F11 KEY_F(23) 543 #define KEY_S_F12 KEY_F(24) 544 545 /* control function keys */ 546 #define KEY_C_F1 KEY_F(25) 547 #define KEY_C_F2 KEY_F(26) 548 #define KEY_C_F3 KEY_F(27) 549 #define KEY_C_F4 KEY_F(28) 550 #define KEY_C_F5 KEY_F(29) 551 #define KEY_C_F6 KEY_F(30) 552 #define KEY_C_F7 KEY_F(31) 553 #define KEY_C_F8 KEY_F(32) 554 #define KEY_C_F9 KEY_F(33) 555 #define KEY_C_F10 KEY_F(34) 556 #define KEY_C_F11 KEY_F(35) 557 #define KEY_C_F12 KEY_F(36) 558 559 /* alt function keys */ 560 #define KEY_A_F1 KEY_F(37) 561 #define KEY_A_F2 KEY_F(38) 562 #define KEY_A_F3 KEY_F(39) 563 #define KEY_A_F4 KEY_F(40) 564 #define KEY_A_F5 KEY_F(41) 565 #define KEY_A_F6 KEY_F(42) 566 #define KEY_A_F7 KEY_F(43) 567 #define KEY_A_F8 KEY_F(44) 568 #define KEY_A_F9 KEY_F(45) 569 #define KEY_A_F10 KEY_F(46) 570 #define KEY_A_F11 KEY_F(47) 571 #define KEY_A_F12 KEY_F(48) 572 573 /* remaining curses function keys */ 574 #define KEY_F13 KEY_F(49) 575 #define KEY_F14 KEY_F(50) 576 #define KEY_F15 KEY_F(51) 577 #define KEY_F16 KEY_F(52) 578 #define KEY_F17 KEY_F(53) 579 #define KEY_F18 KEY_F(54) 580 #define KEY_F19 KEY_F(55) 581 #define KEY_F20 KEY_F(56) 582 #define KEY_S_F13 KEY_F(57) 583 #define KEY_S_F14 KEY_F(58) 584 #define KEY_S_F15 KEY_F(59) 585 #define KEY_S_F16 KEY_F(60) 586 #define KEY_S_F17 KEY_F(61) 587 #define KEY_S_F18 KEY_F(62) 588 #define KEY_S_F19 KEY_F(63) 589 590 #define KEY_Find KEY_FIND 591 #define KEY_InsertHere KEY_IC 592 #define KEY_Remove KEY_REPLACE 593 #define KEY_Select KEY_SELECT 594 #define KEY_PrevScreen KEY_PPAGE 595 #define KEY_NextScreen KEY_NPAGE 596 #define KEY_PF1 0x350 597 #define KEY_PF2 0x351 598 #define KEY_PF3 0x352 599 #define KEY_PF4 0x353 600 #define KEY_PadComma 0x354 601 #define KEY_PadMinus 0x355 602 #define KEY_PadPeriod 0x356 603 #define KEY_PadPlus 0x357 604 #define KEY_PadStar 0x358 605 #define KEY_PadSlash 0x359 606 607 #ifdef PAD0 608 # define KEY_Pad0 PAD0 609 #else 610 # define KEY_Pad0 0x360 611 #endif 612 613 /* Mouse button definitions */ 614 615 #define KEY_PB1 0x400 616 #define KEY_PB2 0x401 617 #define KEY_PB3 0x402 618 #define KEY_S_PB1 0x403 619 #define KEY_S_PB2 0x404 620 #define KEY_S_PB3 0x405 621 #define KEY_C_PB1 0x406 622 #define KEY_C_PB2 0x407 623 #define KEY_C_PB3 0x408 624 #define KEY_A_PB1 0x409 625 #define KEY_A_PB2 0x40a 626 #define KEY_A_PB3 0x40b 627 628 #define KEY_RB1 0x410 629 #define KEY_RB2 0x411 630 #define KEY_RB3 0x412 631 #define KEY_S_RB1 0x413 632 #define KEY_S_RB2 0x414 633 #define KEY_S_RB3 0x415 634 #define KEY_C_RB1 0x416 635 #define KEY_C_RB2 0x417 636 #define KEY_C_RB3 0x418 637 #define KEY_A_RB1 0x419 638 #define KEY_A_RB2 0x41a 639 #define KEY_A_RB3 0x41b 640 641 #define KEY_DB1 0x420 642 #define KEY_DB2 0x421 643 #define KEY_DB3 0x422 644 #define KEY_S_DB1 0x423 645 #define KEY_S_DB2 0x424 646 #define KEY_S_DB3 0x425 647 #define KEY_C_DB1 0x426 648 #define KEY_C_DB2 0x427 649 #define KEY_C_DB3 0x428 650 #define KEY_A_DB1 0x429 651 #define KEY_A_DB2 0x42a 652 #define KEY_A_DB3 0x42b 653 654