Annotation of coherent/f/usr/include.78/sys/kb.h, revision 1.1.1.1

1.1       root        1: /* (-lgl
                      2:  *     COHERENT Version 4.0
                      3:  *     Copyright (c) 1982, 1992 by Mark Williams Company.
                      4:  *     All rights reserved. May not be copied without permission.
                      5:  -lgl) */
                      6: /*
                      7:  * /usr/include/sys/kb.h
                      8:  *
                      9:  * Keyboard definitions and constants for user configurable AT keyboard driver.
                     10:  *
                     11:  * Revised: Wed Apr  7 17:15:34 1993 CDT
                     12:  */
                     13: #ifndef        __SYS_KB_H__
                     14: #define        __SYS_KB_H__
                     15: 
                     16: /*
                     17:  * ASCII Macro Definitions - stolen from <ascii.h>
                     18:  */
                     19: #define nul    0x00    /* Null                 */
                     20: #define soh    0x01    /* Start Of Header      */
                     21: #define stx    0x02    /* Start Of Text        */
                     22: #define etx    0x03    /* End Of Text          */
                     23: #define eot    0x04    /* End Of Transmission  */
                     24: #define enq    0x05    /* Enquiry              */
                     25: #define ack    0x06    /* Acknowledge          */
                     26: #define bel    0x07    /* Bell                 */
                     27: #define bs     0x08    /* Backspace            */
                     28: #define ht     0x09    /* Horizontal Tab       */
                     29: #define nl     0x0A    /* New Line (line feed) */
                     30: #define lf     0x0A    /* Line Feed (newline)  */
                     31: #define vt     0x0B    /* Vertical Tabulation  */
                     32: #define ff     0x0C    /* Form Feed            */
                     33: #define cr     0x0D    /* Carriage Return      */
                     34: #define so     0x0E    /* Stand Out            */
                     35: #define si     0x0F    /* Stand In             */
                     36: #define dle    0x10    /* Data Link Escape     */
                     37: #define dc1    0x11    /* Data Ctrl 1 - XON    */
                     38: #define dc2    0x12    /* Data Ctrl 2          */
                     39: #define dc3    0x13    /* Data Ctrl 3 - XOFF   */
                     40: #define dc4    0x14    /* Data Ctrl 4          */
                     41: #define nak    0x15    /* Negative Acknowledge */
                     42: #define syn    0x16    /* Synchronization      */
                     43: #define etb    0x17    /* End of Trans. Block  */
                     44: #define can    0x18    /* Cancel               */
                     45: #define em     0x19    /* End of Medium        */
                     46: #define sub    0x1A    /* Substitute           */
                     47: #define esc    0x1B    /* Escape               */
                     48: #define fs     0x1C    /* Form Sep.            */
                     49: #define gs     0x1D    /* Group Sep.           */
                     50: #define rs     0x1E    /* Record Sep.          */
                     51: #define us     0x1F    /* Unit Sep.            */
                     52: #define del    0x7F    /* Delete               */
                     53: #define rub    0x7F    /* Rubout (Delete)      */
                     54: 
                     55: /*
                     56:  * special and shift keys
                     57:  */
                     58: #define        none    0xFF    /* no key value */
                     59: #define        scroll  1       /* SCROLL lock key */
                     60: #define        num     2       /* NUM lock key */
                     61: #define        caps    3       /* CAPS lock key */
                     62: #define        lalt    4       /* left ALT key */
                     63: #define        ralt    5       /* right ALT key */
                     64: #define        lshift  6       /* left SHIFT key */
                     65: #define        rshift  7       /* right SHIFT key */
                     66: #define        lctrl   8       /* left CTRL key */
                     67: #define        rctrl   9       /* right CTRL key */
                     68: #define        altgr   10      /* ALT GR. key */
                     69: 
                     70: /*
                     71:  * flag/mode field definitions
                     72:  */
                     73: #define        O       0       /* OFF: no special processing */
                     74: #define        N       0x01    /* NUM lock applies */
                     75: #define        C       0x02    /* CAP lock applies */
                     76: #define        F       0x04    /* programmable function key */
                     77: #define        S       0x08    /* shift key (from above list) */
                     78: /*             0x10       available */
                     79: /*             0x20       available */
                     80: #define        TMODE   0xC0    /* key mode mask (T, M, MB, TMB) */
                     81: #define        M       0x00    /* "Make" only */
                     82: #define        T       0x40    /* "Typematic" mode */
                     83: #define        MB      0x80    /* "Make/Break" mode */
                     84: #define        TMB     0xC0    /* "Typematic/Make/Break" mode */
                     85: 
                     86: /*
                     87:  * function key definitions
                     88:  */
                     89: #define        reboot  f0      /* reboot system */
                     90: #define        f0      0       /* function key 0 */
                     91: #define        f1      1       /* function key 1 */
                     92: #define        f2      2       /* function key 2 */
                     93: #define        f3      3       /* function key 3 */
                     94: #define        f4      4       /* function key 4 */
                     95: #define        f5      5       /* function key 5 */
                     96: #define        f6      6       /* function key 6 */
                     97: #define        f7      7       /* function key 7 */
                     98: #define        f8      8       /* function key 8 */
                     99: #define        f9      9       /* function key 9 */
                    100: #define        f10     10      /* function key 10 */
                    101: #define        f11     11      /* function key 11 */
                    102: #define        f12     12      /* function key 12 */
                    103: #define        f13     13      /* function key 13 */
                    104: #define        f14     14      /* function key 14 */
                    105: #define        f15     15      /* function key 15 */
                    106: #define        f16     16      /* function key 16 */
                    107: #define        f17     17      /* function key 17 */
                    108: #define        f18     18      /* function key 18 */
                    109: #define        f19     19      /* function key 19 */
                    110: #define        f20     20      /* function key 20 */
                    111: #define        f21     21      /* function key 21 */
                    112: #define        f22     22      /* function key 22 */
                    113: #define        f23     23      /* function key 23 */
                    114: #define        f24     24      /* function key 24 */
                    115: #define        f25     25      /* function key 25 */
                    116: #define        f26     26      /* function key 26 */
                    117: #define        f27     27      /* function key 27 */
                    118: #define        f28     28      /* function key 28 */
                    119: #define        f29     29      /* function key 29 */
                    120: #define        f30     30      /* function key 30 */
                    121: #define        f31     31      /* function key 31 */
                    122: #define        f32     32      /* function key 32 */
                    123: #define        f33     33      /* function key 33 */
                    124: #define        f34     34      /* function key 34 */
                    125: #define        f35     35      /* function key 35 */
                    126: #define        f36     36      /* function key 36 */
                    127: #define        f37     37      /* function key 37 */
                    128: #define        f38     38      /* function key 38 */
                    129: #define        f39     39      /* function key 39 */
                    130: #define        f40     40      /* function key 40 */
                    131: #define        f41     41      /* function key 41 */
                    132: #define        f42     42      /* function key 42 */
                    133: #define        f43     43      /* function key 43 */
                    134: #define        f44     44      /* function key 44 */
                    135: #define        f45     45      /* function key 45 */
                    136: #define        f46     46      /* function key 46 */
                    137: #define        f47     47      /* function key 47 */
                    138: #define        f48     48      /* function key 48 */
                    139: #define        f49     49      /* function key 49 */
                    140: #define        f50     50      /* function key 50 */
                    141: #define        f51     51      /* function key 51 */
                    142: #define        f52     52      /* function key 52 */
                    143: #define        f53     53      /* function key 53 */
                    144: #define        f54     54      /* function key 54 */
                    145: #define        f55     55      /* function key 55 */
                    146: #define        f56     56      /* function key 56 */
                    147: #define        f57     57      /* function key 57 */
                    148: #define        f58     58      /* function key 58 */
                    149: #define        f59     59      /* function key 59 */
                    150: #define        f60     60      /* function key 60 */
                    151: #define        f61     61      /* function key 61 */
                    152: #define        f62     62      /* function key 62 */
                    153: #define        f63     63      /* function key 63 */
                    154: #define        f64     64      /* function key 64 */
                    155: #define        f65     65      /* function key 65 */
                    156: #define        f66     66      /* function key 66 */
                    157: #define        f67     67      /* function key 67 */
                    158: #define        f68     68      /* function key 68 */
                    159: #define        f69     69      /* function key 69 */
                    160: #define        f70     70      /* function key 70 */
                    161: #define        f71     71      /* function key 71 */
                    162: #define        f72     72      /* function key 72 */
                    163: #define        f73     73      /* function key 73 */
                    164: #define        f74     74      /* function key 74 */
                    165: #define        f75     75      /* function key 75 */
                    166: #define        f76     76      /* function key 76 */
                    167: #define        f77     77      /* function key 77 */
                    168: #define        f78     78      /* function key 78 */
                    169: #define        f79     79      /* function key 79 */
                    170: #define        f80     80      /* function key 80 */
                    171: #define        f81     81      /* function key 81 */
                    172: #define        f82     82      /* function key 82 */
                    173: #define        f83     83      /* function key 83 */
                    174: #define        f84     84      /* function key 84 */
                    175: #define        f85     85      /* function key 85 */
                    176: #define        f86     86      /* function key 86 */
                    177: #define        f87     87      /* function key 87 */
                    178: #define        f88     88      /* function key 88 */
                    179: #define        f89     89      /* function key 89 */
                    180: #define        f90     90      /* function key 90 */
                    181: #define        f91     91      /* function key 91 */
                    182: #define        f92     92      /* function key 92 */
                    183: #define        f93     93      /* function key 93 */
                    184: #define        f94     94      /* function key 94 */
                    185: #define        f95     95      /* function key 95 */
                    186: #define        f96     96      /* function key 96 */
                    187: #define        f97     97      /* function key 97 */
                    188: #define        f98     98      /* function key 98 */
                    189: #define        f99     99      /* function key 99 */
                    190: 
                    191: /*
                    192:  * table entry definition
                    193:  */
                    194: typedef        struct  {
                    195:        unsigned char   k_key;          /* Scan code set 3 key value */
                    196:        unsigned char   k_val[9];       /* key value for each mode */
                    197:        unsigned char   k_flags;        /* flags and mode bits */
                    198: } KBTBL;
                    199: 
                    200: /*
                    201:  * Index values for k_val[] array.
                    202:  * These are computed in the driver based upon the following weighting:
                    203:  *
                    204:  *     Shift Keys      bit 0
                    205:  *     Control Keys    bit 1
                    206:  *     Alt Keys        bit 2
                    207:  *     Alt Graphic Key bit 3
                    208:  *
                    209:  * Use of the Alt Graphic key ignores other shift modes.
                    210:  */
                    211: #define        BASE            0
                    212: #define        SHIFT           1
                    213: #define        CTRL            2
                    214: #define        CTRL_SHIFT      3
                    215: #define        ALT             4
                    216: #define        ALT_SHIFT       5
                    217: #define        ALT_CTRL        6
                    218: #define        ALT_CTRL_SHIFT  7
                    219: #define        ALT_GR          8
                    220: 
                    221: /*
                    222:  * Keyboard responses to system
                    223:  */
                    224: #define        K_BREAK         0xF0            /* break code prefix byte */
                    225: #define        K_ACK           0xFA            /* Acknowledgement */
                    226: #define        K_BAT_OK        0xAA            /* BAT Completion code */
                    227: #define        K_BAT_BAD       0xFC            /* BAT Failure code */
                    228: #define        K_ECHO_R        0xEE            /* Echo response */
                    229: #define        K_DETECT_1      0xFF            /* Key detect error, code set 1 */
                    230: #define        K_DETECT_23     0x00            /* Key detect error, code sets 2 & 3 */
                    231: #define        K_OVERRUN_1     0xFF            /* Buffer overrun, code set 1 */
                    232: #define        K_OVERRUN_23    0x00            /* Buffer overrun, code sets 2 & 3 */
                    233: #define        K_RESEND        0xFE            /* Resend prior command */
                    234: 
                    235: /*
                    236:  * Keyboard commands
                    237:  */
                    238: #define        K_LED_CMD       0xED            /* Set/reset LEDs */
                    239: #define        K_ECHO_CMD      0xEE            /* Echo */
                    240: #define        K_SCANCODE_CMD  0xF0            /* Select scan code set */
                    241: #define        K_RATE_CMD      0xF3            /* Set typematic rate/delay */
                    242: #define        K_ENABLE_CMD    0xF4            /* Enable keyboard */
                    243: #define        K_DEFAULT_CMD   0xF6            /* Set defaults */
                    244: #define        K_ALL_T_CMD     0xF7            /* Set all keys typematic */
                    245: #define        K_ALL_MB_CMD    0xF8            /* Set all keys make/break */
                    246: #define        K_ALL_M_CMD     0xF9            /* Set all keys make */
                    247: #define        K_ALL_TMB_CMD   0xFA            /* Set all keys typematic/make/break */
                    248: #define        K_KEY_T_CMD     0xFB            /* Set key as typematic */
                    249: #define        K_KEY_MB_CMD    0xFC            /* Set key as make/break */
                    250: #define        K_KEY_M_CMD     0xFD            /* Set key as make */
                    251: #define        K_RESEND_CMD    0xFE            /* Resend */
                    252: #define        K_RESET_CMD     0xFF            /* Reset keyboard */
                    253: 
                    254: /*
                    255:  * function key definitions
                    256:  *
                    257:  * Struct member k_fnval contains the actual function key values.
                    258:  * Entries are delimited by DELIM (0xFF or '\377') to allow NUL characters to
                    259:  * be embedded in function strings.
                    260:  */
                    261: typedef        struct  {
                    262:        unsigned char   k_nfkeys;       /* number of function keys */
                    263:        unsigned char   k_fnval[];      /* linear array of values */
                    264: } FNKEY;
                    265: 
                    266: #define        MAX_KEYS        256             /* all that can fit in a char */
                    267: #define        MAX_TABLE_SIZE  (MAX_KEYS * sizeof(KBTBL)) /* worst case table size */
                    268: #define        MAX_FKEYS       75
                    269: #define        MAX_FCHAR       2048            /* default Fn key arena size */
                    270: #define        DELIM           0xFF            /* function key delimiter */
                    271: 
                    272: /*
                    273: ================================================================================
                    274: ================================================================================
                    275: */
                    276: 
                    277: /*
                    278:  * Virtual terminal key definitions.
                    279:  * These are byte values, and MUST NOT overlap with f0..fn values above.
                    280:  *
                    281:  * For VTKEY test to work, virtual terminal selector values must be
                    282:  * in a contiguous range from VTKEY_HOME to VTKEY_MAX.
                    283:  */
                    284: 
                    285: #define        vt0             130
                    286: #define        vt1             vt0+1
                    287: #define        vt2             vt0+2
                    288: #define        vt3             vt0+3
                    289: #define        vt4             vt0+4
                    290: #define        vt5             vt0+5
                    291: #define        vt6             vt0+6
                    292: #define        vt7             vt0+7
                    293: #define        vt8             vt0+8
                    294: #define        vt9             vt0+9
                    295: #define        vt10            vt0+10
                    296: #define        vt11            vt0+11
                    297: #define        vt12            vt0+12
                    298: #define        vt13            vt0+13
                    299: #define        vt14            vt0+14
                    300: #define        vt15            vt0+15
                    301: 
                    302: #define color0         vt0+16
                    303: #define color1         color0+1
                    304: #define color2         color0+2
                    305: #define color3         color0+3
                    306: #define color4         color0+4
                    307: #define color5         color0+5
                    308: #define color6         color0+6
                    309: #define color7         color0+7
                    310: #define color8         color0+8
                    311: #define color9         color0+9
                    312: #define color10                color0+10
                    313: #define color11                color0+11
                    314: #define color12                color0+12
                    315: #define color13                color0+13
                    316: #define color14                color0+14
                    317: #define color15                color0+15
                    318: 
                    319: #define mono0          vt0+32
                    320: #define mono1          mono0+1
                    321: #define mono2          mono0+2
                    322: #define mono3          mono0+3
                    323: #define mono4          mono0+4
                    324: #define mono5          mono0+5
                    325: #define mono6          mono0+6
                    326: #define mono7          mono0+7
                    327: #define mono8          mono0+8
                    328: #define mono9          mono0+9
                    329: #define mono10         mono0+10
                    330: #define mono11         mono0+11
                    331: #define mono12         mono0+12
                    332: #define mono13         mono0+13
                    333: #define mono14         mono0+14
                    334: #define mono15         mono0+15
                    335: 
                    336: /*
                    337:  * vtn - next logical session (increasing minor numbers)
                    338:  * vtp - previous logical session (decreasing minor numbers)
                    339:  * vtt - toggle current with latest session
                    340:  */
                    341: #define        vtn             vt0+48
                    342: #define        vtp             vt0+49
                    343: #define        vtt             vt0+50
                    344: 
                    345: #define        VTKEY_HOME      vt0
                    346: #define        VTKEY_NEXT      vtn
                    347: #define        VTKEY_PREV      vtp
                    348: #define        VTKEY_TOGL      vtt
                    349: #define        VTKEY_MAX       vtt
                    350: 
                    351: #define        VTKEY(x)        ((x)>=VTKEY_HOME && (x)<=VTKEY_MAX)
                    352: 
                    353: /*
                    354:  * The following is provisional, pending STREAMS enhancements to the console.
                    355:  *
                    356:  * "fgk" is normally bound to <alt>+<enter>.
                    357:  */
                    358: #define fgk            (VTKEY_MAX+1)
                    359: 
                    360: /*
                    361:  * function key definitions
                    362:  *
                    363:  * Struct member k_fnval contains the actual function key values.
                    364:  * Entries are delimited by DELIM (0xFF or '\377') to allow NUL characters to
                    365:  * be embedded in function strings.
                    366:  */
                    367: 
                    368: #define        VNKB_FALSE      0
                    369: #define        VNKB_TRUE       1
                    370: #ifdef KERNEL
                    371: 
                    372: /*
                    373:  * patchable params for non-standard keyboards
                    374:  */
                    375: extern int     KBDATA;                 /* Keyboard data */
                    376: extern int     KBCTRL;                 /* Keyboard control */
                    377: extern int     KBSTS_CMD;              /* Keyboard status/command */
                    378: extern int     KBFLAG;                 /* Keyboard reset flag */
                    379: extern int     KBBOOT;                 /* 0: disallow reboot from keyboard */
                    380: extern int     KBTIMEOUT;              /* shouldn't need this much */
                    381: extern int     KBCMDBYTE;              /* no translation */
                    382: 
                    383: #ifndef        _I386
                    384: extern SEG     *kbsegp;                /* keyboard table segment */
                    385: #endif
                    386: extern int     isbusy;                 /* Raw input conversion busy */
                    387: extern int     vt_kb_state, vt_kb_cmd2, vt_kb_prev_cmd;
                    388: 
                    389: #if    VT_MAJOR != KB_MAJOR
                    390: extern Ksetivec(), Kisrint();
                    391: extern Kclrivec();
                    392: #endif
                    393: 
                    394: #endif /* KERNEL */
                    395: /*
                    396: ================================================================================
                    397: ================================================================================
                    398: */
                    399: 
                    400: #endif /* KB_H */
                    401: /* end of kb.h */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.