@ -356,7 +356,7 @@ RTCDEF .SET RTCDEF | %00001000 ; INITIAL SPEED LOW
DEVECHO "\n"
# ENDIF
# include "ez80instr.inc"
# INCLUDE "ez80instr.inc"
;
;==================================================================================================
@ -1686,14 +1686,6 @@ Z280_INITZ:
OUT ( EIPC_SCDP ), A ; SET SYSTEM CONTROL DATA PORT (SCDP)
# ENDIF
;
; HEATH BARE METAL INIT
;
# IF ( PLATFORM = = PLT_HEATH )
XOR A ; 16 MHZ OPERATION?
OUT ( H8P_SPDIO ), A ; IMPLEMENT IT
LD ( H8P_SPEED ), A ; UPDATE FP SHADOW
# ENDIF
;
;--------------------------------------------------------------------------------------------------
; PLATFORM MEMORY MANAGEMENT INITIALIZATION
;--------------------------------------------------------------------------------------------------
@ -2206,6 +2198,10 @@ HB_START2:
LD ( SND_CNT ), A ; SND DEVICES
LD ( RTC_DISPACT ), A ; RTC DEVICE
LD ( DS KY_DISPACT ), A ; DSKY DEVICE
LD HL , RTC_DISPERR ; DEFAULT RTC DISPADR
LD ( RTC_DISPADR ), HL ; SET IT
LD HL , DS KY_DISPERR ; DEFAULT DSKY DISPADR
LD ( DS KY_DISPADR ), HL ; SET IT
;
; INITIALIZE SOME HCB ENTRIES
;
@ -2397,9 +2393,11 @@ HB_CPU1:
;
; RECORD THE UPDATED CPU OSCILLATOR SPEED
;
# IF (( CPUFAM = = CPU_Z180 ) | ( CPUSPDCAP = = SP D_HILO ))
# IF (( CPUFAM = = CPU_Z180 ) | ( CPUSPDCAP = = SP D_HILO ) | ( PLATFORM = PLT_HEATH ) )
; SPEED MEASURED WILL BE HALF OSCILLATOR SPEED
; SO RECORD DOUBLE THE MEASURED VALUE
; FOR HEATH, WE ARE ASSUMING THAT THE CPU SPEED DIVISOR WAS
; PREVIOUSLY SET TO $01 MEANING HALF OF OSCILLATOR SPEED.
SLA L
RL H
# ENDIF
@ -2433,6 +2431,12 @@ HB_CPU2:
# ENDIF
# ENDIF
;
# IF ( PLATFORM = = PLT_HEATH )
; ADJUST HL TO REFLECT HALF SPEED OPERATION
SRL H ; ADJUST HL ASSUMING
RR L ; HALF SPEED OPERATION
# ENDIF
;
# IF (( CPUSPDCAP = = SP D_HILO ) & ( PLATFORM = = PLT_SBC ))
# IF ( CPUSPDDEF = = SP D_HIGH )
; SET HIGH SPEED VIA RTC LATCH
@ -4589,6 +4593,9 @@ RTC_DISPERR:
; WILL ONLY SAVE THE FIRST ADDRESS SET
;
RTC_SETDISP:
LD A ,( RTC_DISPACT ) ; GET ACTIVE FLAG
OR A ; IS IT ACTIVE?
RET NZ ; ABORT IF ALREADY ACTIVE
LD ( RTC_DISPADR ), BC ; SAVE THE ADDRESS
OR $ FF ; FLAG ACTIVE VALUE
LD ( RTC_DISPACT ), A ; SAVE IT
@ -4619,6 +4626,9 @@ DSKY_DISPERR:
; WILL ONLY SAVE THE FIRST ADDRESS SET
;
DSKY_SETDISP:
LD A ,( DS KY_DISPACT ) ; GET ACTIVE FLAG
OR A ; IS IT ACTIVE?
RET NZ ; ABORT IF ALREADY ACTIVE
LD ( DS KY_DISPADR ), BC ; SAVE THE ADDRESS
OR $ FF ; FLAG ACTIVE VALUE
LD ( DS KY_DISPACT ), A ; SAVE IT