|
|
1.1 ! root 1: /* ! 2: * UAE - The Un*x Amiga Emulator ! 3: * ! 4: * Support for mapping raw keys codes to platform-independent ! 5: * UAE key codes on AmigaOS and clones. ! 6: * ! 7: * Copyright 2004-2005 Richard Drummond ! 8: */ ! 9: ! 10: #include "sysconfig.h" ! 11: #include "sysdeps.h" ! 12: ! 13: #ifdef TARGET_AMIGAOS ! 14: ! 15: #include "options.h" ! 16: #include "inputdevice.h" ! 17: #include "keymap.h" ! 18: #include "keymap_common.h" ! 19: ! 20: /* ! 21: * Raw scan codes ! 22: */ ! 23: ! 24: /* 'Classic' Amiga keys */ ! 25: ! 26: #define RAWKEY_ESCAPE 0x45 ! 27: ! 28: #define RAWKEY_F1 0x50 ! 29: #define RAWKEY_F2 0x51 ! 30: #define RAWKEY_F3 0x52 ! 31: #define RAWKEY_F4 0x53 ! 32: #define RAWKEY_F5 0x54 ! 33: #define RAWKEY_F6 0x55 ! 34: #define RAWKEY_F7 0x56 ! 35: #define RAWKEY_F8 0x57 ! 36: #define RAWKEY_F9 0x58 ! 37: #define RAWKEY_F10 0x59 ! 38: ! 39: #define RAWKEY_1 0x01 ! 40: #define RAWKEY_2 0x02 ! 41: #define RAWKEY_3 0x03 ! 42: #define RAWKEY_4 0x04 ! 43: #define RAWKEY_5 0x05 ! 44: #define RAWKEY_6 0x06 ! 45: #define RAWKEY_7 0x07 ! 46: #define RAWKEY_8 0x08 ! 47: #define RAWKEY_9 0x09 ! 48: #define RAWKEY_0 0x0A ! 49: ! 50: #define RAWKEY_TAB 0x42 ! 51: #define RAWKEY_ENTER 0x44 ! 52: #define RAWKEY_BACKSPACE 0x41 ! 53: #define RAWKEY_SPACE 0x40 ! 54: ! 55: #define RAWKEY_A 0x20 ! 56: #define RAWKEY_B 0x35 ! 57: #define RAWKEY_C 0x33 ! 58: #define RAWKEY_D 0x22 ! 59: #define RAWKEY_E 0x12 ! 60: #define RAWKEY_F 0x23 ! 61: #define RAWKEY_G 0x24 ! 62: #define RAWKEY_H 0x25 ! 63: #define RAWKEY_I 0x17 ! 64: #define RAWKEY_J 0x26 ! 65: #define RAWKEY_K 0x27 ! 66: #define RAWKEY_L 0x28 ! 67: #define RAWKEY_M 0x37 ! 68: #define RAWKEY_N 0x36 ! 69: #define RAWKEY_O 0x18 ! 70: #define RAWKEY_P 0x19 ! 71: #define RAWKEY_Q 0x10 ! 72: #define RAWKEY_R 0x13 ! 73: #define RAWKEY_S 0x21 ! 74: #define RAWKEY_T 0x14 ! 75: #define RAWKEY_U 0x16 ! 76: #define RAWKEY_V 0x34 ! 77: #define RAWKEY_W 0x11 ! 78: #define RAWKEY_X 0x32 ! 79: #define RAWKEY_Y 0x15 ! 80: #define RAWKEY_Z 0x31 ! 81: ! 82: #define RAWKEY_MINUS 0x0B ! 83: #define RAWKEY_EQUALS 0x0C ! 84: #define RAWKEY_LEFTBRACKET 0x1A ! 85: #define RAWKEY_RIGHTBRACKET 0x1B ! 86: #define RAWKEY_BACKSLASH 0x0D ! 87: #define RAWKEY_SEMICOLON 0x29 ! 88: #define RAWKEY_SINGLEQUOTE 0x2A ! 89: #define RAWKEY_COMMA 0x38 ! 90: #define RAWKEY_PERIOD 0x39 ! 91: #define RAWKEY_SLASH 0x3A ! 92: #define RAWKEY_GRAVE 0x00 ! 93: #define RAWKEY_LTGT 0x30 ! 94: ! 95: #define RAWKEY_NUMPAD_1 0x1D ! 96: #define RAWKEY_NUMPAD_2 0x1E ! 97: #define RAWKEY_NUMPAD_3 0x1F ! 98: #define RAWKEY_NUMPAD_4 0x2D ! 99: #define RAWKEY_NUMPAD_5 0x2E ! 100: #define RAWKEY_NUMPAD_6 0x2F ! 101: #define RAWKEY_NUMPAD_7 0x3D ! 102: #define RAWKEY_NUMPAD_8 0x3E ! 103: #define RAWKEY_NUMPAD_9 0x3F ! 104: #define RAWKEY_NUMPAD_0 0x0F ! 105: ! 106: #define RAWKEY_NUMPAD_LPAREN 0x5A ! 107: #define RAWKEY_NUMPAD_RPAREN 0x5B ! 108: ! 109: #define RAWKEY_NUMPAD_DIVIDE 0x5C ! 110: #define RAWKEY_NUMPAD_MULTIPLY 0x5D ! 111: #define RAWKEY_NUMPAD_MINUS 0x4A ! 112: #define RAWKEY_NUMPAD_PLUS 0x5E ! 113: #define RAWKEY_NUMPAD_PERIOD 0x3C ! 114: #define RAWKEY_NUMPAD_ENTER 0x43 ! 115: ! 116: #define RAWKEY_INSERT 0x47 ! 117: #define RAWKEY_DELETE 0x46 ! 118: #define RAWKEY_HELP 0x5F ! 119: ! 120: #define RAWKEY_CURSOR_UP 0x4C ! 121: #define RAWKEY_CURSOR_DOWN 0x4D ! 122: #define RAWKEY_CURSOR_LEFT 0x4F ! 123: #define RAWKEY_CURSOR_RIGHT 0x4E ! 124: ! 125: #define RAWKEY_LEFT_CTRL 0x63 ! 126: #define RAWKEY_LEFT_SHIFT 0x60 ! 127: #define RAWKEY_LEFT_ALT 0x64 ! 128: #define RAWKEY_LEFT_SUPER 0x66 ! 129: #define RAWKEY_RIGHT_SUPER 0x67 ! 130: #define RAWKEY_RIGHT_ALT 0x65 ! 131: ! 132: #define RAWKEY_RIGHT_SHIFT 0x61 ! 133: ! 134: #define RAWKEY_CAPSLOCK 0x62 ! 135: ! 136: /* Extra keys on PC/USB keyboards */ ! 137: ! 138: #define RAWKEY_F11 0x4B ! 139: #define RAWKEY_F12 0x6F ! 140: ! 141: #define RAWKEY_HOME 0x70 ! 142: #define RAWKEY_END 0x71 ! 143: #define RAWKEY_PAGEUP 0x48 ! 144: #define RAWKEY_PAGEDOWN 0x49 ! 145: ! 146: #define RAWKEY_PAUSE 0x6E ! 147: ! 148: #define RAWKEY_NUMLOCK 0xFF ! 149: #define RAWKEY_RIGHT_CTRL 0xFF ! 150: //#define RAWKEY_MENU ! 151: //#define RAWKEY_PRINTSCR ! 152: //#define RAWKEY_SCROLL_LOCK ! 153: //#define RAWKEY_PAUSE ! 154: //#define RAWKEY_POWER ! 155: //#define RAWKEY_SLEEP ! 156: //#define RAWKEY_WAKE ! 157: ! 158: /* ! 159: * Mapping from raw key codes to UAE key codes ! 160: */ ! 161: const struct uaekey_hostmap amiga_keymap[] = ! 162: { ! 163: {RAWKEYS_COMMON}, ! 164: ! 165: {RAWKEY_F11, UAEKEY_F11}, ! 166: {RAWKEY_F12, UAEKEY_F12}, ! 167: ! 168: // {RAWKEY_PRINTSCR, UAEKEY_PRINTSCR}, ! 169: // {RAWKEY_SCROLL_LOCK, UAEKEY_SCROLL_LOCK}, ! 170: {RAWKEY_PAUSE, UAEKEY_PAUSE}, ! 171: ! 172: // {RAWKEY_MENU, UAEKEY_MENU}, ! 173: ! 174: // {RAWKEY_POWER, UAEKEY_POWER}, ! 175: // {RAWKEY_SLEEP, UAEKEY_SLEEP}, ! 176: // {RAWKEY_WAKE, UAEKEY_WAKE}, ! 177: ! 178: {RAWKEYS_END} ! 179: }; ! 180: ! 181: /* ! 182: * Hot-key seqeuences ! 183: */ ! 184: ! 185: /* ! 186: * Classic Amiga keyboards don't have F11/F12, so we default to ! 187: * using Ctrl+Left Alt for hot-key sequences ! 188: */ ! 189: #define HOTKEY_MODIFIER RAWKEY_LEFT_CTRL ! 190: #define HOTKEY_MODIFIER2 RAWKEY_LEFT_ALT ! 191: ! 192: #include "hotkeys.h" ! 193: #include "hotkeys_common.h" ! 194: ! 195: struct uae_hotkeyseq amiga_hotkeys[] = ! 196: { ! 197: { DEFAULT_HOTKEYS }, ! 198: { HOTKEYS_END } ! 199: }; ! 200: ! 201: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.