From 842a79ae5d910f0192bfd1524310039b62769698 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Sun, 24 Mar 2024 15:36:32 +0800 Subject: [PATCH] Correct the logical sequence of the Duo Dual UART ports Make the first UART port detected be Channel A $78-$7F : CHSEL=1. ( logic 0 on the CHSEL selects the UART channel B while a logic 1 selects UART channel A. ) --- Source/HBIOS/uart.asm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Source/HBIOS/uart.asm b/Source/HBIOS/uart.asm index f0126ead..c33341d8 100644 --- a/Source/HBIOS/uart.asm +++ b/Source/HBIOS/uart.asm @@ -1163,6 +1163,13 @@ UART_CFG_MFP: ; DUAL UART CHANNEL A .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) .DB 0 ; UART TYPE + .DB UARTDBASE+8 ; IO PORT BASE (RBR, THR) + .DB UARTDBASE+8 + UART_LSR ; LINE STATUS PORT (LSR) + .DW UARTCFG ; LINE CONFIGURATION + .DW 0 ; SHOULD NEVER NEED INT HANDLER + ; DUAL UART CHANNEL B + .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) + .DB 0 ; UART TYPE .DB UARTDBASE ; IO PORT BASE (RBR, THR) .DB UARTDBASE + UART_LSR ; LINE STATUS PORT (LSR) .DW UARTCFG ; LINE CONFIGURATION @@ -1171,14 +1178,6 @@ UART_CFG_MFP: .ECHO "UART: MODE=DUAL, IO=" .ECHO UARTDBASE+0 .ECHO "\n" -; - ; DUAL UART CHANNEL B - .DB 0 ; DEVICE NUMBER (UPDATED DURING INIT) - .DB 0 ; UART TYPE - .DB UARTDBASE+8 ; IO PORT BASE (RBR, THR) - .DB UARTDBASE+8 + UART_LSR ; LINE STATUS PORT (LSR) - .DW UARTCFG ; LINE CONFIGURATION - .DW 0 ; SHOULD NEVER NEED INT HANDLER ; .ECHO "UART: MODE=DUAL, IO=" .ECHO UARTDBASE+8