From 59dba8d250f40e8e521447849179742718029bf7 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Mon, 5 Jan 2026 21:20:13 +1100 Subject: [PATCH] HBIOS: added new config option to enable support for Turbo Z80 CPU boosting to 20Mhz --- Source/HBIOS/cfg_DUO.asm | 1 + Source/HBIOS/cfg_DYNO.asm | 1 + Source/HBIOS/cfg_EPITX.asm | 1 + Source/HBIOS/cfg_EZZ80.asm | 1 + Source/HBIOS/cfg_GMZ180.asm | 1 + Source/HBIOS/cfg_HEATH.asm | 1 + Source/HBIOS/cfg_MASTER.asm | 2 ++ Source/HBIOS/cfg_MBC.asm | 1 + Source/HBIOS/cfg_MK4.asm | 1 + Source/HBIOS/cfg_MON.asm | 1 + Source/HBIOS/cfg_MSX.asm | 1 + Source/HBIOS/cfg_N8.asm | 1 + Source/HBIOS/cfg_N8PC.asm | 1 + Source/HBIOS/cfg_NABU.asm | 1 + Source/HBIOS/cfg_RC2014.asm | 1 + Source/HBIOS/cfg_RCEZ80.asm | 1 + Source/HBIOS/cfg_RCZ180.asm | 1 + Source/HBIOS/cfg_RCZ280.asm | 1 + Source/HBIOS/cfg_RCZ80.asm | 1 + Source/HBIOS/cfg_RPH.asm | 1 + Source/HBIOS/cfg_SBC.asm | 1 + Source/HBIOS/cfg_SCZ180.asm | 1 + Source/HBIOS/cfg_SZ180.asm | 1 + Source/HBIOS/cfg_SZ80.asm | 1 + Source/HBIOS/cfg_UNA.asm | 1 + Source/HBIOS/cfg_Z80RETRO.asm | 1 + Source/HBIOS/cfg_ZETA.asm | 1 + Source/HBIOS/cfg_ZETA2.asm | 1 + Source/HBIOS/hbios.asm | 15 +++++++++++++++ 29 files changed, 44 insertions(+) diff --git a/Source/HBIOS/cfg_DUO.asm b/Source/HBIOS/cfg_DUO.asm index 3aa57ae6..612a674d 100644 --- a/Source/HBIOS/cfg_DUO.asm +++ b/Source/HBIOS/cfg_DUO.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_DUO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_DYNO.asm b/Source/HBIOS/cfg_DYNO.asm index 802117bc..2539de0a 100644 --- a/Source/HBIOS/cfg_DYNO.asm +++ b/Source/HBIOS/cfg_DYNO.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_EPITX.asm b/Source/HBIOS/cfg_EPITX.asm index a831899d..b5581f43 100644 --- a/Source/HBIOS/cfg_EPITX.asm +++ b/Source/HBIOS/cfg_EPITX.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_EPITX ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_EZZ80.asm b/Source/HBIOS/cfg_EZZ80.asm index 54b02180..2592c5ff 100644 --- a/Source/HBIOS/cfg_EZZ80.asm +++ b/Source/HBIOS/cfg_EZZ80.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_GMZ180.asm b/Source/HBIOS/cfg_GMZ180.asm index 8dc43d88..f006da67 100644 --- a/Source/HBIOS/cfg_GMZ180.asm +++ b/Source/HBIOS/cfg_GMZ180.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_GMZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_HEATH.asm b/Source/HBIOS/cfg_HEATH.asm index 719e87d7..c23fa116 100644 --- a/Source/HBIOS/cfg_HEATH.asm +++ b/Source/HBIOS/cfg_HEATH.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_HEATH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_MASTER.asm b/Source/HBIOS/cfg_MASTER.asm index 6664a4b8..4a84e9f4 100644 --- a/Source/HBIOS/cfg_MASTER.asm +++ b/Source/HBIOS/cfg_MASTER.asm @@ -51,6 +51,8 @@ ; PLATFORM .EQU PLT_NONE ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .EQU CPU_NONE ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .EQU FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ +TURBOZ80DISPRT .EQU $00 ; DUMMY I/O PORT ADDRESS TO READ FROM, TO DISABLE TURBO BOOST FOR NEXT 31 CLOCK TICKS NMOSCPU .EQU FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .EQU BIOS_NONE ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_MBC.asm b/Source/HBIOS/cfg_MBC.asm index d990dd87..f5943d4f 100644 --- a/Source/HBIOS/cfg_MBC.asm +++ b/Source/HBIOS/cfg_MBC.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_MK4.asm b/Source/HBIOS/cfg_MK4.asm index 22a1c406..bec107f0 100644 --- a/Source/HBIOS/cfg_MK4.asm +++ b/Source/HBIOS/cfg_MK4.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_MON.asm b/Source/HBIOS/cfg_MON.asm index f28b9ceb..cea4800f 100644 --- a/Source/HBIOS/cfg_MON.asm +++ b/Source/HBIOS/cfg_MON.asm @@ -53,6 +53,7 @@ ; PLATFORM .SET PLT_MON ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_MSX.asm b/Source/HBIOS/cfg_MSX.asm index 53ec4133..3da603c8 100644 --- a/Source/HBIOS/cfg_MSX.asm +++ b/Source/HBIOS/cfg_MSX.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_MSX ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80|MSX|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET TRUE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_N8.asm b/Source/HBIOS/cfg_N8.asm index abd5c5a3..88944570 100644 --- a/Source/HBIOS/cfg_N8.asm +++ b/Source/HBIOS/cfg_N8.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_N8PC.asm b/Source/HBIOS/cfg_N8PC.asm index 5ccf77d7..2ccffd6b 100644 --- a/Source/HBIOS/cfg_N8PC.asm +++ b/Source/HBIOS/cfg_N8PC.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_N8PC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_NABU.asm b/Source/HBIOS/cfg_NABU.asm index 532b8bc1..2e77e5b7 100644 --- a/Source/HBIOS/cfg_NABU.asm +++ b/Source/HBIOS/cfg_NABU.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_NABU ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_RC2014.asm b/Source/HBIOS/cfg_RC2014.asm index 002f28e8..7c0654ac 100644 --- a/Source/HBIOS/cfg_RC2014.asm +++ b/Source/HBIOS/cfg_RC2014.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_RC2014 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_RCEZ80.asm b/Source/HBIOS/cfg_RCEZ80.asm index 3f66e2f1..ee7431e4 100644 --- a/Source/HBIOS/cfg_RCEZ80.asm +++ b/Source/HBIOS/cfg_RCEZ80.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_RCEZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_EZ80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_RCZ180.asm b/Source/HBIOS/cfg_RCZ180.asm index 55478379..b5ed732b 100644 --- a/Source/HBIOS/cfg_RCZ180.asm +++ b/Source/HBIOS/cfg_RCZ180.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_RCZ280.asm b/Source/HBIOS/cfg_RCZ280.asm index 4553f374..c01a39e5 100644 --- a/Source/HBIOS/cfg_RCZ280.asm +++ b/Source/HBIOS/cfg_RCZ280.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_RCZ80.asm b/Source/HBIOS/cfg_RCZ80.asm index 74f15542..38c58e7d 100644 --- a/Source/HBIOS/cfg_RCZ80.asm +++ b/Source/HBIOS/cfg_RCZ80.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_RPH.asm b/Source/HBIOS/cfg_RPH.asm index 1010d4a0..cd0780cf 100644 --- a/Source/HBIOS/cfg_RPH.asm +++ b/Source/HBIOS/cfg_RPH.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET TRUE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_SBC.asm b/Source/HBIOS/cfg_SBC.asm index 71c09dc3..b954a6c0 100644 --- a/Source/HBIOS/cfg_SBC.asm +++ b/Source/HBIOS/cfg_SBC.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_SCZ180.asm b/Source/HBIOS/cfg_SCZ180.asm index eae3763e..2aca7296 100644 --- a/Source/HBIOS/cfg_SCZ180.asm +++ b/Source/HBIOS/cfg_SCZ180.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_SZ180.asm b/Source/HBIOS/cfg_SZ180.asm index a8365ad0..43ac53b7 100644 --- a/Source/HBIOS/cfg_SZ180.asm +++ b/Source/HBIOS/cfg_SZ180.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_SZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_SZ80.asm b/Source/HBIOS/cfg_SZ80.asm index 1f3bafc9..a9265573 100644 --- a/Source/HBIOS/cfg_SZ80.asm +++ b/Source/HBIOS/cfg_SZ80.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_SZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_UNA.asm b/Source/HBIOS/cfg_UNA.asm index f4ab3ab0..71082366 100644 --- a/Source/HBIOS/cfg_UNA.asm +++ b/Source/HBIOS/cfg_UNA.asm @@ -17,6 +17,7 @@ ; ;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .EQU FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA] ; FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES diff --git a/Source/HBIOS/cfg_Z80RETRO.asm b/Source/HBIOS/cfg_Z80RETRO.asm index 17e7a5e3..85dce675 100644 --- a/Source/HBIOS/cfg_Z80RETRO.asm +++ b/Source/HBIOS/cfg_Z80RETRO.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_ZETA.asm b/Source/HBIOS/cfg_ZETA.asm index 76f9639d..b170a07c 100644 --- a/Source/HBIOS/cfg_ZETA.asm +++ b/Source/HBIOS/cfg_ZETA.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_ZETA2.asm b/Source/HBIOS/cfg_ZETA2.asm index 4adbeb8a..3c04126a 100644 --- a/Source/HBIOS/cfg_ZETA2.asm +++ b/Source/HBIOS/cfg_ZETA2.asm @@ -51,6 +51,7 @@ ; PLATFORM .SET PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +TURBOZ80 .SET FALSE ; TRUE FOR TURBO Z80 BOOSTING TO 20MHZ NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 44321c0c..7da984d3 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -1400,6 +1400,16 @@ HBX_INT_SP .EQU $ - 2 RET.L ; INTERRUPTS WILL BE ENABLED BY BY EZ80 FIRMWARE ; CAN THEY BE ENABLED HERE - DOES THAT RISK RE-ENTRANT OF THE HANDLER? #ELSE +#IF (TURBOZ80) + ; IF THE CPU HAS BOOSTED TO 20MHZ, ANY PERIPHERAL THAT ATTEMPTS + ; TO DETECT THE RETI INSTRUCTION ON THE DATA BUS WILL LIKELY FAIL. + ; WE NEED TO SLOW THE PROCESSOR BACK TO THE DEFAULT SPEED. + ; ANY I/O OPERATION WILL CAUSE THE PROCESSOR TO CLOCK DOWN TO THE + ; DEFAULT SPEED FOR THE NEXT 31 CLOCK TICKS + PUSH AF + IN A, (TURBOZ80DISPRT) ; ANY IO ADDRESS CAN BE USED, SO LONG AS IT HAS NO DEVICE IMPACT + POP AF +#ENDIF HB_EI ; ENABLE INTERRUPTS RETI ; AND RETURN #ENDIF @@ -3340,6 +3350,11 @@ INTTEST_Z: LD HL,(CB_CPUKHZ) CALL PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA PRTS("MHz$") + +#IF (TURBOZ80) + CALL PRTSTRD + .TEXT " (TURBO: 20Mhz)$" +#ENDIF ; #IF (CPUFAM == CPU_Z180) PRTS(" IO=0x$")