Browse Source

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.
pull/626/head
Wayne Warthen 4 months ago
parent
commit
4ee14cbefa
No known key found for this signature in database GPG Key ID: 8B34ED29C07EEB0A
  1. 1
      Source/HBIOS/Config/SZ80_std.asm
  2. 28
      Source/HBIOS/hbios.asm

1
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

28
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

Loading…
Cancel
Save