|
|
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.