mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
eZ80: hbios i/o operations updated for FPLED_IO and ram bank initialisation
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
;
|
||||
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|RCEZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|MON]
|
||||
CPUFAM .EQU CPU_EZ80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80]
|
||||
EZ80IOBASE .EQU $FF ; EZ80 I/O BASE ADDRESS FOR EXTERNAL IO
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
|
||||
|
||||
@@ -1397,7 +1397,12 @@ BOOTWAIT:
|
||||
;
|
||||
;LD A,(RTCDEFVAL) ; GET DEFAULT VALUE
|
||||
LD A,RTCDEF ; DEFAULT VALUE
|
||||
#IF (CPUFAM == CPU_EZ80)
|
||||
LD BC,EZ80IOBASE << 8 + RTCIO
|
||||
OUT (C),A ; BC IS THE APPLIED IO ADDRESS
|
||||
#ELSE
|
||||
OUT (RTCIO),A ; SET IT
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PLATFORM == PLT_N8)
|
||||
LD A,N8_DEFACR ; ENSURE N8 ACR
|
||||
@@ -1421,9 +1426,16 @@ BOOTWAIT:
|
||||
LD A,DIAG_01
|
||||
#ENDIF
|
||||
;
|
||||
#IF (CPUFAM == CPU_EZ80)
|
||||
LD BC,EZ80IOBASE << 8 + FPLED_IO
|
||||
OUT (C),A ; BC IS THE APPLIED IO ADDRESS
|
||||
#ELSE
|
||||
OUT (FPLED_IO),A
|
||||
#ENDIF
|
||||
|
||||
#ENDIF
|
||||
;
|
||||
|
||||
#IF (LEDENABLE)
|
||||
#IF ((LEDMODE == LEDMODE_STD) | (LEDMODE == LEDMODE_SC))
|
||||
XOR A ; LED IS INVERTED, TURN IT ON
|
||||
@@ -1688,28 +1700,49 @@ ROMRESUME:
|
||||
;
|
||||
#IF (MEMMGR == MM_Z2)
|
||||
;
|
||||
#IFDEF ROMBOOT
|
||||
#IF (CPUFAM == CPU_EZ80)
|
||||
XOR A
|
||||
LD BC,EZ80IOBASE << 8 + MPGSEL_0
|
||||
OUT (C),A ; BC IS THE APPLIED IO ADDRESS
|
||||
INC A
|
||||
INC BC ; BC = MPGSEL_1
|
||||
OUT (C),A ; OUT (MPGSEL_1), $01
|
||||
|
||||
LD A,64 - 2
|
||||
INC BC ; BC = MPGSEL_2
|
||||
OUT (C),A ; PROG THIRD 16K MMU REGISTER
|
||||
INC A
|
||||
INC BC ; BC = MPGSEL_3
|
||||
OUT (C),A ; PROG FOURTH 16K MMU REGISTER
|
||||
; ENABLE PAGING
|
||||
LD A,1
|
||||
INC BC ; BC = MPGENA
|
||||
OUT (C),A ; ENABLE MMU NOW
|
||||
|
||||
#ELSE
|
||||
#IFDEF ROMBOOT
|
||||
; IF THIS IS A ROM BOOT, SETUP THE FIRST 2 16K MMU REGISTERS
|
||||
; TO MAP THE LOWEST 32K OF PHYSICAL ROM TO THE LOW 32K OF
|
||||
; CPU ADDRESS SPACE (BANKING AREA). THE FIRST 16K MAPPING IS
|
||||
; REDUNDANT BECAUSE WE ARE ALREADY RUNNING IN THIS AREA. THE
|
||||
; MAPPING OF THE SECOND 16K IS CRITICAL BECAUSE ALL ZETA 2
|
||||
; MMU REGISTERS WILL BE 0 AT RESET!
|
||||
|
||||
XOR A
|
||||
OUT (MPGSEL_0),A ; PROG FIRST 16K MMU REGISTER
|
||||
INC A
|
||||
OUT (MPGSEL_1),A ; PROG SECOND 16K MMU REGISTER
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PLATFORM == PLT_DUO)
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PLATFORM == PLT_DUO)
|
||||
; DUO HAS VARIABLE RAM SIZE. RAM ALWAYS STARTS AT 2048K.
|
||||
; SETUP COMMON RAM FOR HIGHEST 32K OF RAM BASED ON TOTAL RAM.
|
||||
LD A,128 + (RAMSIZE / 16) - 2
|
||||
#ELSE
|
||||
#ELSE
|
||||
; NORMAL ZETA 2 SYSTEM HAS FIXED 512K OF RAM. SETUP COMMON
|
||||
; FOR TOP 32K OF THIS.
|
||||
LD A,64 - 2
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
OUT (MPGSEL_2),A ; PROG THIRD 16K MMU REGISTER
|
||||
INC A
|
||||
@@ -1717,7 +1750,9 @@ ROMRESUME:
|
||||
; ENABLE PAGING
|
||||
LD A,1
|
||||
OUT (MPGENA),A ; ENABLE MMU NOW
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; PROXY INSTALLATION
|
||||
@@ -7117,7 +7152,15 @@ FP_SETLEDS:
|
||||
#IF (FPLED_INV)
|
||||
XOR $FF ; INVERT BITS IF NEEDED
|
||||
#ENDIF
|
||||
|
||||
#IF (CPUFAM == CPU_EZ80)
|
||||
PUSH BC
|
||||
LD BC,EZ80IOBASE << 8 + FPLED_IO
|
||||
OUT (C),A ; BC IS THE APPLIED IO ADDRESS
|
||||
POP BC
|
||||
#ELSE
|
||||
OUT (FPLED_IO),A ; WRITE
|
||||
#ENDIF
|
||||
FP_SETLEDS1:
|
||||
POP HL ; RESTORE HL
|
||||
RET ; DONE
|
||||
|
||||
@@ -63,6 +63,7 @@ CPU_NONE .EQU 0 ; NO CPU TYPE DEFINED
|
||||
CPU_Z80 .EQU 1 ; Z80 FAMILY
|
||||
CPU_Z180 .EQU 2 ; Z180 FAMILY
|
||||
CPU_Z280 .EQU 3 ; Z280 FAMILY
|
||||
CPU_EZ80 .EQU 4 ; eZ280 FAMILY
|
||||
;
|
||||
; BIOS MODE
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user