Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1186 | savelij | 1 | ifndef __ez80uartinc |
2 | __ez80uartinc equ 1 |
||
3 | |||
4 | __defuart macro NUM,Base |
||
5 | UART{NUM}_RBR port Base+0 ; UART n Receive Buffer Register (r) |
||
6 | UART{NUM}_THR port Base+0 ; UART n Transmit Holding Register (w) |
||
7 | UART{NUM}_BRG_L port Base+0 ; UART n Baud Rate Generator - Low Byte (r/w) |
||
8 | UART{NUM}_BRG_H port Base+1 ; UART n Baud Rate Generator - High Byte (r/w) |
||
9 | UART{NUM}_IER port Base+1 ; UART n Interrupt Enable Register (r/w) |
||
10 | if NUM == "0" |
||
11 | MIIE equ 1 << 3 ; Enable edge detect modem status interrupt |
||
12 | LSIE equ 1 << 2 ; Enable line status interrupt |
||
13 | TIE equ 1 << 1 ; Enable transmit interrupt |
||
14 | RIE equ 1 << 0 ; Enable receive interrupt |
||
15 | endif |
||
16 | UART{NUM}_IIR port Base+2 ; UART n Interrupt Identification Register (r) |
||
17 | if NUM == "0" |
||
18 | INTSTS_S equ 1 ; Interrupt Status Code |
||
19 | INTSTS_M equ 7 << INTSTS_S |
||
20 | INTSTS_RLS equ 3 << INTSTS_S ; Receiver Line Status |
||
21 | INTSTS_RDR equ 2 << INTSTS_S ; Receiver Data Ready |
||
22 | INTSTS_CTO equ 6 << INTSTS_S ; Character Time out |
||
23 | INTSTS_TBE equ 1 << INTSTS_S ; Transmit buffer empty |
||
24 | INTSTS_MS equ 0 << INTSTS_S ; Modem Status |
||
25 | INTBIT equ 1 << 0 ; Active interrupt source |
||
26 | endif |
||
27 | UART{NUM}_FCTL port Base+2 ; UART n FIFO Control Register (w) |
||
28 | if NUM == "0" |
||
29 | TRIG_S equ 6 ; Receive FIFO Trigger Level |
||
30 | TRIG_M equ 3 << TRIG_S |
||
31 | CLRTXF equ 1 << 2 ; Clear Tx FIFO |
||
32 | CLRRXF equ 1 << 1 ; Clear Rx FIFO |
||
33 | FIFOEN equ 1 << 0 ; Enable FIFOs |
||
34 | endif |
||
35 | UART{NUM}_LCTL port Base+3 ; UART n Line Control Register (r/w) |
||
36 | if NUM == "0" |
||
37 | DLAB equ 1 << 7 ; Access baud rate registers |
||
38 | SB equ 1 << 6 ; Send break |
||
39 | FPE equ 1 << 5 ; Force parity error |
||
40 | EPS equ 1 << 4 ; Use even parity |
||
41 | PEN equ 1 << 3 ; Parity enable |
||
42 | CHAR_S equ 0 ; Data bit count |
||
43 | CHAR_M equ 7 << CHAR_S |
||
44 | CHAR_5_1 equ 0 << CHAR_S ; 5x1 |
||
45 | CHAR_6_1 equ 1 << CHAR_S ; 6x1 |
||
46 | CHAR_7_1 equ 2 << CHAR_S ; 7x1 |
||
47 | CHAR_8_1 equ 3 << CHAR_S ; 8x1 |
||
48 | CHAR_5_2 equ 4 << CHAR_S ; 5x2 |
||
49 | CHAR_6_2 equ 5 << CHAR_S ; 6x2 |
||
50 | CHAR_7_2 equ 6 << CHAR_S ; 7x2 |
||
51 | CHAR_8_2 equ 7 << CHAR_S ; 8x2 |
||
52 | endif |
||
53 | UART{NUM}_MCTL port Base+4 ; UART n Modem Control Register (r/w) |
||
54 | if NUM == "0" |
||
55 | LOOP equ 1 << 4 ; Enable Loopback |
||
56 | OUT2 equ 1 << 3 ; DCD in loopback mode |
||
57 | OUT1 equ 1 << 2 ; RI in loopback mode |
||
58 | RTS equ 1 << 1 ; set RTS |
||
59 | DTR equ 1 << 0 ; set DTR |
||
60 | endif |
||
61 | UART{NUM}_LSR port Base+5 ; UART n Line Status Register (r) |
||
62 | if NUM == "0" |
||
63 | ERR equ 1 << 7 ; Error detected in FIFO |
||
64 | TEMPT equ 1 << 6 ; Transmitter empty |
||
65 | THRE equ 1 << 5 ; Transmitter Holding Register Empty |
||
66 | BI equ 1 << 4 ; Break Indication |
||
67 | FE equ 1 << 3 ; Framing Error |
||
68 | PE equ 1 << 2 ; Parity Error |
||
69 | OE equ 1 << 1 ; Overrun Error |
||
70 | DR equ 1 << 0 ; Data Ready |
||
71 | endif |
||
72 | UART{NUM}_MSR port Base+6 ; UART n Modem Status Register (r) |
||
73 | if NUM == "0" |
||
74 | DCD equ 1 << 7 ; Carrier Detect |
||
75 | RI equ 1 << 6 ; Ring Indicator |
||
76 | DSR equ 1 << 5 ; Data Set Ready |
||
77 | CTS equ 1 << 4 ; Data Carrier Detect |
||
78 | DDCD equ 1 << 3 ; DCD status change |
||
79 | TERI equ 1 << 2 ; RI trailing edge |
||
80 | DDSR equ 1 << 1 ; DSR status change |
||
81 | DCTS equ 1 << 0 ; CTS status change |
||
82 | endif |
||
83 | UART{NUM}_SPR port Base+7 ; UART n Scratch Pad Register (r/w) |
||
84 | endm ; __defuart |
||
85 | |||
86 | endif ; __ez80uartinc |