summaryrefslogtreecommitdiffstats
path: root/private/ntos/fw/alpha/kbdmouse.h
blob: 3d6ba607e76f6e1f49f275b5f8d6e951d2da60c0 (plain) (blame)
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/*++

Copyright (c) 1990  Microsoft Corporation
Copyright (c) 1993  Digital Equipment Corporation

Module Name:

    Kbdmouse.h

Abstract:

    This module contains definitions for the keyboard controller
    in typical industry-standard chips, like those in the jazz
    and Alpha/Jensen systems.

    It supports Mouse and Keyboard.

Author:

    Lluis Abello (lluis) 11-Jul-1990

Environment:


Revision History:

   19-August-1992	John DeRosa [DEC]

   Alpha modifications.

--*/

#ifndef _KBDMOUSE_
#define _KBDMOUSE_

//
// Keyboard Controller Commands
//

#define KBD_CTR_WRITE_COMMAND   0x60
#define KBD_CTR_READ_COMMAND    0x20
#define KBD_CTR_TEST_PASSWORD   0xA4
#define KBD_CTR_LOAD_PASSWORD   0xA5
#define KBD_CTR_ENABLE_PASSWORD 0xA6
#define KBD_CTR_DISABLE_AUX     0xA7
#define KBD_CTR_ENABLE_AUX      0xA8
#define KBD_CTR_AUXLINES_TEST   0xA9
#define KBD_CTR_SELFTEST        0xAA
#define KBD_CTR_KBDLINES_TEST   0xAB
#define KBD_CTR_ENABLE_KBD      0xAE
#define KBD_CTR_WRITE_AUX       0xD4

//
// Keyboard Controller Data
//

#define Kbd_Ctr_Selftest_Passed 0x55
#define Kbd_Ctr_Password_Installed 0xFA
#define Kbd_Ctr_Password_Not_Installed 0xF1

//
// Controller Command Byte bit definitions.
//

#define KbdCommandByteDisableAux    (1 << 5)
#define KbdCommandByteDisableKbd    (1 << 4)
#define KbdCommandEnableAuxInt      (1 << 1)
#define KbdCommandEnableKbdInt      (1 << 0)

//
// Keyboard Controller Status byte masks
//

#define KBD_OBF_MASK        0x1         // Output buffer full
#define KBD_IBF_MASK        0x2         // Input buffer full
#define KBD_FROM_AUX_MASK   0x20        // Byte from Aux Port.

//
// Interface Test Results
//

#define INTERFACE_NO_ERROR  0x00
#define CLOCK_STUCK_LOW     0x01
#define CLOCK_STUCK_HIGH    0x02
#define DATA_STUCK_LOW      0x03
#define DATA_STUCK_HIGH     0x04

//
// Timeout
//

#define KBD_TIMEOUT         0xFFFFF
#define KBD_INT_TIMEOUT     0xFFFF


//
// The NT firmware expects to find a 101-key keyboard.  It puts it into
// XT mode (scan code 01).
//
//


//
// Keyboard Commands
//

#define KbdEcho         0xee    // request keyboard to return echo response "EE"
#define KbdSelScanCode  0xf0    // Scan codes 1,2,3 or 0 = rquest current.
#define KbdReadID       0xf2    // Request for two byte response
#define KbdSetRate      0xf3    // Set tellematic Rate
#define KbdEnable       0xF4    // Clears Buffer and Starts Scanning.
#define KbdDisable      0xF5    // reset to power up

#define KbdSetDefault   0xf6    //
#define KbdSetAllTlmtic 0xf7    // Set all keys telematic
#define KbdSetAllMkBr   0xf8    // Set all keys Make /Break
#define KbdSetAllMake   0xf9    // Set all keys Make only
#define KbdSetKeyTlmtic 0xfb    // Set individual key telemativ
#define KbdSetKeyMkBr   0xfc    // set individual key make/break
#define KbdSetKeyMk     0xfd    // set individual key make only
#define KbdResend       0xfe    // request to resend last transfer
#define KbdReset        0xff    // request to start a program reset
#define KbdAck          0xfa    // keyboard ack after reset
#define KbdBat          0xAA    // Keyboard Bat completion Response

//
// Define scan codes.
//

#define KEY_KEYPAD_MINUS  0x4a
#define KEY_KEYPAD_PLUS   0x4e
#define KEY_LEFT_SHIFT    0x2A
#define KEY_RIGHT_SHIFT   0X36
#define KEY_CAPS_LOCK     0X3A
#define KEY_CONTROL       0X1D
#define KEY_ALT           0X38
#define KEY_UP_ARROW      0X48
#define KEY_DOWN_ARROW    0X50
#define KEY_LEFT_ARROW    0X4B
#define KEY_RIGHT_ARROW   0X4D
#define KEY_HOME          0X47
#define KEY_END           0X4F
#define KEY_INSERT        0X52
#define KEY_DELETE        0X53
#define KEY_SYS_REQUEST   0X54
#define KEY_PRINT_SCREEN  0x37
#define KEY_ESC           0x01
#define KEY_PAGE_UP       0x49
#define KEY_PAGE_DOWN     0x51
#define KEY_F1            0x3B
#define KEY_F2            0x3C
#define KEY_F3            0x3D
#define KEY_F4            0x3E
#define KEY_F5            0x3F
#define KEY_F6            0x40
#define KEY_F7            0x41
#define KEY_F8            0x42
#define KEY_F9            0x43
#define KEY_F10           0x44
#define KEY_F11           0x57
#define KEY_F12           0x58


#endif  //_KBDMOUSE_