Annotation of coherent/d/PS2_KERNEL/io.286/iscon.c, revision 1.1.1.1

1.1       root        1: /* (-lgl
                      2:  *     COHERENT Driver Kit Version 1.1.0
                      3:  *     Copyright (c) 1982, 1990 by Mark Williams Company.
                      4:  *     All rights reserved. May not be copied without permission.
                      5:  -lgl) */
                      6: /*
                      7:  * Keyboard/display driver.
                      8:  * Coherent, IBM PC/XT/AT.
                      9:  */
                     10: #include <sys/coherent.h>
                     11: #include <sys/i8086.h>
                     12: #include <sys/con.h>
                     13: #include <sys/devices.h>
                     14: #include <errno.h>
                     15: #include <sys/stat.h>
                     16: #include <sys/tty.h>
                     17: #include <signal.h>
                     18: #include <sys/sched.h>
                     19: 
                     20: #define        SPC     0376                    /* Special encoding */
                     21: #define XXX    0377                    /* Non-character */
                     22: #define        KBDATA  0x60                    /* Keyboard data */
                     23: #define        KBCTRL  0x61                    /* Keyboard control */
                     24: #define        KBFLAG  0x80                    /* Keyboard reset flag */
                     25: #define        LEDCMD  0xED                    /* status indicator command */
                     26: #define        KBACK   0xFA                    /* status indicator acknowledge */
                     27: #define        EXTENDED1 0xE1                  /* extended key seq initiator */
                     28: 
                     29: #define        KEYUP   0x80                    /* Key up change */
                     30: #define        KEYSC   0x7F                    /* Key scan code mask */
                     31: #define        LSHIFT  0x2A-1                  /* Left shift key */
                     32: #define LSHIFTA 0x2B-1                 /* Alternate left-shift key */
                     33: #define        RSHIFT  0x36-1                  /* Right shift key */
                     34: #define        CTRL    0x1D-1                  /* Control key */
                     35: /*-- #define   CAPLOCK 0x1D-1  --*/            /* Control key */
                     36: #define        ALT     0x38-1                  /* Alt key */
                     37: #define        CAPLOCK 0x3A-1                  /* Caps lock key */
                     38: /*-- #define   CTRL    0x3A-1  --*/            /* Caps lock key */
                     39: #define        NUMLOCK 0x45-1                  /* Numeric lock key */
                     40: #define        DELETE  0x53-1                  /* Del, as in CTRL-ALT-DEL */
                     41: #define BACKSP 0x0E-1                  /* Back space */
                     42: #define SCRLOCK        0x46-1                  /* Scroll lock */
                     43: 
                     44: /* Shift flags */
                     45: #define        SRS     0x01                    /* Right shift key on */
                     46: #define        SLS     0x02                    /* Left shift key on */
                     47: #define CTS    0x04                    /* Ctrl key on */
                     48: #define ALS    0x08                    /* Alt key on */
                     49: #define CPLS   0x10                    /* Caps lock on */
                     50: #define NMLS   0x20                    /* Num lock on */
                     51: #define AKPS   0x40                    /* Alternate keypad shift */
                     52: #define SHFT   0x80                    /* Shift key flag */
                     53: 
                     54: /* Function key information */
                     55: #define        NFKEY   20                      /* Number of settable functions */
                     56: #define        NFCHAR  150                     /* Number of characters settable */
                     57: #define        NFBUF   (NFKEY*2+NFCHAR+1)      /* Size of buffer */
                     58: 
                     59: /*
                     60:  * Functions.
                     61:  */
                     62: int    isrint();
                     63: int    istime();
                     64: void   isbatch();
                     65: int    mmstart();
                     66: int    isopen();
                     67: int    isclose();
                     68: int    isread();
                     69: int    mmwrite();
                     70: int    isioctl();
                     71: void   mmwatch();
                     72: int    isload();
                     73: int    isuload();
                     74: int    ispoll();
                     75: int    nulldev();
                     76: int    nonedev();
                     77: 
                     78: /*
                     79:  * Configuration table.
                     80:  */
                     81: CON iscon ={
                     82:        DFCHR|DFPOL,                    /* Flags */
                     83:        KB_MAJOR,                               /* Major index */
                     84:        isopen,                         /* Open */
                     85:        isclose,                        /* Close */
                     86:        nulldev,                        /* Block */
                     87:        isread,                         /* Read */
                     88:        mmwrite,                        /* Write */
                     89:        isioctl,                        /* Ioctl */
                     90:        nulldev,                        /* Powerfail */
                     91:        mmwatch,                        /* Timeout */
                     92:        isload,                         /* Load */
                     93:        isuload,                        /* Unload */
                     94:        ispoll                          /* Poll */
                     95: };

unix.superglobalmegacorp.com

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