summaryrefslogtreecommitdiffstats
path: root/app/at_scancodes.h
blob: 0ab0ac526be99472361c16e898199dea6286501d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#ifndef _AT_SCANCODES_H_
#define _AT_SCANCODES_H_

/* the logic here is batshit, consult scancode.doc in the DOCS dir */
/* we don't use FSHIFT and FCTRL, we just check the EMUL0 and EMUL1 */
/* commands but we put them in here for completeness */

#define AT_BS_EMUL0		0x0100
#define AT_BS_EMUL1		0x0200
#define AT_BS_FSHIFT_ON		0x0000
#define AT_BS_FSHIFT_OFF	0x0000
#define AT_BS_FCTRL_ON		0x0000


#define AT_SC_MAX		0x300

#define AT_SC_GRAVE		0x0E
#define AT_SC_1			0x16
#define AT_SC_2			0x1E
#define AT_SC_3			0x26
#define AT_SC_4			0x25
#define AT_SC_5			0x2E
#define AT_SC_6			0x36
#define AT_SC_7			0x3D
#define AT_SC_8			0x3E
#define AT_SC_9			0x46
#define AT_SC_0			0x45
#define AT_SC_MINUS		0x4E
#define AT_SC_EQUAL		0x55
#define AT_SC_BACKSPACE		0x66
#define AT_SC_TAB		0x0D
#define AT_SC_Q			0x15
#define AT_SC_W			0x1D
#define AT_SC_E			0x24
#define AT_SC_R			0x2D
#define AT_SC_T			0x2C
#define AT_SC_Y			0x35
#define AT_SC_U			0x3C
#define AT_SC_I			0x43
#define AT_SC_O			0x44
#define AT_SC_P			0x4D
#define AT_SC_LEFTBRACE		0x54
#define AT_SC_RIGHTBRACE	0x5B
#define AT_SC_BACKSLASH		0x5D
#define AT_SC_CAPSLOCK		0x58
#define AT_SC_A			0x1C
#define AT_SC_S			0x1B
#define AT_SC_D			0x23
#define AT_SC_F			0x2B
#define AT_SC_G			0x34
#define AT_SC_H			0x33
#define AT_SC_J			0x3B
#define AT_SC_K			0x42
#define AT_SC_L			0x4B
#define AT_SC_SEMICOLON		0x4C
#define AT_SC_APOSTROPHE	0x52
#define AT_SC_102ND		0x61
#define AT_SC_ENTER		0x5A
#define AT_SC_LEFTSHIFT		0x12
#define AT_SC_Z			0x1A
#define AT_SC_X			0x22
#define AT_SC_C			0x21
#define AT_SC_V			0x2A
#define AT_SC_B			0x32
#define AT_SC_N			0x31
#define AT_SC_M			0x3A
#define AT_SC_COMMA		0x41
#define AT_SC_DOT		0x49
#define AT_SC_SLASH		0x4A
#define AT_SC_RIGHTSHIFT	0x59
#define AT_SC_LEFTCTRL		0x14
#define AT_SC_LEFTALT		0x11
#define AT_SC_SPACE		0x29
#define AT_SC_RIGHTALT		(AT_BS_EMUL0				| 0x11)
#define AT_SC_RIGHTCTRL		(AT_BS_EMUL0				| 0x14)
#define AT_SC_INSERT		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x70)
#define AT_SC_DELETE		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x71)
#define AT_SC_LEFT		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0   | 0x6B)
#define AT_SC_HOME		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x6C)
#define AT_SC_END		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x69)
#define AT_SC_UP		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x75)
#define AT_SC_DOWN		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x72)
#define AT_SC_PAGEUP		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x7D)
#define AT_SC_PAGEDOWN		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x7A)
#define AT_SC_RIGHT		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x74)
#define AT_SC_NUMLOCK		0x77
#define AT_SC_KP7		(AT_BS_FSHIFT_ON			| 0x6C)
#define AT_SC_KP4		(AT_BS_FSHIFT_ON			| 0x6B)
#define AT_SC_KP1		(AT_BS_FSHIFT_ON			| 0x69)
#define AT_SC_KPSLASH		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0	| 0x4A)
#define AT_SC_KP8		(AT_BS_FSHIFT_ON			| 0x75)
#define AT_SC_KP5		(AT_BS_FSHIFT_ON			| 0x73)
#define AT_SC_KP2		(AT_BS_FSHIFT_ON			| 0x72)
#define AT_SC_KP0		(AT_BS_FSHIFT_ON			| 0x70)
#define AT_SC_KPASTERISK	0x7C
#define AT_SC_KP9		(AT_BS_FSHIFT_ON			| 0x7D)
#define AT_SC_KP6		(AT_BS_FSHIFT_ON			| 0x74)
#define AT_SC_KP3		(AT_BS_FSHIFT_ON			| 0x7A)
#define AT_SC_KPDOT		(AT_BS_FSHIFT_ON			| 0x71)
#define AT_SC_KPMINUS		0x7B
#define AT_SC_KPPLUS		0x79
#define AT_SC_KPENTER		(AT_BS_FSHIFT_OFF 	| AT_BS_EMUL0	| 0x5A)
#define AT_SC_ESC		0x76
#define AT_SC_F1		0x05
#define AT_SC_F2		0x06
#define AT_SC_F3		0x04
#define AT_SC_F4		0x0C
#define AT_SC_F5		0x03
#define AT_SC_F6		0x0B
#define AT_SC_F7		0x83
#define AT_SC_F8		0x0A
#define AT_SC_F9		0x01
#define AT_SC_F10		0x09
#define AT_SC_F11		0x78
#define AT_SC_F12		0x07
#define AT_SC_SYSRQ		0x84 
/*#define AT_SC_SYSRQ		(AT_BS_FSHIFT_OFF	| AT_BS_EMUL0 	| 0x7C) */
#define AT_SC_SCROLLLOCK	0x7E
#define AT_SC_PAUSE		(AT_BS_FCTRL_ON		| AT_BS_EMUL0	| 0x7E)
#define AT_SC_LEFTMETA		(AT_BS_EMUL0				| 0x1F)
#define AT_SC_RIGHTMETA		(AT_BS_EMUL0				| 0x27)
#define AT_SC_MENU		(AT_BS_EMUL0				| 0x2F)
#define AT_SC_POWER		(AT_BS_EMUL0				| 0x37)
#define AT_SC_SLEEP		(AT_BS_EMUL0				| 0x3F)
#define AT_SC_WAKEUP		(AT_BS_EMUL0				| 0x5E)
#define AT_SC_DBE_KATAKANA	0x13
#define AT_SC_DBE_SBCSCHAR	0x62
#define AT_SC_CONVERT		0x64
#define AT_SC_NONCONVERT	0x67

/* Consumer keys */
#define AT_SC_HOMEPAGE		(AT_BS_EMUL0				| 0x3A)
#define AT_SC_MUTE		(AT_BS_EMUL0				| 0x23)
#define AT_SC_VOLUMEUP		(AT_BS_EMUL0				| 0x32)
#define AT_SC_VOLUMEDOWN	(AT_BS_EMUL0				| 0x121)
#define AT_SC_KEY_PREVIOUSSONG	(AT_BS_EMUL0				| 0x115)
#define AT_SC_KEY_PLAYPAUSE	(AT_BS_EMUL0				| 0x134)
#define AT_SC_KEY_STOPCD	(AT_BS_EMUL0				| 0x13b)
#define AT_SC_KEY_NEXTSONG	(AT_BS_EMUL0				| 0x14d)

#define AT_SC_EMUL0		0xE0
#define AT_SC_EMUL1		0xE1

#define AT_LED_CAPS		0x04
#define AT_LED_NUMLOCK		0x02
#define AT_LED_SCROLLLOCK	0x01


#endif