Metropoli BBS
VIEWER: commport.c MODE: TEXT (ASCII)
/*
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         */
};

[ RETURN TO DIRECTORY ]