From 4ee14cbefa90a37a4ac63d7f91a47171fb286a7a Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 13 Oct 2025 16:54:20 -0700 Subject: [PATCH] Tweak S100 Z80 IOBYTE Handling Attempting to ensure that RomWBW properly "follows" the IOBYTE settings at implemented in the dedicated S100 Z80 Monitor. Specifically, the bit that controls the boot console. --- Source/HBIOS/Config/SZ80_std.asm | 1 - Source/HBIOS/hbios.asm | 28 ++++++++++++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Source/HBIOS/Config/SZ80_std.asm b/Source/HBIOS/Config/SZ80_std.asm index 26685630..b58472ce 100644 --- a/Source/HBIOS/Config/SZ80_std.asm +++ b/Source/HBIOS/Config/SZ80_std.asm @@ -50,7 +50,6 @@ CPUOSC .SET 8000000 ; CPU OSC FREQ IN MHZ RAMSIZE .SET 1024 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) -CRTACT .SET TRUE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP MEMMGR .SET MM_SZ80 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512|SZ80] ; FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 45f58ec4..b8130ce3 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -3004,6 +3004,28 @@ HB_BOOTDLY: ; HB_CONRDY: ; +; S100 Z80 CONSOLE SELECTION +; THE S100 Z80 USES AN IOBYTE BIT TO SELECT BETWEEN SERIAL PORT +; AND THE PROPELLER CONSOLE. THE PROPELLER CONSOLE IS ASSUMED TO +; BE THE CRT DEVICE. WE USE THE IOBYTE BIT TO SET THE STARTUP +; CHARACTER DEVICE TO THE PROPELLER CONSOLE IF APPROPRIATE. THIS +; DOES ASSUME THAT THE CRT DEVICE IS THE PROPELLER CONSOLE OR THERE +; IS NO CRT DEVICE. +; +; +#IF ((PLATFORM == PLT_SZ80) & (MEMMGR == MM_SZ80)) + IN A,($EF) ; GET IO BYTE + AND %00100000 ; ISOLATE CONSOLE BIT + JR Z,HB_SZ80CON_Z ; IF ZERO, BYPASS CONSOLE SWITCH + LD A,(CB_CRTDEV) ; GET CRT DEVICE + CP $FF ; CHECK FOR NO H/W + JR Z,HB_SZ80CON_Z ; IF ZERO, BYPASS CONSOLE SWITCH + LD (CB_CONDEV),A ; SET CONSOLE DEVICE +; +HB_SZ80CON_Z: +; +#ENDIF +; ; SUPPRESS HARDWARE FLOW CONTROL TEMPORARILY, IF NEEDED. THIS IS ; GENERALLY NOT USED ANYMORE BECAUSE THE UART DRIVER NOW CHECKS FOR ; A VALID CTS SIGNAL AND ADJUSTS AS NEEDED. @@ -3702,12 +3724,6 @@ HB_WDZ: AND %00000001 ; ISOLATE CONSOLE BIT JR NZ,INITSYS3 ; NOT SET, BYPASS CONSOLE SWITCH #ENDIF -; - #IF ((PLATFORM == PLT_SZ80) & (MEMMGR == MM_SZ80)) - IN A,($EF) ; GET IO BYTE - AND %00100000 ; ISOLATE CONSOLE BIT - JR Z,INITSYS3 ; IF ZERO, BYPASS CONSOLE SWITCH - #ENDIF ; #IF ((PLATFORM == PLT_SZ80) & (MEMMGR == MM_Z2)) ; IOBYTE: XXXXXVVC