1  /*
2   * UAE - The Un*x Amiga Emulator
3   *
4   * Amiga keycodes
5   *
6   * (c) 1995 Bernd Schmidt
7   */
8 
9 #ifndef UAE_KEYBOARD_H
10 #define UAE_KEYBOARD_H
11 
12 /* First, two dummies */
13 #define AK_mousestuff 0x100
14 #define AK_inhibit 0x101
15 /* This mutates into AK_CTRL in keybuf.c. */
16 #define AK_RCTRL 0x7f
17 
18 #define AK_A 0x20
19 #define AK_B 0x35
20 #define AK_C 0x33
21 #define AK_D 0x22
22 #define AK_E 0x12
23 #define AK_F 0x23
24 #define AK_G 0x24
25 #define AK_H 0x25
26 #define AK_I 0x17
27 #define AK_J 0x26
28 #define AK_K 0x27
29 #define AK_L 0x28
30 #define AK_M 0x37
31 #define AK_N 0x36
32 #define AK_O 0x18
33 #define AK_P 0x19
34 #define AK_Q 0x10
35 #define AK_R 0x13
36 #define AK_S 0x21
37 #define AK_T 0x14
38 #define AK_U 0x16
39 #define AK_V 0x34
40 #define AK_W 0x11
41 #define AK_X 0x32
42 #define AK_Y 0x15
43 #define AK_Z 0x31
44 
45 #define AK_0 0x0A
46 #define AK_1 0x01
47 #define AK_2 0x02
48 #define AK_3 0x03
49 #define AK_4 0x04
50 #define AK_5 0x05
51 #define AK_6 0x06
52 #define AK_7 0x07
53 #define AK_8 0x08
54 #define AK_9 0x09
55 
56 #define AK_NP0 0x0F
57 #define AK_NP1 0x1D
58 #define AK_NP2 0x1E
59 #define AK_NP3 0x1F
60 #define AK_NP4 0x2D
61 #define AK_NP5 0x2E
62 #define AK_NP6 0x2F
63 #define AK_NP7 0x3D
64 #define AK_NP8 0x3E
65 #define AK_NP9 0x3F
66 
67 #define AK_NPDIV 0x5C
68 #define AK_NPMUL 0x5D
69 #define AK_NPSUB 0x4A
70 #define AK_NPADD 0x5E
71 #define AK_NPDEL 0x3C
72 #define AK_NPLPAREN 0x5A
73 #define AK_NPRPAREN 0x5B
74 
75 #define AK_F1 0x50
76 #define AK_F2 0x51
77 #define AK_F3 0x52
78 #define AK_F4 0x53
79 #define AK_F5 0x54
80 #define AK_F6 0x55
81 #define AK_F7 0x56
82 #define AK_F8 0x57
83 #define AK_F9 0x58
84 #define AK_F10 0x59
85 
86 #define AK_UP 0x4C
87 #define AK_DN 0x4D
88 #define AK_LF 0x4F
89 #define AK_RT 0x4E
90 
91 #define AK_SPC 0x40
92 #define AK_BS 0x41
93 #define AK_TAB 0x42
94 #define AK_ENT 0x43
95 #define AK_RET 0x44
96 #define AK_ESC 0x45
97 #define AK_DEL 0x46
98 
99 #define AK_LSH 0x60
100 #define AK_RSH 0x61
101 #define AK_CAPSLOCK 0x62
102 #define AK_CTRL 0x63
103 #define AK_LALT 0x64
104 #define AK_RALT 0x65
105 #define AK_LAMI 0x66
106 #define AK_RAMI 0x67
107 #define AK_HELP 0x5F
108 
109 /* The following have different mappings on national keyboards */
110 
111 #define AK_LBRACKET 0x1A
112 #define AK_RBRACKET 0x1B
113 #define AK_SEMICOLON 0x29
114 #define AK_COMMA 0x38
115 #define AK_PERIOD 0x39
116 #define AK_SLASH 0x3A
117 #define AK_BACKSLASH 0x0D
118 #define AK_QUOTE 0x2A
119 #define AK_NUMBERSIGN 0x2B
120 #define AK_LTGT 0x30
121 #define AK_BACKQUOTE 0x00
122 #define AK_MINUS 0x0B
123 #define AK_EQUAL 0x0C
124 
125 #define AK_RESETWARNING 0x78
126 #define AK_INIT_POWERUP 0xfd
127 #define AK_TERM_POWERUP 0xfe
128 
129 // KB LED stuff
130 #define KBLED_NUMLOCKB 0
131 #define KBLED_CAPSLOCKB 1
132 #define KBLED_SCROLLLOCKB 2
133 
134 #define KBLED_NUMLOCKM (1 << KBLED_NUMLOCKB)
135 #define KBLED_CAPSLOCKM (1 << KBLED_CAPSLOCKB)
136 #define KBLED_SCROLLLOCKM (1 << KBLED_SCROLLLOCKB)
137 
138 enum aks { AKS_ENTERGUI = 0x200, AKS_SCREENSHOT_FILE, AKS_SCREENSHOT_CLIPBOARD, AKS_FREEZEBUTTON,
139     AKS_FLOPPY0, AKS_FLOPPY1, AKS_FLOPPY2, AKS_FLOPPY3,
140     AKS_EFLOPPY0, AKS_EFLOPPY1, AKS_EFLOPPY2, AKS_EFLOPPY3,
141 	AKS_TOGGLEDEFAULTSCREEN,
142     AKS_TOGGLEWINDOWEDFULLSCREEN, AKS_TOGGLEFULLWINDOWFULLSCREEN, AKS_TOGGLEWINDOWFULLWINDOW,
143 	AKS_ENTERDEBUGGER, AKS_IRQ7,
144     AKS_PAUSE, AKS_WARP, AKS_INHIBITSCREEN,
145 	AKS_STATEREWIND, AKS_STATECURRENT, AKS_STATECAPTURE,
146 	AKS_VIDEORECORD,
147     AKS_VOLDOWN, AKS_VOLUP, AKS_VOLMUTE,
148     AKS_MVOLDOWN, AKS_MVOLUP, AKS_MVOLMUTE,
149     AKS_QUIT, AKS_HARDRESET, AKS_SOFTRESET,
150     AKS_STATESAVEQUICK, AKS_STATERESTOREQUICK,
151     AKS_STATESAVEQUICK1, AKS_STATERESTOREQUICK1,
152     AKS_STATESAVEQUICK2, AKS_STATERESTOREQUICK2,
153     AKS_STATESAVEQUICK3, AKS_STATERESTOREQUICK3,
154     AKS_STATESAVEQUICK4, AKS_STATERESTOREQUICK4,
155     AKS_STATESAVEQUICK5, AKS_STATERESTOREQUICK5,
156     AKS_STATESAVEQUICK6, AKS_STATERESTOREQUICK6,
157     AKS_STATESAVEQUICK7, AKS_STATERESTOREQUICK7,
158     AKS_STATESAVEQUICK8, AKS_STATERESTOREQUICK8,
159     AKS_STATESAVEQUICK9, AKS_STATERESTOREQUICK9,
160     AKS_STATESAVEDIALOG, AKS_STATERESTOREDIALOG,
161     AKS_DECREASEREFRESHRATE,
162     AKS_INCREASEREFRESHRATE,
163     AKS_ARCADIADIAGNOSTICS, AKS_ARCADIAPLY1, AKS_ARCADIAPLY2, AKS_ARCADIACOIN1, AKS_ARCADIACOIN2,
164     AKS_TOGGLEMOUSEGRAB, AKS_SWITCHINTERPOL, AKS_TOGGLERTG,
165     AKS_INPUT_CONFIG_1,AKS_INPUT_CONFIG_2,AKS_INPUT_CONFIG_3,AKS_INPUT_CONFIG_4,
166 	AKS_SWAPJOYPORTS,
167 	AKS_DISKSWAPPER_NEXT,AKS_DISKSWAPPER_PREV,
168     AKS_DISKSWAPPER_INSERT0,AKS_DISKSWAPPER_INSERT1,AKS_DISKSWAPPER_INSERT2,AKS_DISKSWAPPER_INSERT3,
169 	AKS_DISK_PREV0, AKS_DISK_PREV1, AKS_DISK_PREV2, AKS_DISK_PREV3,
170 	AKS_DISK_NEXT0, AKS_DISK_NEXT1, AKS_DISK_NEXT2, AKS_DISK_NEXT3,
171 	AKS_CDTV_FRONT_PANEL_STOP, AKS_CDTV_FRONT_PANEL_PLAYPAUSE, AKS_CDTV_FRONT_PANEL_PREV,
172 	AKS_CDTV_FRONT_PANEL_NEXT, AKS_CDTV_FRONT_PANEL_REW, AKS_CDTV_FRONT_PANEL_FF,
173 	AKS_QUALIFIER1, AKS_QUALIFIER2, AKS_QUALIFIER3, AKS_QUALIFIER4,
174 	AKS_QUALIFIER5, AKS_QUALIFIER6, AKS_QUALIFIER7, AKS_QUALIFIER8,
175 	AKS_QUALIFIER_SPECIAL, AKS_QUALIFIER_SHIFT, AKS_QUALIFIER_CONTROL,
176 	AKS_QUALIFIER_ALT, AKS_QUALIFIER_WIN
177 };
178 
179 #define AKS_FIRST AKS_ENTERGUI
180 
181 extern int target_checkcapslock (int, int *);
182 
183 #endif /* UAE_KEYBOARD_H */
184