@ -1602,51 +1602,43 @@ MBC_SINGLE:
;
# ENDIF
;
; IF ALREADY EXECUTING IN RAM, BYPASS RAM BANK INSTALLATION
;
LD A ,( HB_RAMFLAG )
OR A
JR NZ , HB_START1
;
; IF BID_BOOT AND BID_BIOS ARE THE SAME, THEN IT IS NEVER APPROPRIATE
; TO COPY THE HBIOS IMAGE FROM BID_BOOT TO BID_BIOS. THIS IS TYPICALLY
; THE CASE FOR A ROMLESS SYSTEM.
;
# IF ( BID_BOOT ! = BID_BIOS )
;
; INSTALL HBIOS IN RAM BANK
;
LD A ,( HB_CURBNK )
;
; CHECK TO SEE IF WE ARE ALREADY RUNNING IN THE HBIOS
; BANK AND SKIP THE COPY IF SO (DON'T COPY OVER OURSELVES).
; THIS SITUATION OCCURS ON A ROMLESS STARTUP OR WHEN DOING A
; FULL RESTART OF A SYSTEM USING THE EXISTING HBIOS COPY.
CP BID_BIOS
JR Z , HB_START1
;
LD ( HB_SRCBNK ), A
LD A , BID_BIOS
LD ( HB_DSTBNK ), A
LD HL , 0
LD DE , 0
LD BC , $ 8000
# IF ( MEMMGR = = MM_Z280 )
# IF ( MEMMGR = = MM_Z280 )
CALL Z280_BNKCPY
# ELSE
# ELSE
CALL HBX_BNKCPY
# ENDIF
# ENDIF
;
; TRANSITION TO HBIOS IN RAM BANK
;
# IF ( MEMMGR = = MM_Z280 )
# IF ( MEMMGR = = MM_Z280 )
LD A , BID_BIOS
LD B , $ 10 ; FIRST SYSTEM PDR
CALL Z280_BNKSEL
JR HB_START1
# ELSE
# ELSE
LD A , BID_BIOS ; BIOS BANK ID
LD IX , HB_START1 ; EXECUTION RESUMES HERE
CALL HBX_BNKCALL ; CONTINUE IN RAM BANK, DO NOT RETURN
HALT ; WE SHOULD NOT COME BACK HERE!
# ENDIF
;
# ENDIF
;
HB_RAMFLAG .DB FALSE ; INITIALLY FALSE, SET TO TRUE BELOW AFTER RAM TRANSITION
;
; EXECUTION RESUMES HERE AFTER SWITCH TO RAM BANK
;
HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK