1 /* dmfreg.h 4.2 83/05/14 */ 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) 116