/* COMMPORT.C -- Do not compile this file directly. It is #included by CCT51+ in order to use the same COMM_PORT decalration in all FlexMode examples. */ UART8250 ins1 = { BASE_ADDR + U8250_RBR_OFF, /* UART receive buffer reg. offset (1)*/ BASE_ADDR + U8250_THR_OFF, /* UART interrupt enable reg. offset (1)*/ BASE_ADDR + U8250_IER_OFF, /* UART interrupt enable reg. offset (1)*/ BASE_ADDR + U8250_IID_OFF, /* UART interrupt ident. reg. offset (2)*/ BASE_ADDR + U8250_LCR_OFF, /* UART line control register offset (3)*/ BASE_ADDR + U8250_MCR_OFF, /* UART modem control register off (4)*/ BASE_ADDR + U8250_LSR_OFF, /* UART line status register offset (5)*/ BASE_ADDR + U8250_MSR_OFF, /* UART modem status register offset (6)*/ BASE_ADDR + U8250_SR_OFF, /* UART modem status register offset (6)*/ }; COMM_PORT port1 = { NULL, /* ptr. to start of receive buffer */ NULL, /* ptr. to next available slot in buff */ NULL, /* ptr. to next slot emptied from buff */ NULL, /* ptr. to end of receive buffer */ NULL, /* ptr. to start of TX buffer */ NULL, /* ptr. to next available slot in buff */ NULL, /* ptr. to next slot emptied from buff */ NULL, /* ptr. to end of TX buffer */ {NULL, NULL, NULL, NULL}, /* ptr. to interrupt handlers */ RUNTIME, /* txhold */ /* FLOW CONTROL LARGE DATA (LD) = 52, SMALL DATA (SD) = 30 */ FALSE, /* flag <=> one or more controls on */ FALSE, /* flag <=> high level flow cntrl. on */ DC1, /* XON char (when XON/XOFF enabled) */ DC3, /* XOFF char (when XON/XOFF enabled) */ RUNTIME, /* flow ctl. high water mark */ RUNTIME, /* flow ctl. low water mark */ /* UART SPECIFICS */ BASE_ADDR, /* base address of 8250 UART (0)*/ /* RS-232 INPUTS LD= 70, SD = 46 */ RUNTIME, /* format 7:DCD, 6:RI, 5: DSR, 4:CTS */ RUNTIME, /* TX interrupt handler primed? */ RUNTIME, /* TX must be restarted */ {0}, /* uart structure */ INS8250, /* type of UART */ u8250_init, /* init function */ BASE_ADDR + U8250_RBR_OFF, /* offset of data port from base (0)*/ u8250_rxstat, /* UART receiver status register */ u8250_txstat, /* UART transmitter status register */ u8250_read, /* pointer to received data read fn. */ u8250_write, /* pointer to transmited data send fn. */ NULL, /* address of modem structure */ conoutc, /* local console output function */ NULL, /* printer output */ NULL, /* buffer output */ NULL, /* fn. to restart TX */ /* LINE FORMAT */ DATABITS8, /* RX databits (default) */ DATABITS8, /* TX databits */ PARITY_NONE, /* startup parity */ STOPBITS1, /* startup number of stopbits */ 1200L, /* startup baud rate */ /* RS-232 OUTPUTS */ HIGH, /* DTR startup status */ HIGH, /* RTS startup status */ LOW, /* GPO1 startup status */ LOW, /* GPO2 startup status */ /* INTERRUPT-SPECIFIC MEMBERS */ /* RECEIVE */ IRQ4_VECTOR, /* interrupt request line (or NULL) */ 2048, /* size (in bytes) of receive buffer */ 4, /* interrupt request line */ /* TRANSMIT */ IRQ4_VECTOR, /* interrupt request line (or EOF) */ 1024, /* size (in bytes) of TX buffer */ /* RECEIVE DATA FORMAT SPECIFICS */ FALSE, /* flag for input cooked/raw mode */ NULL, /* pointer to array of translation chars*/ FALSE, /* flag for input end-of-line processing*/ FALSE, /* convert case (UPPER, LOWER, NORMAL) */ FALSE, /* ASCII chars only (0-127) */ 0, /* time to wait for first byte of str. (ms.) */ 40, /* time to wait for a byte (ms.) */ 0, /* time to wait after last byte (ms.) */ /* TRANSMITTED DATA TRANSFORMATION SPECIFICS */ FALSE, /* flag for output cooked/raw mode */ NULL, /* pointer to array of translation chars*/ FALSE, /* flag for out end-of-line processing */ FALSE, /* convert case (UPPER, LOWER, NORMAL) */ FALSE, /* ASCII chars. only (0-127) */ 0, /* interbyte delay */ 0, /* delay imposed by delay character */ '~', /* string char. that imposes delay */ FALSE, /* length of interline delay (ms.) */ LF, /* interline delay character */ /* TRANSLATION FLAGS THAT APPLY TO BOTH TX AND RX */ FALSE, /* Echo flag, bit-encoded */ ESCAPE, /* abort key for XON/XOFF loops */ };