|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.