|
|
|
@ -515,18 +515,17 @@ HBX_ROM: |
|
|
|
JP P,HBX_ROM ; BIT 7 INDICATES RAM |
|
|
|
OUT (MPCL_ROM),A ; ENSURE ROM PAGE OUT OF MEMORY BEFORE SWITCH |
|
|
|
; |
|
|
|
PUSH HL ; FORCE TOP 32K |
|
|
|
LD HL,(HCB + HCB_RAMBANKS) ; TO BE IN FIRST CHIP |
|
|
|
SRL L |
|
|
|
XOR L ; MAYBE PRECALCULATE THIS |
|
|
|
POP HL ; AT INITIALIZATION |
|
|
|
|
|
|
|
HBX_MMMSK .EQU $+1 ; FORCE TOP 32K ; MASK POPULATED |
|
|
|
XOR %00000000 ; TO BE IN FIRST CHIP ; DURING INITIALIZATION |
|
|
|
|
|
|
|
; |
|
|
|
;#IF (RAMSIZE == 256) |
|
|
|
; XOR %00000100 ; TOP 32K IS ALWAYS IN FIRST CHIP ; 256K = 8 banks = 00001000 |
|
|
|
; XOR %00000100 ; TOP 32K IS ALWAYS IN FIRST CHIP |
|
|
|
;#ENDIF |
|
|
|
; |
|
|
|
;#IF (RAMSIZE == 1024) |
|
|
|
; XOR %00010000 ; TOP 32K IS ALWAYS IN FIRST CHIP ; 1024K = 32 banks = 00100000 |
|
|
|
; XOR %00010000 ; TOP 32K IS ALWAYS IN FIRST CHIP |
|
|
|
;#ENDIF |
|
|
|
; |
|
|
|
OUT (MPCL_RAM),A ; SET RAM PAGE SELECTOR |
|
|
|
@ -534,7 +533,7 @@ HBX_ROM: |
|
|
|
HBX_ROM: |
|
|
|
OUT (MPCL_RAM),A ; ENSURE RAM PAGE OUT OF MEMORY BEFORE SWITCH |
|
|
|
OUT (MPCL_ROM),A ; SET ROM PAGE SELECTOR |
|
|
|
|
|
|
|
; |
|
|
|
HBX_RAMX: |
|
|
|
; |
|
|
|
#IF (INTMODE == 1) |
|
|
|
@ -1315,6 +1314,18 @@ Z280_INITZ: |
|
|
|
LD BC,HBX_SIZ |
|
|
|
LDIR |
|
|
|
; |
|
|
|
; RUNTIME MEMORY SIZE ADJUSTMENT |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_MBC) |
|
|
|
LD HL,HCB + HCB_RAMBANKS ; IN NUMBER OF RAMBANKS DETECTED FOR MBC |
|
|
|
LD A,%11101011 ; IS 4 (128KB) OR 16 (512KB) THEN |
|
|
|
AND (HL) ; ZERO THE LAST BANK MASK OTHERWISE |
|
|
|
JR Z,MB128512 ; CALCULATE THE LAST BANK MASK (BANKS/2) |
|
|
|
RRA ; 256K = %00000100, 1024K = %00010000 |
|
|
|
MB128512: |
|
|
|
LD (HBX_MMMSK),A |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; IF APPBOOT, RESTORE CURRENT BANK ID |
|
|
|
; |
|
|
|
#IFDEF APPBOOT |
|
|
|
|