|
|
|
@ -354,7 +354,9 @@ RTCDEF .SET RTCDEF | %00001000 ; INITIAL SPEED LOW |
|
|
|
; EMIT PREFIX REQUIRED BY EZ80 TO ENSURE CORRECT 16 BIT IO OPERATION |
|
|
|
; |
|
|
|
#IF (CPUFAM == CPU_EZ80) |
|
|
|
#DEFINE EZ80_IO .DB $49 $CF |
|
|
|
#DEFINE EZ80_IO .DB $49, $CF ; RST.L $08 |
|
|
|
#DEFINE EZ80_FN .DB $49, $D7 ; RST.L $10 |
|
|
|
#DEFINE EZ80_BNKSEL .DB $49, $DF ; RST.L $18 |
|
|
|
#ELSE |
|
|
|
#DEFINE EZ80_IO |
|
|
|
#ENDIF |
|
|
|
@ -620,6 +622,12 @@ HBX_ROM: |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_Z2) |
|
|
|
|
|
|
|
#IF (CPUFAM == CPU_EZ80) |
|
|
|
EZ80_BNKSEL |
|
|
|
RET |
|
|
|
#ELSE |
|
|
|
|
|
|
|
BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE |
|
|
|
JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE |
|
|
|
RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT |
|
|
|
@ -641,6 +649,7 @@ HBX_ROM: |
|
|
|
#ENDIF |
|
|
|
RET ; DONE |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_N8) |
|
|
|
BIT 7,A ; TEST BIT 7 FOR RAM VS. ROM |
|
|
|
@ -1368,7 +1377,9 @@ HB_START: |
|
|
|
HB_RESTART: |
|
|
|
; |
|
|
|
DI ; NO INTERRUPTS |
|
|
|
#IF (CPUFAM != CPU_EZ80) |
|
|
|
IM 1 ; INTERRUPT MODE 1 |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IFDEF APPBOOT |
|
|
|
; |
|
|
|
@ -1419,6 +1430,33 @@ BOOTWAIT: |
|
|
|
LD A,RPH_DEFACR ; ENSURE RPH ACR |
|
|
|
OUT0 (RPH_ACR),A ; ... REGISTER IS INITIALIZED |
|
|
|
#ENDIF |
|
|
|
|
|
|
|
|
|
|
|
#IF (CPUFAM == CPU_EZ80) |
|
|
|
|
|
|
|
; PROVIDE THE EZ80 FIRMWARE WITH PLATFORM CONFIGUATIONS |
|
|
|
|
|
|
|
XOR A ; FUNCTION CODE TO INIT FIRMWARE |
|
|
|
LD HL, PLT_DESCR |
|
|
|
|
|
|
|
EZ80_FN ; PROVIDE FIRMWARE DETAILS OF BUILD CONFIGURATION |
|
|
|
JR PLT_DESCR_END |
|
|
|
|
|
|
|
PLT_DESCR: |
|
|
|
.DB PLT_RCZ80 |
|
|
|
.DB MEMMGR |
|
|
|
.DW RAMSIZE |
|
|
|
.DW ROMSIZE |
|
|
|
.DB MPGSEL_0 |
|
|
|
.DB MPGSEL_1 |
|
|
|
.DB MPGSEL_2 |
|
|
|
.DB MPGSEL_3 |
|
|
|
.DB MPGENA |
|
|
|
|
|
|
|
PLT_DESCR_END: |
|
|
|
|
|
|
|
#ENDIF |
|
|
|
|
|
|
|
; |
|
|
|
; INITIALIZE DIAGNOSTIC AND/OR FRONT PANEL LED(S) TO INDICATE THE |
|
|
|
; SYSTEM IS ALIVE. WE HAVE NO RAM AT THIS TIME, SO WE CANNOT USE |
|
|
|
@ -1432,7 +1470,7 @@ BOOTWAIT: |
|
|
|
LD A,DIAG_01 |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
EZ80_IO |
|
|
|
EZ80_IO() |
|
|
|
OUT (FPLED_IO),A |
|
|
|
|
|
|
|
#ENDIF |
|
|
|
@ -2420,6 +2458,7 @@ HB_CPU3: |
|
|
|
; OPERATING INTERRUPT MODE. NOTE THAT INTERRUPTS REMAIN |
|
|
|
; DISABLED AT THIS POINT. |
|
|
|
; |
|
|
|
#IF (CPUFAM != CPU_EZ80) |
|
|
|
#IF ((INTMODE == 2) | ((INTMODE == 1) & (CPUFAM == CPU_Z180))) |
|
|
|
; SETUP Z80 IVT AND INT MODE 2 |
|
|
|
LD A,HBX_IVT >> 8 ; SETUP HI BYTE OF IVT ADDRESS |
|
|
|
@ -2435,6 +2474,7 @@ HB_CPU3: |
|
|
|
IM 2 ; SWITCH TO INT MODE 2 |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_Z280) |
|
|
|
; NOW POINT TO RAM COPY OF Z280 INT/TRAP TABLE |
|
|
|
@ -2445,6 +2485,7 @@ HB_CPU3: |
|
|
|
LDCTL (C),HL |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (CPUFAM != CPU_EZ80) |
|
|
|
#IF (INTMODE == 3) |
|
|
|
; |
|
|
|
; SETUP Z280 INT A FOR VECTORED INTERRUPTS |
|
|
|
@ -2456,6 +2497,7 @@ HB_CPU3: |
|
|
|
IM 3 |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
;-------------------------------------------------------------------------------------------------- |
|
|
|
; SYSTEM TIMER INITIALIZATION |
|
|
|
|