| /***************************************************************************** |
| * Copyright (c) 2013 IBM Corporation |
| * All rights reserved. |
| * This program and the accompanying materials |
| * are made available under the terms of the BSD License |
| * which accompanies this distribution, and is available at |
| * http://www.opensource.org/licenses/bsd-license.php |
| * |
| * Contributors: |
| * IBM Corporation - initial implementation |
| *****************************************************************************/ |
| |
| #include <stdint.h> |
| |
| /***********************************/ |
| /* Keycodes for US Keyboard */ |
| /* - no control keys pressed - */ |
| /***********************************/ |
| const uint8_t keycodes_std_US[] = { |
| 0, /* 0 00 Reserved (no event indicated) */ |
| 0, /* 1 01 Keyboard ErrorRollOver */ |
| 0, /* 2 02 Keyboard POSTFail */ |
| 0, /* 3 03 Keyboard ErrorUndefined */ |
| 'a', /* 4 04 Keyboard a and A 31 */ |
| 'b', /* 5 05 Keyboard b and B 50 */ |
| 'c', /* 6 06 Keyboard c and C 48 */ |
| 'd', /* 7 07 Keyboard d and D 33 */ |
| 'e', /* 8 08 Keyboard e and E 19 */ |
| 'f', /* 9 09 Keyboard f and F 34 */ |
| 'g', /* 10 0A Keyboard g and G 35 */ |
| 'h', /* 11 0B Keyboard h and H 36 */ |
| 'i', /* 12 0C Keyboard i and I 24 */ |
| 'j', /* 13 0D Keyboard j and J 37 */ |
| 'k', /* 14 0E Keyboard k and K 38 */ |
| 'l', /* 15 0F Keyboard l and L 39 */ |
| 'm', /* 16 10 Keyboard m and M 52 */ |
| 'n', /* 17 11 Keyboard n and N 51 */ |
| 'o', /* 18 12 Keyboard o and O 25 */ |
| 'p', /* 19 13 Keyboard p and P 26 */ |
| 'q', /* 20 14 Keyboard q and Q 17 */ |
| 'r', /* 21 15 Keyboard r and R 20 */ |
| 's', /* 22 16 Keyboard s and S 32 */ |
| 't', /* 23 17 Keyboard t and T 21 */ |
| 'u', /* 24 18 Keyboard u and U 23 */ |
| 'v', /* 25 19 Keyboard v and V 49 */ |
| 'w', /* 26 1A Keyboard w and W 18 */ |
| 'x', /* 27 1B Keyboard x and X 47 */ |
| 'y', /* 28 1C Keyboard y and Y 22 */ |
| 'z', /* 29 1D Keyboard z and Z 46 */ |
| '1', /* 30 1E Keyboard 1 and ! 2 */ |
| '2', /* 31 1F Keyboard 2 and @ 3 */ |
| '3', /* 32 20 Keyboard 3 and # 4 */ |
| '4', /* 33 21 Keyboard 4 and $ 5 */ |
| '5', /* 34 22 Keyboard 5 and % 6 */ |
| '6', /* 35 23 Keyboard 6 and ^ 7 */ |
| '7', /* 36 24 Keyboard 7 and & 8 */ |
| '8', /* 37 25 Keyboard 8 and * 9 */ |
| '9', /* 38 26 Keyboard 9 and ( 10 */ |
| '0', /* 39 27 Keyboard 0 and ) 11 */ |
| 13, /* 40 28 Keyboard Return (ENTER) 43 */ |
| 27, /* 41 29 Keyboard ESCAPE 110 */ |
| 8, /* 42 2A Keyboard DELETE (BS) 15 */ |
| 9, /* 43 2B Keyboard Tab 16 */ |
| ' ', /* 44 2C Keyboard Spacebar 61 */ |
| '-', /* 45 2D Keyboard - and (underscore) 12 */ |
| '=', /* 46 2E Keyboard = and + 13 */ |
| '[', /* 47 2F Keyboard [ and { 27 */ |
| ']', /* 48 30 Keyboard ] and } 28 */ |
| '\\', /* 49 31 Keyboard \ and | 29 */ |
| '\\', /* 50 32 Keyboard \ and | 42 */ |
| ';', /* 51 33 Keyboard ; and : 40 */ |
| 39, /* 52 34 Keyboard ' and " 41 */ |
| 96, /* 53 35 Keyboard Grave Accent and Tilde 1 */ |
| ',', /* 54 36 Keyboard , and < 53 */ |
| '.', /* 55 37 Keyboard . and > 54 */ |
| '/', /* 56 38 Keyboard / and ? 55 */ |
| 0, /* 57 39 Keyboard Caps Lock 30 */ |
| 0, /* 58 3A Keyboard F1 112 */ |
| 0, /* 59 3B Keyboard F2 113 */ |
| 0, /* 60 3C Keyboard F3 114 */ |
| 0, /* 61 3D Keyboard F4 115 */ |
| 0, /* 62 3E Keyboard F5 116 */ |
| 0, /* 63 3F Keyboard F6 117 */ |
| 0, /* 64 40 Keyboard F7 118 */ |
| 0, /* 65 41 Keyboard F8 119 */ |
| 0, /* 66 42 Keyboard F9 120 */ |
| 0, /* 67 43 Keyboard F10 121 */ |
| 0, /* 68 44 Keyboard F11 122 */ |
| 0, /* 69 45 Keyboard F12 123 */ |
| 0, /* 70 46 Keyboard PrintScreen 124 */ |
| 0, /* 71 47 Keyboard Scroll Lock 125 */ |
| 0, /* 72 48 Keyboard Pause 126 */ |
| 0, /* 73 49 Keyboard Insert 75 */ |
| 0, /* 74 4A Keyboard Home 80 */ |
| 0, /* 75 4B Keyboard PageUp 85 */ |
| 0, /* 76 4C Keyboard Delete Forward 76 */ |
| 0, /* 77 4D Keyboard End 81 */ |
| 0, /* 78 4E Keyboard PageDown 86 */ |
| 0, /* 79 4F Keyboard RightArrow 89 */ |
| 0, /* 80 50 Keyboard LeftArrow 79 */ |
| 0, /* 81 51 Keyboard DownArrow 84 */ |
| 0, /* 82 52 Keyboard UpArrow 83 */ |
| 0, /* 83 53 Keypad Num Lock and Clear 90 */ |
| '/', /* 84 54 Keypad / 95 */ |
| '*', /* 85 55 Keypad * 100 */ |
| '-', /* 86 56 Keypad - 105 */ |
| '+', /* 87 57 Keypad + 106 */ |
| 13, /* 88 58 Keypad ENTER 108 */ |
| '1', /* 89 59 Keypad 1 and End 93 */ |
| '2', /* 90 5A Keypad 2 and Down Arrow 98 */ |
| '3', /* 91 5B Keypad 3 and PageDn 103 */ |
| '4', /* 92 5C Keypad 4 and Left Arrow 92 */ |
| '5', /* 93 5D Keypad 5 97 */ |
| '6', /* 94 5E Keypad 6 and Right Arrow 102 */ |
| '7', /* 95 5F Keypad 7 and Home 91 */ |
| '8', /* 96 60 Keypad 8 and Up Arrow 96 */ |
| '9', /* 97 61 Keypad 9 and PageUp 101 */ |
| '0', /* 98 62 Keypad 0 and Insert 99 */ |
| '.', /* 99 63 Keypad . and Delete 104 */ |
| '\\' /* 100 64 Keyboard Non-US \ and | 45 */ |
| }; |
| |
| /***********************************/ |
| /* Keycodes for US Keyboard */ |
| /* - SHIFT-KEY pressed - */ |
| /***********************************/ |
| const uint8_t keycodes_shift_US[] = { |
| 0, /* 0 00 Reserved (no event indicated) */ |
| 0, /* 1 01 Keyboard ErrorRollOver */ |
| 0, /* 2 02 Keyboard POSTFail */ |
| 0, /* 3 03 Keyboard ErrorUndefined */ |
| 'A', /* 4 04 Keyboard a and A 31 */ |
| 'B', /* 5 05 Keyboard b and B 50 */ |
| 'C', /* 6 06 Keyboard c and C 48 */ |
| 'D', /* 7 07 Keyboard d and D 33 */ |
| 'E', /* 8 08 Keyboard e and E 19 */ |
| 'F', /* 9 09 Keyboard f and F 34 */ |
| 'G', /* 10 0A Keyboard g and G 35 */ |
| 'H', /* 11 0B Keyboard h and H 36 */ |
| 'I', /* 12 0C Keyboard i and I 24 */ |
| 'J', /* 13 0D Keyboard j and J 37 */ |
| 'K', /* 14 0E Keyboard k and K 38 */ |
| 'L', /* 15 0F Keyboard l and L 39 */ |
| 'M', /* 16 10 Keyboard m and M 52 */ |
| 'N', /* 17 11 Keyboard n and N 51 */ |
| 'O', /* 18 12 Keyboard o and O 25 */ |
| 'P', /* 19 13 Keyboard p and P 26 */ |
| 'Q', /* 20 14 Keyboard q and Q 17 */ |
| 'R', /* 21 15 Keyboard r and R 20 */ |
| 'S', /* 22 16 Keyboard s and S 32 */ |
| 'T', /* 23 17 Keyboard t and T 21 */ |
| 'U', /* 24 18 Keyboard u and U 23 */ |
| 'V', /* 25 19 Keyboard v and V 49 */ |
| 'W', /* 26 1A Keyboard w and W 18 */ |
| 'X', /* 27 1B Keyboard x and X 47 */ |
| 'Y', /* 28 1C Keyboard y and Y 22 */ |
| 'Z', /* 29 1D Keyboard z and Z 46 */ |
| '!', /* 30 1E Keyboard 1 and ! 2 */ |
| '@', /* 31 1F Keyboard 2 and @ 3 */ |
| '#', /* 32 20 Keyboard 3 and # 4 */ |
| '$', /* 33 21 Keyboard 4 and $ 5 */ |
| '%', /* 34 22 Keyboard 5 and % 6 */ |
| '^', /* 35 23 Keyboard 6 and ^ 7 */ |
| '&', /* 36 24 Keyboard 7 and & 8 */ |
| '*', /* 37 25 Keyboard 8 and * 9 */ |
| '(', /* 38 26 Keyboard 9 and ( 10 */ |
| ')', /* 39 27 Keyboard 0 and ) 11 */ |
| 13, /* 40 28 Keyboard Return (ENTER) 43 */ |
| 27, /* 41 29 Keyboard ESCAPE 110 */ |
| 8, /* 42 2A Keyboard DELETE (BS) 15 */ |
| 9, /* 43 2B Keyboard Tab 16 */ |
| ' ', /* 44 2C Keyboard Spacebar 61 */ |
| '_', /* 45 2D Keyboard - and (underscore) 12 */ |
| '+', /* 46 2E Keyboard = and + 13 */ |
| '{', /* 47 2F Keyboard [ and { 27 */ |
| '}', /* 48 30 Keyboard ] and } 28 */ |
| '|', /* 49 31 Keyboard \ and | 29 */ |
| '|', /* 50 32 Keyboard \ and | 42 */ |
| ':', /* 51 33 Keyboard ; and : 40 */ |
| '"', /* 52 34 Keyboard ' and " 41 */ |
| '~', /* 53 35 Keyboard Grave Accent and Tilde 1 */ |
| '<', /* 54 36 Keyboard , and < 53 */ |
| '>', /* 55 37 Keyboard . and > 54 */ |
| '?', /* 56 38 Keyboard / and ? 55 */ |
| 0, /* 57 39 Keyboard Caps Lock 30 */ |
| 0, /* 58 3A Keyboard F1 112 */ |
| 0, /* 59 3B Keyboard F2 113 */ |
| 0, /* 60 3C Keyboard F3 114 */ |
| 0, /* 61 3D Keyboard F4 115 */ |
| 0, /* 62 3E Keyboard F5 116 */ |
| 0, /* 63 3F Keyboard F6 117 */ |
| 0, /* 64 40 Keyboard F7 118 */ |
| 0, /* 65 41 Keyboard F8 119 */ |
| 0, /* 66 42 Keyboard F9 120 */ |
| 0, /* 67 43 Keyboard F10 121 */ |
| 0, /* 68 44 Keyboard F11 122 */ |
| 0, /* 69 45 Keyboard F12 123 */ |
| 0, /* 70 46 Keyboard PrintScreen 124 */ |
| 0, /* 71 47 Keyboard Scroll Lock 125 */ |
| 0, /* 72 48 Keyboard Pause 126 */ |
| 48, /* 73 49 Keyboard Insert 75 */ |
| 55, /* 74 4A Keyboard Home 80 */ |
| 57, /* 75 4B Keyboard PageUp 85 */ |
| 46, /* 76 4C Keyboard Delete Forward 76 */ |
| 49, /* 77 4D Keyboard End 81 */ |
| 51, /* 78 4E Keyboard PageDown 86 */ |
| 54, /* 79 4F Keyboard RightArrow 89 */ |
| 52, /* 80 50 Keyboard LeftArrow 79 */ |
| 50, /* 81 51 Keyboard DownArrow 84 */ |
| 56, /* 82 52 Keyboard UpArrow 83 */ |
| 0, /* 83 53 Keypad Num Lock and Clear 90 */ |
| '/', /* 84 54 Keypad / 95 */ |
| '*', /* 85 55 Keypad * 100 */ |
| '-', /* 86 56 Keypad - 105 */ |
| '+', /* 87 57 Keypad + 106 */ |
| 13, /* 88 58 Keypad ENTER 108 */ |
| '1', /* 89 59 Keypad 1 and End 93 */ |
| '2', /* 90 5A Keypad 2 and Down Arrow 98 */ |
| '3', /* 91 5B Keypad 3 and PageDn 103 */ |
| '4', /* 92 5C Keypad 4 and Left Arrow 92 */ |
| '5', /* 93 5D Keypad 5 97 */ |
| '6', /* 94 5E Keypad 6 and Right Arrow 102 */ |
| '7', /* 95 5F Keypad 7 and Home 91 */ |
| '8', /* 96 60 Keypad 8 and Up Arrow 96 */ |
| '9', /* 97 61 Keypad 9 and PageUp 101 */ |
| '0', /* 98 62 Keypad 0 and Insert 99 */ |
| '.', /* 99 63 Keypad . and Delete 104 */ |
| '|' /* 100 64 Keyboard Non-US \ and | 45 */ |
| }; |
| |
| /***********************************/ |
| /* Keycodes for 1 byte translation */ |
| /* - CONTROL-KEY pressed - */ |
| /***********************************/ |
| const uint8_t keycodes_alt_GR[] = { |
| 0, /* 0 00 Reserved (no event indicated) */ |
| 0, /* 1 01 Keyboard ErrorRollOver */ |
| 0, /* 2 02 Keyboard POSTFail */ |
| 0, /* 3 03 Keyboard ErrorUndefined */ |
| 0, /* 4 04 Keyboard a and A 31 */ |
| 0, /* 5 05 Keyboard b and B 50 */ |
| 0, /* 6 06 Keyboard c and C 48 */ |
| 0, /* 7 07 Keyboard d and D 33 */ |
| 0, /* 8 08 Keyboard e and E 19 */ |
| 0, /* 9 09 Keyboard f and F 34 */ |
| 0, /* 10 0A Keyboard g and G 35 */ |
| 0, /* 11 0B Keyboard h and H 36 */ |
| 0, /* 12 0C Keyboard i and I 24 */ |
| 0, /* 13 0D Keyboard j and J 37 */ |
| 0, /* 14 0E Keyboard k and K 38 */ |
| 0, /* 15 0F Keyboard l and L 39 */ |
| 0, /* 16 10 Keyboard m and M 52 */ |
| 0, /* 17 11 Keyboard n and N 51 */ |
| 0, /* 18 12 Keyboard o and O 25 */ |
| 0, /* 19 13 Keyboard p and P 26 */ |
| '@', /* 20 14 Keyboard q and Q 17 */ |
| 0, /* 21 15 Keyboard r and R 20 */ |
| 0, /* 22 16 Keyboard s and S 32 */ |
| 0, /* 23 17 Keyboard t and T 21 */ |
| 0, /* 24 18 Keyboard u and U 23 */ |
| 0, /* 25 19 Keyboard v and V 49 */ |
| 0, /* 26 1A Keyboard w and W 18 */ |
| 0, /* 27 1B Keyboard x and X 47 */ |
| 0, /* 28 1C Keyboard y and Y 22 */ |
| 0, /* 29 1D Keyboard z and Z 46 */ |
| 0, /* 30 1E Keyboard 1 and ! 2 */ |
| 0, /* 31 1F Keyboard 2 and @ 3 */ |
| 0, /* 32 20 Keyboard 3 and # 4 */ |
| 0, /* 33 21 Keyboard 4 and $ 5 */ |
| 0, /* 34 22 Keyboard 5 and % 6 */ |
| 0, /* 35 23 Keyboard 6 and ^ 7 */ |
| '{', /* 36 24 Keyboard 7 and & 8 */ |
| '[', /* 37 25 Keyboard 8 and * 9 */ |
| ']', /* 38 26 Keyboard 9 and ( 10 */ |
| '}', /* 39 27 Keyboard 0 and ) 11 */ |
| 0, /* 40 28 Keyboard Return (ENTER) 43 */ |
| 0, /* 41 29 Keyboard ESCAPE 110 */ |
| 0, /* 42 2A Keyboard DELETE (BS) 15 */ |
| 0, /* 43 2B Keyboard Tab 16 */ |
| 0, /* 44 2C Keyboard Spacebar 61 */ |
| '\\', /* 45 2D Keyboard - and (underscore) 12 */ |
| 0, /* 46 2E Keyboard = and + 13 */ |
| 0, /* 47 2F Keyboard [ and { 27 */ |
| '~', /* 48 30 Keyboard ] and } 28 */ |
| 0, /* 49 31 Keyboard \ and | 29 */ |
| 0, /* 50 32 Keyboard Non-US # and ~ 42 */ |
| 0, /* 51 33 Keyboard ; and : 40 */ |
| 0, /* 52 34 Keyboard ' and " 41 */ |
| 0, /* 53 35 Keyboard Grave Accent and Tilde 1 */ |
| 0, /* 54 36 Keyboard , and < 53 */ |
| 0, /* 55 37 Keyboard . and > 54 */ |
| 0, /* 56 38 Keyboard / and ? 55 */ |
| 0, /* 57 39 Keyboard Caps Lock 30 */ |
| 0, /* 58 3A Keyboard F1 112 */ |
| 0, /* 59 3B Keyboard F2 113 */ |
| 0, /* 60 3C Keyboard F3 114 */ |
| 0, /* 61 3D Keyboard F4 115 */ |
| 0, /* 62 3E Keyboard F5 116 */ |
| 0, /* 63 3F Keyboard F6 117 */ |
| 0, /* 64 40 Keyboard F7 118 */ |
| 0, /* 65 41 Keyboard F8 119 */ |
| 0, /* 66 42 Keyboard F9 120 */ |
| 0, /* 67 43 Keyboard F10 121 */ |
| 0, /* 68 44 Keyboard F11 122 */ |
| 0, /* 69 45 Keyboard F12 123 */ |
| 0, /* 70 46 Keyboard PrintScreen 124 */ |
| 0, /* 71 47 Keyboard Scroll Lock 125 */ |
| 0, /* 72 48 Keyboard Pause 126 */ |
| 0, /* 73 49 Keyboard Insert 75 */ |
| 0, /* 74 4A Keyboard Home 80 */ |
| 0, /* 75 4B Keyboard PageUp 85 */ |
| 0, /* 76 4C Keyboard Delete Forward 76 */ |
| 0, /* 77 4D Keyboard End 81 */ |
| 0, /* 78 4E Keyboard PageDown 86 */ |
| 0, /* 79 4F Keyboard RightArrow 89 */ |
| 0, /* 80 50 Keyboard LeftArrow 79 */ |
| 0, /* 81 51 Keyboard DownArrow 84 */ |
| 0, /* 82 52 Keyboard UpArrow 83 */ |
| 0, /* 83 53 Keypad Num Lock and Clear 90 */ |
| 0, /* 84 54 Keypad / 95 */ |
| 0, /* 85 55 Keypad * 100 */ |
| 0, /* 86 56 Keypad - 105 */ |
| 0, /* 87 57 Keypad + 106 */ |
| 0, /* 88 58 Keypad ENTER 108 */ |
| 0, /* 89 59 Keypad 1 and End 93 */ |
| 0, /* 90 5A Keypad 2 and Down Arrow 98 */ |
| 0, /* 91 5B Keypad 3 and PageDn 103 */ |
| 0, /* 92 5C Keypad 4 and Left Arrow 92 */ |
| 0, /* 93 5D Keypad 5 97 */ |
| 0, /* 94 5E Keypad 6 and Right Arrow 102 */ |
| 0, /* 95 5F Keypad 7 and Home 91 */ |
| 0, /* 96 60 Keypad 8 and Up Arrow 96 */ |
| 0, /* 97 61 Keypad 9 and PageUp 101 */ |
| 0, /* 98 62 Keypad 0 and Insert 99 */ |
| 0, /* 99 63 Keypad . and Delete 104 */ |
| '|' /* 100 64 Keyboard Non-US \ and | 45 */ |
| }; |
| |
| |
| /***********************************/ |
| /* Keycodes for 1 byte translation */ |
| /* - CONTROL-KEY pressed - */ |
| /***********************************/ |
| const uint8_t keycodes_ctrl[] = { |
| 0, /* 0 00 Reserved (no event indicated) */ |
| 0, /* 1 01 Keyboard ErrorRollOver */ |
| 0, /* 2 02 Keyboard POSTFail */ |
| 0, /* 3 03 Keyboard ErrorUndefined */ |
| 1, /* 4 04 Keyboard a and A 31 */ |
| 2, /* 5 05 Keyboard b and B 50 */ |
| 3, /* 6 06 Keyboard c and C 48 */ |
| 4, /* 7 07 Keyboard d and D 33 */ |
| 5, /* 8 08 Keyboard e and E 19 */ |
| 6, /* 9 09 Keyboard f and F 34 */ |
| 7, /* 10 0A Keyboard g and G 35 */ |
| 8, /* 11 0B Keyboard h and H 36 */ |
| 9, /* 12 0C Keyboard i and I 24 */ |
| 10, /* 13 0D Keyboard j and J 37 */ |
| 11, /* 14 0E Keyboard k and K 38 */ |
| 12, /* 15 0F Keyboard l and L 39 */ |
| 13, /* 16 10 Keyboard m and M 52 */ |
| 14, /* 17 11 Keyboard n and N 51 */ |
| 15, /* 18 12 Keyboard o and O 25 */ |
| 16, /* 19 13 Keyboard p and P 26 */ |
| 17, /* 20 14 Keyboard q and Q 17 */ |
| 18, /* 21 15 Keyboard r and R 20 */ |
| 19, /* 22 16 Keyboard s and S 32 */ |
| 20, /* 23 17 Keyboard t and T 21 */ |
| 21, /* 24 18 Keyboard u and U 23 */ |
| 22, /* 25 19 Keyboard v and V 49 */ |
| 23, /* 26 1A Keyboard w and W 18 */ |
| 24, /* 27 1B Keyboard x and X 47 */ |
| 25, /* 28 1C Keyboard y and Y 22 */ |
| 26, /* 29 1D Keyboard z and Z 46 */ |
| 0, /* 30 1E Keyboard 1 and ! 2 */ |
| 0, /* 31 1F Keyboard 2 and @ 3 */ |
| 0, /* 32 20 Keyboard 3 and # 4 */ |
| 0, /* 33 21 Keyboard 4 and $ 5 */ |
| 0, /* 34 22 Keyboard 5 and % 6 */ |
| 0, /* 35 23 Keyboard 6 and ^ 7 */ |
| 0, /* 36 24 Keyboard 7 and & 8 */ |
| 0, /* 37 25 Keyboard 8 and * 9 */ |
| 0, /* 38 26 Keyboard 9 and ( 10 */ |
| 0, /* 39 27 Keyboard 0 and ) 11 */ |
| 0, /* 40 28 Keyboard Return (ENTER) 43 */ |
| 0, /* 41 29 Keyboard ESCAPE 110 */ |
| 0, /* 42 2A Keyboard DELETE (BS) 15 */ |
| 0, /* 43 2B Keyboard Tab 16 */ |
| 0, /* 44 2C Keyboard Spacebar 61 */ |
| 0, /* 45 2D Keyboard - and (underscore) 12 */ |
| 0, /* 46 2E Keyboard = and + 13 */ |
| 0, /* 47 2F Keyboard [ and { 27 */ |
| 0, /* 48 30 Keyboard ] and } 28 */ |
| 0, /* 49 31 Keyboard \ and | 29 */ |
| 0, /* 50 32 Keyboard Non-US # and ~ 42 */ |
| 0, /* 51 33 Keyboard ; and : 40 */ |
| 0, /* 52 34 Keyboard ' and " 41 */ |
| 0, /* 53 35 Keyboard Grave Accent and Tilde 1 */ |
| 0, /* 54 36 Keyboard , and < 53 */ |
| 0, /* 55 37 Keyboard . and > 54 */ |
| 0, /* 56 38 Keyboard / and ? 55 */ |
| 0, /* 57 39 Keyboard Caps Lock 30 */ |
| 0, /* 58 3A Keyboard F1 112 */ |
| 0, /* 59 3B Keyboard F2 113 */ |
| 0, /* 60 3C Keyboard F3 114 */ |
| 0, /* 61 3D Keyboard F4 115 */ |
| 0, /* 62 3E Keyboard F5 116 */ |
| 0, /* 63 3F Keyboard F6 117 */ |
| 0, /* 64 40 Keyboard F7 118 */ |
| 0, /* 65 41 Keyboard F8 119 */ |
| 0, /* 66 42 Keyboard F9 120 */ |
| 0, /* 67 43 Keyboard F10 121 */ |
| 0, /* 68 44 Keyboard F11 122 */ |
| 0, /* 69 45 Keyboard F12 123 */ |
| 0, /* 70 46 Keyboard PrintScreen 124 */ |
| 0, /* 71 47 Keyboard Scroll Lock 125 */ |
| 0, /* 72 48 Keyboard Pause 126 */ |
| 0, /* 73 49 Keyboard Insert 75 */ |
| 0, /* 74 4A Keyboard Home 80 */ |
| 0, /* 75 4B Keyboard PageUp 85 */ |
| 0, /* 76 4C Keyboard Delete Forward 76 */ |
| 0, /* 77 4D Keyboard End 81 */ |
| 0, /* 78 4E Keyboard PageDown 86 */ |
| 0, /* 79 4F Keyboard RightArrow 89 */ |
| 0, /* 80 50 Keyboard LeftArrow 79 */ |
| 0, /* 81 51 Keyboard DownArrow 84 */ |
| 0, /* 82 52 Keyboard UpArrow 83 */ |
| 0, /* 83 53 Keypad Num Lock and Clear 90 */ |
| 0, /* 84 54 Keypad / 95 */ |
| 0, /* 85 55 Keypad * 100 */ |
| 0, /* 86 56 Keypad - 105 */ |
| 0, /* 87 57 Keypad + 106 */ |
| 0, /* 88 58 Keypad ENTER 108 */ |
| 0, /* 89 59 Keypad 1 and End 93 */ |
| 0, /* 90 5A Keypad 2 and Down Arrow 98 */ |
| 0, /* 91 5B Keypad 3 and PageDn 103 */ |
| 0, /* 92 5C Keypad 4 and Left Arrow 92 */ |
| 0, /* 93 5D Keypad 5 97 */ |
| 0, /* 94 5E Keypad 6 and Right Arrow 102 */ |
| 0, /* 95 5F Keypad 7 and Home 91 */ |
| 0, /* 96 60 Keypad 8 and Up Arrow 96 */ |
| 0, /* 97 61 Keypad 9 and PageUp 101 */ |
| 0, /* 98 62 Keypad 0 and Insert 99 */ |
| 0, /* 99 63 Keypad . and Delete 104 */ |
| 0 /* 100 64 Keyboard Non-US \ and | 45 */ |
| }; |