Annotation of 42BSD/sys/vaxuba/dmfreg.h, revision 1.1.1.1

1.1       root        1: /*     dmfreg.h        6.1     83/07/29        */
                      2: 
                      3: /*
                      4:  * DMF-32 definitions.
                      5:  */
                      6: 
                      7: /*
                      8:  * "dmf" (unqualified) refers to the async portion of the dmf32,
                      9:  * "dmfc" to the combo portion,
                     10:  * "dmfs" to the sync portion,
                     11:  * "dmfl" to the lp portion, and
                     12:  * "dmfd" to the dr portion.
                     13:  */
                     14: struct dmfdevice {
                     15:        short   dmfccsr0;               /* combo csr 0 */
                     16:        short   dmfccsr1;               /* combo csr 1 */
                     17:        short   dmfs[4];
                     18:        short   dmfcsr;                 /* control-status register */
                     19:        short   dmflpr;                 /* line parameter register */
                     20:        short   dmfrbuf;                /* receiver buffer (ro) */
                     21:        union {
                     22:                u_short dmfirw;         /* indirect register word */
                     23:                u_char  dmfirc[2];      /*    "         "    bytes */
                     24:        } dmfun;
                     25:        short   dmfl[2];
                     26:        short   dmfd[4];
                     27: };
                     28: 
                     29: #define        dmfrsp  dmfrbuf         /* receive silo parameter register (wo) */
                     30: #define        dmftbuf dmfun.dmfirc[0] /* transmit buffer */
                     31: #define        dmftsc  dmfun.dmfirc[0] /* transmit silo count */
                     32: #define        dmfrms  dmfun.dmfirc[1] /* receive modem status */
                     33: #define        dmflcr  dmfun.dmfirc[0] /* line control register */
                     34: #define        dmftms  dmfun.dmfirc[1] /* transmit modem status */
                     35: #define        dmftba  dmfun.dmfirw    /* transmit buffer address */
                     36: #define        dmftcc  dmfun.dmfirw    /* transmit character count */
                     37: 
                     38: /* bits in dmfcsr */
                     39: #define        DMF_TI  0100000         /* transmit interrupt */
                     40: #define        DMF_TIE 0040000         /* transmit interrupt enable */
                     41: #define        DMF_NXM 0020000         /* non-existant memory */
                     42: #define        DMF_LIN 0003400         /* transmit line number */
                     43: #define        DMF_RI  0000200         /* receiver interrupt */
                     44: #define        DMF_RIE 0000100         /* receiver interrupt enable */
                     45: #define        DMF_CLR 0000040         /* master reset */
                     46: #define        DMF_IAD 0000037         /* indirect address register */
                     47: 
                     48: #define        DMFIR_TBUF      000     /* select tbuf indirect register */
                     49: #define        DMFIR_LCR       010     /* select lcr indirect register */
                     50: #define        DMFIR_TBA       020     /* select tba indirect register */
                     51: #define        DMFIR_TCC       030     /* select tcc indirect register */
                     52: 
                     53: /* bits in dmflpr */
                     54: #define        BITS6   (01<<3)
                     55: #define        BITS7   (02<<3)
                     56: #define        BITS8   (03<<3)
                     57: #define        TWOSB   0200
                     58: #define        PENABLE 040
                     59: #define        EPAR    0100
                     60: 
                     61: #define        DMF_IE  (DMF_TIE|DMF_RIE)
                     62: 
                     63: #define        DMF_SILOCNT     32              /* size of DMF output silo (per line) */
                     64: 
                     65: /* bits in dmfrbuf */
                     66: #define        DMF_DSC         0004000         /* data set change */
                     67: #define        DMF_PE          0010000         /* parity error */
                     68: #define        DMF_FE          0020000         /* framing error */
                     69: #define        DMF_DO          0040000         /* data overrun */
                     70: 
                     71: /* bits in dmfrms */
                     72: #define        DMF_USRR        0004            /* user modem signal (pin 25) */
                     73: #define        DMF_SR          0010            /* secondary receive */
                     74: #define        DMF_CTS         0020            /* clear to send */
                     75: #define        DMF_CAR         0040            /* carrier detect */
                     76: #define        DMF_RNG         0100            /* ring */
                     77: #define        DMF_DSR         0200            /* data set ready */
                     78: 
                     79: /* bits in dmftms */
                     80: #define        DMF_USRW        0001            /* user modem signal (pin 18) */
                     81: #define        DMF_DTR         0002            /* data terminal ready */
                     82: #define        DMF_RATE        0004            /* data signal rate select */
                     83: #define        DMF_ST          0010            /* secondary transmit */
                     84: #define        DMF_RTS         0020            /* request to send */
                     85: #define        DMF_BRK         0040            /* pseudo break bit */
                     86: #define        DMF_PREEMPT     0200            /* preempt output */
                     87: 
                     88: /* flags for modem control */
                     89: #define        DMF_ON  (DMF_DTR|DMF_RTS)
                     90: #define        DMF_OFF 0
                     91: 
                     92: /* bits in dmflcr */
                     93: #define        DMF_MIE         0040            /* modem interrupt enable */
                     94: #define        DMF_FLUSH       0020            /* flush transmit silo */
                     95: #define        DMF_RBRK        0010            /* real break bit */
                     96: #define        DMF_RE          0004            /* receive enable */
                     97: #define        DMF_AUTOX       0002            /* auto XON/XOFF */
                     98: #define        DMF_TE          0001            /* transmit enable */
                     99: 
                    100: #define        DMFLCR_ENA      (DMF_MIE|DMF_RE|DMF_TE)
                    101: 
                    102: /* bits in dm lsr, copied from dh.c */
                    103: #define        DML_USR         0001000         /* usr modem sig, not a real DM bit */
                    104: #define        DML_DSR         0000400         /* data set ready, not a real DM bit */
                    105: #define        DML_RNG         0000200         /* ring */
                    106: #define        DML_CAR         0000100         /* carrier detect */
                    107: #define        DML_CTS         0000040         /* clear to send */
                    108: #define        DML_SR          0000020         /* secondary receive */
                    109: #define        DML_ST          0000010         /* secondary transmit */
                    110: #define        DML_RTS         0000004         /* request to send */
                    111: #define        DML_DTR         0000002         /* data terminal ready */
                    112: #define        DML_LE          0000001         /* line enable */
                    113: 
                    114: #define SETLCR(pt, exp) \
                    115:        pt->dmfun.dmfirw = (((pt)->dmftms)<<8) | ((exp)&0xff)

unix.superglobalmegacorp.com

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