Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed

                ifndef  __ez80uartinc
__ez80uartinc   equ     1

__defuart       macro   NUM,Base
UART{NUM}_RBR   port    Base+0          ; UART n Receive Buffer Register (r)
UART{NUM}_THR   port    Base+0          ; UART n Transmit Holding Register (w)
UART{NUM}_BRG_L port    Base+0          ; UART n Baud Rate Generator - Low Byte (r/w)
UART{NUM}_BRG_H port    Base+1          ; UART n Baud Rate Generator - High Byte (r/w)
UART{NUM}_IER   port    Base+1          ; UART n Interrupt Enable Register (r/w)
                if      NUM == "0"
MIIE             equ    1 << 3          ;  Enable edge detect modem status interrupt
LSIE             equ    1 << 2          ;  Enable line status interrupt
TIE              equ    1 << 1          ;  Enable transmit interrupt
RIE              equ    1 << 0          ;  Enable receive interrupt 
                endif
UART{NUM}_IIR   port    Base+2          ; UART n Interrupt Identification Register (r)
                if      NUM == "0"
INTSTS_S         equ    1               ;  Interrupt Status Code
INTSTS_M         equ    7 << INTSTS_S
INTSTS_RLS       equ    3 << INTSTS_S   ;   Receiver Line Status
INTSTS_RDR       equ    2 << INTSTS_S   ;   Receiver Data Ready
INTSTS_CTO       equ    6 << INTSTS_S   ;   Character Time out
INTSTS_TBE       equ    1 << INTSTS_S   ;   Transmit buffer empty
INTSTS_MS        equ    0 << INTSTS_S   ;   Modem Status
INTBIT           equ    1 << 0          ;  Active interrupt source
                endif
UART{NUM}_FCTL  port    Base+2          ; UART n FIFO Control Register (w)
                if      NUM == "0"
TRIG_S           equ    6               ;  Receive FIFO Trigger Level
TRIG_M           equ    3 << TRIG_S
CLRTXF           equ    1 << 2          ;  Clear Tx FIFO
CLRRXF           equ    1 << 1          ;  Clear Rx FIFO
FIFOEN           equ    1 << 0          ;  Enable FIFOs
                endif
UART{NUM}_LCTL  port    Base+3          ; UART n Line Control Register (r/w)
                if      NUM == "0"
DLAB             equ    1 << 7          ;  Access baud rate registers
SB               equ    1 << 6          ;  Send break
FPE              equ    1 << 5          ;  Force parity error
EPS              equ    1 << 4          ;  Use even parity
PEN              equ    1 << 3          ;  Parity enable
CHAR_S           equ    0                ;  Data bit count
CHAR_M           equ    7 << CHAR_S
CHAR_5_1         equ    0 << CHAR_S     ;  5x1
CHAR_6_1         equ    1 << CHAR_S     ;  6x1
CHAR_7_1         equ    2 << CHAR_S     ;  7x1
CHAR_8_1         equ    3 << CHAR_S     ;  8x1
CHAR_5_2         equ    4 << CHAR_S     ;  5x2
CHAR_6_2         equ    5 << CHAR_S     ;  6x2
CHAR_7_2         equ    6 << CHAR_S     ;  7x2
CHAR_8_2         equ    7 << CHAR_S     ;  8x2
                endif
UART{NUM}_MCTL  port    Base+4          ; UART n Modem Control Register (r/w)
                if      NUM == "0"
LOOP             equ    1 << 4          ;  Enable Loopback
OUT2             equ    1 << 3          ;  DCD in loopback mode
OUT1             equ    1 << 2          ;  RI in loopback mode
RTS              equ    1 << 1          ;  set RTS
DTR              equ    1 << 0          ;  set DTR
                endif
UART{NUM}_LSR   port    Base+5          ; UART n Line Status Register (r)
                if      NUM == "0"
ERR              equ    1 << 7          ;  Error detected in FIFO
TEMPT            equ    1 << 6          ;  Transmitter empty
THRE             equ    1 << 5          ;  Transmitter Holding Register Empty
BI               equ    1 << 4          ;  Break Indication
FE               equ    1 << 3          ;  Framing Error
PE               equ    1 << 2          ;  Parity Error
OE               equ    1 << 1          ;  Overrun Error
DR               equ    1 << 0          ;  Data Ready
                endif
UART{NUM}_MSR   port    Base+6          ; UART n Modem Status Register (r)
                if      NUM == "0"
DCD              equ    1 << 7          ;  Carrier Detect
RI               equ    1 << 6          ;  Ring Indicator
DSR              equ    1 << 5          ;  Data Set Ready
CTS              equ    1 << 4          ;  Data Carrier Detect
DDCD             equ    1 << 3          ;  DCD status change
TERI             equ    1 << 2          ;  RI trailing edge
DDSR             equ    1 << 1          ;  DSR status change
DCTS             equ    1 << 0          ;  CTS status change
                endif
UART{NUM}_SPR   port    Base+7          ; UART n Scratch Pad Register (r/w)
                endm                    ; __defuart

                endif                   ; __ez80uartinc