mirror of https://github.com/wwarthen/RomWBW.git
4 changed files with 138 additions and 14 deletions
@ -0,0 +1,87 @@ |
|||||
|
; |
||||
|
;================================================================================================== |
||||
|
; eZ80 UART DRIVER (SERIAL PORT) |
||||
|
;================================================================================================== |
||||
|
; |
||||
|
|
||||
|
UART0_LSR .EQU $C5 |
||||
|
UART0_THR .EQU $C0 |
||||
|
|
||||
|
LSR_THRE .EQU $20 |
||||
|
|
||||
|
#DEFINE IN0_A(p) .DB $ED,$38,p |
||||
|
#DEFINE OUT0_A(p) .DB $ED,$39,p |
||||
|
|
||||
|
; #DEFINE CALLIL(a,b) .DB $5B,$CD \ .DW b \ .DB b |
||||
|
|
||||
|
EZUART_PREINIT: |
||||
|
LD E, 'A' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 'B' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 'C' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 'D' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 13 |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 10 |
||||
|
CALL EZUART_OUT |
||||
|
RET |
||||
|
|
||||
|
EZUART_INIT: |
||||
|
LD E, '1' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, '2' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, '3' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, '4' |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 13 |
||||
|
CALL EZUART_OUT |
||||
|
LD E, 10 |
||||
|
CALL EZUART_OUT |
||||
|
|
||||
|
;call.il, $001000 |
||||
|
.db $5B,$CD |
||||
|
.dw $1000 |
||||
|
.db $00 |
||||
|
|
||||
|
RET |
||||
|
|
||||
|
EZUART_IN: |
||||
|
|
||||
|
; |
||||
|
; OUT CHAR IN E |
||||
|
EZUART_OUT: |
||||
|
; WAIT FOR UART TO BE READY FOR TX |
||||
|
WAIT_FOR_TX_READY: |
||||
|
; IN0 A,(UART0_LSR) ; /*ED38C5*/ |
||||
|
IN0_A (UART0_LSR) |
||||
|
AND LSR_THRE |
||||
|
JR Z,WAIT_FOR_TX_READY |
||||
|
|
||||
|
; SEND THE CHAR |
||||
|
LD A, E |
||||
|
; OUT0 (UART0_LSR),A ; ED39C0 |
||||
|
OUT0_A (UART0_THR) |
||||
|
RET |
||||
|
|
||||
|
EZUART_IST: |
||||
|
EZUART_OST: |
||||
|
EZUART_INITDEV: |
||||
|
EZUART_QUERY: |
||||
|
EZUART_DEVICE: |
||||
|
RET |
||||
|
|
||||
|
EZUART_FNTBL: |
||||
|
.DW EZUART_IN |
||||
|
.DW EZUART_OUT |
||||
|
.DW EZUART_IST |
||||
|
.DW EZUART_OST |
||||
|
.DW EZUART_INITDEV |
||||
|
.DW EZUART_QUERY |
||||
|
.DW EZUART_DEVICE |
||||
|
#IF (($ - EZUART_FNTBL) != (CIO_FNCNT * 2)) |
||||
|
.ECHO "*** INVALID EZUART FUNCTION TABLE ***\n" |
||||
Loading…
Reference in new issue