|
|
1.1 root 1:
2:
3: nkb Device Driver nkb
4:
5:
6:
7:
8: Device driver for console keyboard
9:
10:
11: The COHERENT device-driver nnkkbb supports industry-standard 83-,
12: 101-, and 102-key AT-protocol keyboards attached as the computer
13: console.
14:
15: nnkkbb lets you define both the layout of the keyboard and the
16: values returned by function keys. You can change layout and
17: function-key bindings by using the special keyboard mapping
18: programs kept in directory /ccoonnff/kkbbdd. This directory contains the
19: C source code for the mapping tables, as well as a MMaakkeeffiillee that
20: helps you rebuild the mapping programs. See the Lexicon article
21: kkeeyybbooaarrdd ttaabblleess for details.
22:
23: nnkkbb understands the following ``shift'' and ``lock'' keys:
24:
25:
26: ssccrroollll Scroll lock
27: nnuumm Keypad NUM lock
28: ccaappss Shift or CAPS lock
29: llaalltt Left ALT key
30: rraalltt Right ALT key
31: llsshhiifftt Left SHIFT key
32: rrsshhiifftt Right SHIFT key
33: llccttrrll Left CTRL key
34: rrccttrrll Right CTRL key
35: aallttggrr ALT Graphic key (non-US keyboards)
36:
37:
38: nnkkbb records an internal shift state, as defined by the current
39: positions of the shift and lock keys. The shift state is a
40: logical combination of internal states SSHHIIFFTT, CCTTRRLL, AALLTT, and
41: AALLTT_GGRR. The llsshhiifftt and rrsshhiifftt keys combine to form the current
42: SSHHIIFFTT state for non-alphabetic keys. Alphabetic keys generally
43: use the current state of the ccaappss lock key in addition to llsshhiifftt
44: and rrsshhiifftt. Numeric keys found on the keypad generally use the
45: state of the nnuumm lock key combined with llsshhiifftt and rrsshhiifftt. The
46: two ``control'' keys, llccttrrll and rrccttrrll, form the internal CCTTRRLL
47: state. In a similar manner, the two ``alt'' keys, llaalltt and rraalltt,
48: form the internal AALLTT state. Note that 102-key keyboards
49: generally replace the rraalltt key with the aallttggrr key, to allow
50: access to the alternate graphics characters found on some
51: keyboards.
52:
53: nnkkbb lets you configure or read the internal mapping tables via
54: the following iiooccttll() requests, as defined in header file
55: <ssggttttyy.hh>:
56:
57:
58:
59:
60:
61:
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
67:
68:
69: nkb Device Driver nkb
70:
71:
72:
73: TTIIOOCCGGEETTFF Get function key bindings
74: TTIIOOCCSSEETTFF Set function key bindings
75: TTIIOOCCGGEETTKKBBTTGet keyboard table bindings
76: TTIIOOCCSSEETTKKBBTTSet keyboard table bindings
77:
78:
79: Requests TTIIOOCCGGEETTFF and TTIIOOCCSSEETTFF reference a data structure of type
80: FFNNKKEEYY, which is a ttyyppeeddeeff defined in header file <ssyyss/kkbb.hh>.
81: Structure member kk_ffnnvvaall is a character array that contains a
82: series of contiguous function key/value bindings; the end of the
83: bindings is marked by manifest constant DDEELLIIMM. You can use any
84: value other than DDEELLIIMM as part of a function-key binding.
85: Structure member kk_nnffkkeeyyss indicates how many function keys have
86: associated entries in kk_ffnnvvaall. Function keys are numbered from
87: zero through kk_nnffkkeeyyss-1.
88:
89: By convention, function-key 0, when enabled, causes the computer
90: system to reboot. This function key is usually bound to the key
91: sequence <ccttrrll><aalltt><ddeell>, but you can disable it by setting the
92: value of driver-variable KKBBBBOOOOTT_ to zero.
93:
94: Requests TTIIOOCCGGEETTKKBBTT and TTIIOOCCSSEETTKKBBTT reference an array that
95: contains MMAAXX_KKEEYYSS occurrences of data structure KKBBTTBBLL, which is a
96: ttyyppeeddeeff
97: defined in header file <ssyyss/kkbb.hh>. Structure member kk_kkeeyy
98: contains the _s_c_a_n _c_o_d_e _s_e_t _t_h_r_e_e code value for the desired key.
99: Header file <ssyyss/kkbbssccaann.hh> contains manifest (symbolic) constants
100: of the form KK__n_n_n, which map AT keyboard _p_h_y_s_i_c_a_l key number _n_n_n
101: to the corresponding scan-code set-three value generated by the
102: keyboard. Note that the nnkkbb driver disables the scan-code
103: translation that the keyboard controller normally performs, as
104: well as setting the keyboard to scan code set three.
105:
106: Structure member kk_vvaall is a nine-element array that contains the
107: key mappings that correspond to the following index values and
108: shift states:
109:
110:
111: 00 BBAASSEE
112: 11 SSHHIIFFTT
113: 22 CCTTRRLL
114: 33 CCTTRRLL_SSHHIIFFTT
115: 44 AALLTT
116: 55 AALLTT_SSHHIIFFTT
117: 66 AALLTT_CCTTRRLL
118: 77 AALLTT_CCTTRRLL_SSHHIIFFTT
119: 88 AALLTT_GGRR
120:
121:
122: Structure member kk_ffllaaggss contains mode information for the given
123: key. One field in kk_ffllaaggss indicates the _c_l_a_s_s of key. This sub-
124: field lets you specify whether a key is a ``shift'' key (as
125: defined above), a special or programmable ``function'' key, or a
126: ``regular'' key. The following symbolic constants specify the
127: _c_l_a_s_s of key:
128:
129:
130: COHERENT Lexicon Page 2
131:
132:
133:
134:
135: nkb Device Driver nkb
136:
137:
138:
139:
140: SS The specified key is a ``shift'' or ``lock'' key. Note that
141: all entries in array kk_vvaall must be identical for a ``shift''
142: or ``lock'' key to work correctly.
143:
144: FF The specified key is a ``function'' or special key. The
145: value of all elements of array kk_vvaall must specify a function
146: key number. See header file <kkbb.hh> for a list of predefined
147: function keys.
148:
149: OO The specified key is ``regular'' and requires no special
150: processing.
151:
152: The next sub-field of kk_ffllaaggss specifies the _t_y_p_e of key, as
153: specified in the AT keyboard technical reference. The _t_y_p_e sub-
154: field specifies under what conditions a given key will generate
155: an interrupt. The possible choices are:
156:
157: MM Make: generate an interrupt only upon key ``make'' (i.e.,
158: when the key is depressed). This mode is useful for keys
159: which do not repeat. Note that using this mode with
160: ``shift'' keys stops you from unshifting upon release of the
161: key!
162:
163: TT Typematic: generate an interrupt when the key is depressed,
164: and generate subsequent key-depression interrupts while the
165: key is depressed. The rate at which interrupts are
166: generated is specified by the typematic rate of the
167: keyboard. This type is usually associated with a
168: ``regular'' key.
169:
170: MMBB Make/Break: generate an interrupt when the key is depressed,
171: and when it is released. No additional interrupts are
172: generated no matter how long the key is depressed. This
173: mode is used for ``shift'' keys.
174:
175: TTMMBB Typematic/Make/Break: generate an interrupt when the key is
176: first depressed; generate subsequent key depression
177: interrupts while the key remains depressed; and generate an
178: interrupt when the key is released.
179:
180: The last sub-field of kk_ffllaaggss specifies the _l_o_c_k keys, if any,
181: that affect the specified key:
182:
183: CC The ccaappss lock key that affects this key. If the specified
184: key is depressed while ccaappss lock is active, it is equivalent
185: to having used either of the SHIFT keys with this key. When
186: ccaappss lock is in effect, use of either of the SHIFT keys
187: temporarily toggles the state of the ccaappss lock.
188:
189: NN The nnuumm lock key affects this key. If the specified key is
190: depressed while nnuumm lock is active, it is equivalent to
191: having used either of the SHIFT keys in conjunction with the
192: specified key. When nnuumm lock is in effect, use of either of
193: the SHIFT keys temporarily toggles the state of the nnuumm
194:
195:
196: COHERENT Lexicon Page 3
197:
198:
199:
200:
201: nkb Device Driver nkb
202:
203:
204:
205: lock.
206:
207: ***** References ***** _T_e_c_h_n_i_c_a_l _R_e_f_e_r_e_n_c_e _f_o_r _t_h_e _I_B_M _P_e_r_s_o_n_a_l
208: _C_o_m_p_u_t_e_r _A_T, IBM Corporation, 1984.
209:
210: _M_u_l_t_i-_F_u_n_c_t_i_o_n _K_e_y_b_o_a_r_d_s: _L_a_y_o_u_t_s, Cherry Electrical Products
211: Corp.
212:
213: ***** See Also *****
214:
215: ddeevviiccee ddrriivveerrss, ffnnkkeeyy, kkeeyybbooaarrdd ttaabblleess
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262: COHERENT Lexicon Page 4
263:
264:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.