Blame | Last modification | View Log | Download | RSS feed
ifndef __ez80uartinc__ez80uartinc equ 1__defuart macro NUM,BaseUART{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 interruptLSIE equ 1 << 2 ; Enable line status interruptTIE equ 1 << 1 ; Enable transmit interruptRIE equ 1 << 0 ; Enable receive interruptendifUART{NUM}_IIR port Base+2 ; UART n Interrupt Identification Register (r)if NUM == "0"INTSTS_S equ 1 ; Interrupt Status CodeINTSTS_M equ 7 << INTSTS_SINTSTS_RLS equ 3 << INTSTS_S ; Receiver Line StatusINTSTS_RDR equ 2 << INTSTS_S ; Receiver Data ReadyINTSTS_CTO equ 6 << INTSTS_S ; Character Time outINTSTS_TBE equ 1 << INTSTS_S ; Transmit buffer emptyINTSTS_MS equ 0 << INTSTS_S ; Modem StatusINTBIT equ 1 << 0 ; Active interrupt sourceendifUART{NUM}_FCTL port Base+2 ; UART n FIFO Control Register (w)if NUM == "0"TRIG_S equ 6 ; Receive FIFO Trigger LevelTRIG_M equ 3 << TRIG_SCLRTXF equ 1 << 2 ; Clear Tx FIFOCLRRXF equ 1 << 1 ; Clear Rx FIFOFIFOEN equ 1 << 0 ; Enable FIFOsendifUART{NUM}_LCTL port Base+3 ; UART n Line Control Register (r/w)if NUM == "0"DLAB equ 1 << 7 ; Access baud rate registersSB equ 1 << 6 ; Send breakFPE equ 1 << 5 ; Force parity errorEPS equ 1 << 4 ; Use even parityPEN equ 1 << 3 ; Parity enableCHAR_S equ 0 ; Data bit countCHAR_M equ 7 << CHAR_SCHAR_5_1 equ 0 << CHAR_S ; 5x1CHAR_6_1 equ 1 << CHAR_S ; 6x1CHAR_7_1 equ 2 << CHAR_S ; 7x1CHAR_8_1 equ 3 << CHAR_S ; 8x1CHAR_5_2 equ 4 << CHAR_S ; 5x2CHAR_6_2 equ 5 << CHAR_S ; 6x2CHAR_7_2 equ 6 << CHAR_S ; 7x2CHAR_8_2 equ 7 << CHAR_S ; 8x2endifUART{NUM}_MCTL port Base+4 ; UART n Modem Control Register (r/w)if NUM == "0"LOOP equ 1 << 4 ; Enable LoopbackOUT2 equ 1 << 3 ; DCD in loopback modeOUT1 equ 1 << 2 ; RI in loopback modeRTS equ 1 << 1 ; set RTSDTR equ 1 << 0 ; set DTRendifUART{NUM}_LSR port Base+5 ; UART n Line Status Register (r)if NUM == "0"ERR equ 1 << 7 ; Error detected in FIFOTEMPT equ 1 << 6 ; Transmitter emptyTHRE equ 1 << 5 ; Transmitter Holding Register EmptyBI equ 1 << 4 ; Break IndicationFE equ 1 << 3 ; Framing ErrorPE equ 1 << 2 ; Parity ErrorOE equ 1 << 1 ; Overrun ErrorDR equ 1 << 0 ; Data ReadyendifUART{NUM}_MSR port Base+6 ; UART n Modem Status Register (r)if NUM == "0"DCD equ 1 << 7 ; Carrier DetectRI equ 1 << 6 ; Ring IndicatorDSR equ 1 << 5 ; Data Set ReadyCTS equ 1 << 4 ; Data Carrier DetectDDCD equ 1 << 3 ; DCD status changeTERI equ 1 << 2 ; RI trailing edgeDDSR equ 1 << 1 ; DSR status changeDCTS equ 1 << 0 ; CTS status changeendifUART{NUM}_SPR port Base+7 ; UART n Scratch Pad Register (r/w)endm ; __defuartendif ; __ez80uartinc