From ba5af175ba637f736ee361e7f9b2023078b07c1c Mon Sep 17 00:00:00 2001 From: Rob Gowin Date: Fri, 6 Jun 2025 11:32:15 -0400 Subject: [PATCH] Limit Xosera config to 2 UARTS; set $A0 base addr. The consenus is that the best default address for Xosera is $A0, so make that the default. However, in that case we need to limit the number of UARTs that are probed to two because the probe for a third UART writes unlucky values to Xosera (at $A3) and causes it to reconfigure itself and lock up the bus for a time. Thanks to Wayne for his help in debugging this. --- Source/HBIOS/Config/RCZ80_xosera.asm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/HBIOS/Config/RCZ80_xosera.asm b/Source/HBIOS/Config/RCZ80_xosera.asm index 51098f56..ac31346c 100644 --- a/Source/HBIOS/Config/RCZ80_xosera.asm +++ b/Source/HBIOS/Config/RCZ80_xosera.asm @@ -41,14 +41,21 @@ ; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT ; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU". ; -; THIS FILE ENABLES THE XOSERA DRIVER WITH A BASE ADDRESS Of 0XE0 -; AND DISPLAY SIZE OF 80 COLUMNS X 30 ROWS +; THIS FILE ENABLES THE XOSERA DRIVER WITH A BASE ADDRESS Of $A0 AND +; DISPLAY SIZE OF 80 COLUMNS X 30 ROWS. ; #INCLUDE "Config/RCZ80_std.asm" ; INHERIT FROM OFFICIAL BUILD SETTINGS ; XOSENABLE .SET TRUE ; XOSERA: ENABLE XOSERA VIDEO DRIVERS (XOSERA.ASM) -XOS_BASE .SET $20 ; XOSERA: I/O BASE ADDRESS (REQUIRES 32 BYTES) +XOS_BASE .SET $A0 ; XOSERA: I/O BASE ADDRESS (REQUIRES 32 BYTES) XOSSIZ .SET V80X30 ; XOSERA: DISPLAY FORMAT [V80X30|V80X60] ; AUTOCON .SET FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT VDAEMU_SERKBD .SET $0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD +; +; WHEN A XOSERA BOARD IN IS THE SYSTEM, LIMIT THE NUMBER OF UARTS THAT ARE PROBED +; TO TWO, BECAUSE THE PROBE TO DETECT A THIRD UART WRITES UNLUCKY VALUES TO +; XOSERA THAT CAUSE IT TO RECONFIGURE ITSELF AND LOCK UP THE BUS FOR A TIME. IF +; YOU NEED MORE THAN TWO UARTS, YOU WILL NEED TO MOVE XOSERA OUT OF THE $A0-$BF +; I/O ADDRESS REGION. +UARTCNT .SET 2