diff --git a/Source/HBIOS/Config/FZ80_std.asm b/Source/HBIOS/Config/FZ80_std.asm index 8ca0722e..bc8c1fad 100644 --- a/Source/HBIOS/Config/FZ80_std.asm +++ b/Source/HBIOS/Config/FZ80_std.asm @@ -25,3 +25,6 @@ #DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON OR AUTO BOOT ; #include "cfg_fz80.asm" +; +CPUOSC .SET 8000000 ; CPU OSC FREQ IN MHZ +CRTACT .SET TRUE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 79d3fb42..3822e5bb 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -3256,6 +3256,12 @@ HB_WDZ: AND %00000001 ; ISOLATE CONSOLE BIT JR NZ,INITSYS3 ; NOT SET, BYPASS CONSOLE SWITCH #ENDIF +; + #IF (PLATFORM == PLT_FZ80) + IN A,($36) ; GET IO BYTE + AND %00000001 ; ISOLATE CONSOLE BIT + JR Z,INITSYS3 ; NOT SET, BYPASS CONSOLE SWITCH + #ENDIF ; LD A,(CB_CRTDEV) ; GET CRT DISPLAY DEVICE LD (HB_NEWCON),A ; AND QUEUE TO SWITCH diff --git a/Source/HBIOS/scon.asm b/Source/HBIOS/scon.asm index 6969686f..bf8f2857 100644 --- a/Source/HBIOS/scon.asm +++ b/Source/HBIOS/scon.asm @@ -5,7 +5,7 @@ ; ; TODO: ; -SCON_IOBASE .EQU $00 +SCON_IOBASE .EQU $0000 ; NOTE: 16-BIT I/O ; SCON_STATUS .EQU SCON_IOBASE SCON_DATA .EQU SCON_IOBASE + 1 @@ -25,6 +25,9 @@ SCON_ROWS .EQU 40 SCON_INIT: CALL NEWLINE PRTS("SCON:$") + PRTS(" IO=0x$") ; FORMATTING + LD A,SCON_IOBASE + CALL PRTHEXBYTE ; ; DISPLAY CONSOLE DIMENSIONS CALL PC_SPACE @@ -68,7 +71,8 @@ SCON_IN: CALL SCON_IST ; CHECK FOR CHAR PENDING JR Z,SCON_IN ; WAIT FOR IT IF NECESSARY ;IN0 A,(SCON_DATA) ; READ THE CHAR FROM PROPIO - IN A,(SCON_DATA) ; READ THE CHAR FROM PROPIO + LD BC,SCON_DATA ; DATA PORT (16 BIT I/O) + IN A,(C) ; READ THE CHAR FROM PROPIO LD E,A RET ; @@ -76,7 +80,8 @@ SCON_IN: ; SCON_IST: ;IN0 A,(SCON_STATUS) ; READ LINE STATUS REGISTER - IN A,(SCON_STATUS) ; READ LINE STATUS REGISTER + LD BC,SCON_STATUS ; STATUS PORT (16-BIT I/O) + IN A,(C) ; READ LINE STATUS REGISTER AND SCON_KBDRDY ; ISOLATE KBDRDY JP Z,CIO_IDLE ; RETURN VIA IDLE PROCESSING OR $FF ; SET A=$FF TO SIGNAL READY @@ -89,14 +94,16 @@ SCON_OUT: JR Z,SCON_OUT ; WAIT IF NECESSARY LD A,E ; RECOVER THE CHAR TO WRITE ;OUT0 (SCON_DATA),A ; WRITE THE CHAR TO PROPIO - OUT (SCON_DATA),A ; WRITE THE CHAR TO PROPIO + LD BC,SCON_DATA ; DATA PORT (16 BIT I/O) + OUT (C),A ; WRITE THE CHAR TO PROPIO RET ; ; ; SCON_OST: ;IN0 A,(SCON_STATUS) ; READ LINE STATUS REGISTER - IN A,(SCON_STATUS) ; READ LINE STATUS REGISTER + LD BC,SCON_STATUS ; STATUS PORT (16-BIT I/O) + IN A,(C) ; READ LINE STATUS REGISTER AND SCON_DSPRDY ; ISOLATE DSPRDY JP Z,CIO_IDLE ; RETURN VIA IDLE PROCESSING OR $FF ; SET A=$FF TO SIGNAL READY diff --git a/Source/HBIOS/sser.asm b/Source/HBIOS/sser.asm index de51f598..726b83e7 100644 --- a/Source/HBIOS/sser.asm +++ b/Source/HBIOS/sser.asm @@ -4,16 +4,6 @@ ;================================================================================================== ; ; TODO: -; -;;;;SSER_IOBASE .EQU $34 -;;;;; -;;;;SSER_STATUS .EQU SSER_IOBASE -;;;;SSER_DATA .EQU SSER_IOBASE + 1 -;;;;; -;;;;SSER_IRDY .EQU %00000001 -;;;;SSER_IINV .EQU FALSE -;;;;SSER_ORDY .EQU %00000010 -;;;;SSER_OINV .EQU TRUE ; DEVECHO "SSER: IO=" DEVECHO SSERSTATUS @@ -37,8 +27,8 @@ SSER_PREINIT: ; SSER_INIT: CALL NEWLINE - PRTS("SSER$") - PRTS(": IO=0x$") ; FORMATTING + PRTS("SSER:$") + PRTS(" IO=0x$") ; FORMATTING LD A,SSERSTATUS CALL PRTHEXBYTE ; diff --git a/Source/ver.inc b/Source/ver.inc index 0697f711..9510c20e 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 5 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.5.0-dev.49" +#DEFINE BIOSVER "3.5.0-dev.50" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index cad0ea50..ec7a738f 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 5 rup equ 0 rtp equ 0 biosver macro - db "3.5.0-dev.49" + db "3.5.0-dev.50" endm