@ -456,11 +456,10 @@ HBX_ROM:
JR Z , HBX_ROM ; IF NOT SET, SELECT ROM PAGE
;
HBX_RAM:
RES 7 , A ; CLEAR BIT 7 FROM ABOVE
AND % 00011111 ; AVOID WRAPPING BITS
RLCA ; SCALE SELECTOR TO
RLCA ; ... GO FROM Z180 4K PAGE SIZE
RLCA ; ... TO DESIRED 32K PAGE SIZE
AND % 11111000
OUT0 ( Z180_BBR ), A ; WRITE TO BANK BASE
LD A , N8_DEFACR | 80H ; SELECT RAM BY SETTING BIT 7
OUT0 ( N8_ACR ), A ; ... IN N8 ACR REGISTER
@ -480,9 +479,9 @@ HBX_ROM:
JR NC , HBX_BNKSEL1 ; IF NC, WANT ROM PAGE, SKIP AHEAD
XOR % 00100001 ; SET BIT FOR HI 512K, CLR BIT 0
HBX_BNKSEL1:
AND % 00111111 ; AVOID WRAPPING BITS
RLCA ; CONTINUE SHIFTING TO SCALE SELECTOR
RLCA ; FOR Z180 4K PAGE -> DESIRED 32K PAGE
AND % 11111000
OUT0 ( Z180_BBR ), A ; WRITE TO BANK BASE
RET ; DONE
# ENDIF
@ -1077,13 +1076,18 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n
DI ; NO INTERRUPTS
IM 1 ; INTERRUPT MODE 1
;#IF ((PLATFORM=PLT_MBC) | (PLATFORM=PLT_SBC))
;#IF ((PLATFORM == PLT_MBC) | (PLATFORM == PLT_SBC))
; INITIALIZE RTC LATCH BYTE
; FOR SOME PLATFORMS THIS CONTROLS HI/LO SPEED CIRCUIT
LD A ,( RTCDEFVAL ) ; GET DEFAULT VALUE
OUT ( RTCIO ), A ; SET IT
;#ENDIF
;
# IF ( PLATFORM = = PLT_N8 )
LD A , N8_DEFACR ; ENSURE N8 ACR
OUT0 ( N8_ACR ), A ; ... REGISTER IS INITIALIZED
# ENDIF
;
# IF ( DI AGENABLE )
LD A , % 00000001
OUT ( DI AGPORT ), A
@ -1375,31 +1379,34 @@ RS_START:
PUSH AF ; SAVE IT
LD C , 0 ; RUNNING BANK COUNT
LD HL , $ 7 FFF ; BYTE TEST ADDRESS
LD IX , RS_ARY ; ORIG BYTE STORAGE ARRAY PTR
RS_LOOP1:
LD A , C
ADD A , $ 80 ; OFFSET BY START OF RAM BANKS
CALL HBX_BNKSEL ; SELECT THE BANK
LD A ,( $ 7 FFF ) ; GET ORIGINAL VALUE
LD A ,( HL ) ; GET ORIGINAL VALUE
LD ( IX ), A ; SAVE IT TO RESTORE LATER
INC IX ; BUMP IX
LD A , $ AA ; TEST LOC WITH $AA
LD ( $ 7 FFF ), A
LD A ,( $ 7 FFF )
LD ( HL ), A ; AVOID PROBLEMS WITH
LD ( HL ), A ; ... DS1210
LD ( HL ), A
LD A ,( HL )
CP $ AA
JR NZ , RS_DONE
LD A , $ 55 ; TEST LOC WITH $55
LD ( $ 7 FFF ), A
LD A ,( $ 7 FFF )
LD ( HL ), A
LD A ,( HL )
CP $ 55
JR NZ , RS_DONE
; STORE A UNIQUE VALUE
LD A , C
LD ( $ 7 FFF ), A
LD ( HL ), A
OR A ; ZERO?
JR Z , RS_NEXT ; SKIP STORED VALUE CHECK
@ -1410,7 +1417,7 @@ RS_LOOP3:
LD A , E
ADD A , $ 80
CALL HBX_BNKSEL
LD A ,( $ 7 FFF )
LD A ,( HL )
CP E ; VERIFY
JR NZ , RS_DONE ; ABORT IF MISCOMPARE
INC E ; NEXT BANK
@ -1422,6 +1429,9 @@ RS_NEXT:
;
RS_DONE:
LD E , C ; FINAL BANK COUNT TO E
LD A , C
OR A
JR Z , RS_LOOPZ
; RESTORE SAVED VALUES
LD IX , RS_ARY
LD B , C ; LOOP COUNT
@ -1431,9 +1441,10 @@ RS_LOOP2:
CALL HBX_BNKSEL
INC C
LD A ,( IX ) ; GET VALUE
LD ( $ 7 FFF ), A ; RESTORE IT
LD ( HL ), A ; RESTORE IT
INC IX
DJNZ RS_LOOP2 ; ALL BANKS
RS_LOOPZ:
;
; MBC RUNTIME MEMORY SIZE ADJUSTMENT
;