diff --git a/Source/HBIOS/uart.asm b/Source/HBIOS/uart.asm index 52ecd2cf..e38b095f 100644 --- a/Source/HBIOS/uart.asm +++ b/Source/HBIOS/uart.asm @@ -47,6 +47,12 @@ UART_EFR .EQU 2 ; LCR=$BF: ENHANCED FEATURE REG (READ/WRITE) ;UART_FIFO .EQU 0 ; FIFO ENABLE BIT ;UART_AFC .EQU 1 ; AUTO FLOW CONTROL ENABLE BIT ; +UARTSBASE .EQU $68 +UARTCBASE .EQU $80 +UARTMBASE .EQU $48 +UART4BASE .EQU $C0 +UARTRBASE .EQU $A0 +; #DEFINE UART_INP(RID) CALL UART_INP_IMP \ .DB RID #DEFINE UART_OUTP(RID) CALL UART_OUTP_IMP \ .DB RID ; @@ -416,7 +422,7 @@ UART_DETECT2: ; PICK BETWEEN 16550A/C ; UART_DETECT_NONE: LD A,(IY + 2) ; BASE IO PORT - CP $68 ; IS THIS PRIMARY SBC PORT? + CP UARTSBASE ; IS THIS PRIMARY SBC PORT? JR Z,UART_DETECT_8250 ; SPECIAL CASE FOR PRIMARY UART! LD A,UART_NONE ; IF SO, TREAT AS 8250 NO MATTER WHAT RET @@ -591,8 +597,8 @@ UART_CFG: ; SBC/ZETA ONBOARD SERIAL PORT .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $68 ; IO PORT BASE (RBR, THR) - .DB $68 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UARTSBASE ; IO PORT BASE (RBR, THR) + .DB UARTSBASE + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER #ENDIF @@ -600,8 +606,8 @@ UART_CFG: ; CASSETTE INTERFACE SERIAL PORT .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $80 ; IO PORT BASE (RBR, THR) - .DB $80 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UARTCBASE ; IO PORT BASE (RBR, THR) + .DB UARTCBASE + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCASSPD ; LINE CONFIGURATION .FILL 2,$FF ; FILLER #ENDIF @@ -609,8 +615,8 @@ UART_CFG: ; MF/PIC SERIAL PORT .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $48 ; IO PORT BASE (RBR, THR) - .DB $48 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UARTMBASE ; IO PORT BASE (RBR, THR) + .DB UARTMBASE + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER #ENDIF @@ -618,29 +624,29 @@ UART_CFG: ; 4UART SERIAL PORT A .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $C0 ; IO PORT BASE (RBR, THR) - .DB $C0 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UART4BASE+0 ; IO PORT BASE (RBR, THR) + .DB UART4BASE+0 + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER ; 4UART SERIAL PORT B .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $C8 ; IO PORT BASE (RBR, THR) - .DB $C8 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UART4BASE+8 ; IO PORT BASE (RBR, THR) + .DB UART4BASE+8 + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER ; 4UART SERIAL PORT C .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $D0 ; IO PORT BASE (RBR, THR) - .DB $D0 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UART4BASE+16 ; IO PORT BASE (RBR, THR) + .DB UART4BASE+16 + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER ; 4UART SERIAL PORT D .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $D8 ; IO PORT BASE (RBR, THR) - .DB $D8 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UART4BASE+24 ; IO PORT BASE (RBR, THR) + .DB UART4BASE+24 + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER #ENDIF @@ -648,15 +654,15 @@ UART_CFG: ; UARTRC SERIAL PORT A .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $A0 ; IO PORT BASE (RBR, THR) - .DB $A0 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UARTRBASE ; IO PORT BASE (RBR, THR) + .DB UARTRBASE + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER ; UARTRC SERIAL PORT B .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE - .DB $A8 ; IO PORT BASE (RBR, THR) - .DB $A8 + UART_LSR ; LINE STATUS PORT (LSR) + .DB UARTRBASE+8 ; IO PORT BASE (RBR, THR) + .DB UARTRBASE+8 + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION .FILL 2,$FF ; FILLER #ENDIF