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