|
|
@ -431,7 +431,7 @@ HBX_BC_ITER: |
|
|
; CALL A ROUTINE IN ANOTHER BANK. |
|
|
; CALL A ROUTINE IN ANOTHER BANK. |
|
|
; CALLER MUST ENSURE STACK IS ALREADY IN HIGH MEMORY AND HAS ADEQUATE SPACE. |
|
|
; CALLER MUST ENSURE STACK IS ALREADY IN HIGH MEMORY AND HAS ADEQUATE SPACE. |
|
|
; IF IM1 INTERRUPTS ARE POSSIBLE, CALLER MUST EITHER DISABLE THEM PRIOR TO |
|
|
; IF IM1 INTERRUPTS ARE POSSIBLE, CALLER MUST EITHER DISABLE THEM PRIOR TO |
|
|
; BNKCALL OR MAKE SURE THAT PAGE ZERO IN TARGTET BANK IS PREPARED FOR THEM. |
|
|
|
|
|
|
|
|
; BNKCALL OR MAKE SURE THAT PAGE ZERO IN TARGET BANK IS PREPARED FOR THEM. |
|
|
; ON INPUT A=TARGET BANK, HL=TARGET ADDRESS |
|
|
; ON INPUT A=TARGET BANK, HL=TARGET ADDRESS |
|
|
; |
|
|
; |
|
|
HBX_BNKCALL: |
|
|
HBX_BNKCALL: |
|
|
@ -840,33 +840,35 @@ HB_START: |
|
|
; |
|
|
; |
|
|
DIAG(%00000011) |
|
|
DIAG(%00000011) |
|
|
; |
|
|
; |
|
|
; INSTALL PROXY IN UPPER MEMORY |
|
|
|
|
|
|
|
|
; CHECK BATTERY BACKUP STATUS BEFORE WE COPY PROXY TO UPPER MEMORY |
|
|
; |
|
|
; |
|
|
|
|
|
; IF A DS1210 POWER CONTROLLER IS INSTALLED AND BATTERY BACKUP IS NOT INSTALLED |
|
|
|
|
|
; OR IS LESS THAN 2V THEN THE DS1210 WILL BLOCK THE SECOND RAM ACCESS. |
|
|
|
|
|
; FAILURE TO COMPLETE TWO RAM ACCESSES BEFORE INSTALLING PROXY WILL RESULT |
|
|
|
|
|
; IN THE ROM ID BYTES NOT BEING COPIED CORRECTLY AND CP/M APPLICATIONS |
|
|
|
|
|
; WILL NOT START CORRECTLY WHEN THEY CHECK THE ROM ID VERSION BYTES. |
|
|
|
|
|
|
|
|
;X1 .EQU $8000 |
|
|
|
|
|
;X2 .EQU X1 + 2 |
|
|
|
|
|
;X3 .EQU X2 + 2 |
|
|
|
|
|
;X4 .EQU X3 + 2 |
|
|
|
|
|
|
|
|
|
|
|
; LD HL,(HBX_IMG) |
|
|
|
|
|
; LD (X1),HL |
|
|
|
|
|
|
|
|
|
|
|
; LD HL,(HBX_IMG) |
|
|
|
|
|
; LD (X2),HL |
|
|
|
|
|
|
|
|
|
|
|
LD DE,HBX_LOC ; IF A DS1210 POWER CONTROLLER IS INSTALLED AND BATTERY BACKUP IS NOT |
|
|
|
|
|
LD A,(DE) ; INSTALLED OR IS LESS THAN 2V THEN THE DS1210 WILL BLOCK THE SECOND RAM |
|
|
|
|
|
LD A,(DE) ; ACCESS. PERFORM TWO DUMMY READS TO RAM TO ENSURE WE BYPASS THIS FEATURE |
|
|
|
|
|
LD HL,HBX_IMG ; SO THAT THE ROM ID BYTES ARE COPIED CORRECTLY AND CP/M APPLICATIONS |
|
|
|
|
|
LD BC,HBX_SIZ ; START CORRECTLY WHEN THEY CHECK THE ROM ID VERSION BYTES. |
|
|
|
|
|
|
|
|
LD DE,HBX_LOC ; RAM LOCATION FOR TEST |
|
|
|
|
|
LD A,(DE) ; RAM ACCESS 1 |
|
|
|
|
|
LD B,A ; SAVE FOR COMPARISON |
|
|
|
|
|
CPL ; AND RESTORATION |
|
|
|
|
|
LD (DE),A ; RAM ACCESS 2 |
|
|
|
|
|
LD A,(DE) ; RAM ACCESS 3 |
|
|
|
|
|
SUB B ; A = 0 IF LOW BATTERY |
|
|
|
|
|
LD A,0E5H ; DEBUG |
|
|
|
|
|
PUSH AF ; SAVE FOR DSRTC DRIVER |
|
|
|
|
|
; WE SAVE THIS PROPERLY |
|
|
|
|
|
; WHEN WE ARE EXECUTING |
|
|
|
|
|
; IN RAM. |
|
|
|
|
|
LD A,B |
|
|
|
|
|
LD (DE),A ; RESTORE TEST LOCATION |
|
|
|
|
|
; |
|
|
|
|
|
; INSTALL PROXY IN UPPER MEMORY |
|
|
|
|
|
; |
|
|
|
|
|
; LD DE,HBX_LOC |
|
|
|
|
|
LD HL,HBX_IMG |
|
|
|
|
|
LD BC,HBX_SIZ |
|
|
LDIR |
|
|
LDIR |
|
|
|
|
|
|
|
|
; LD HL,(HBX_IMG) |
|
|
|
|
|
; LD (X3),HL |
|
|
|
|
|
|
|
|
|
|
|
; LD HL,(HBX_LOC) |
|
|
|
|
|
; LD (X4),HL |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
; |
|
|
; IF ALREADY EXECUTING IN RAM, BYPASS RAM BANK INSTALLATION |
|
|
; IF ALREADY EXECUTING IN RAM, BYPASS RAM BANK INSTALLATION |
|
|
; |
|
|
; |
|
|
@ -900,6 +902,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
; |
|
|
; |
|
|
DIAG(%00000111) |
|
|
DIAG(%00000111) |
|
|
; |
|
|
; |
|
|
|
|
|
POP AF ; RECALL BATTERY STATE AND SAVE |
|
|
|
|
|
LD (DSBATCOND),A ; IN RAM ACCESSIBLE BY DSRTC DRIVER |
|
|
LD SP,HBX_LOC ; RESET STACK SINCE WE DO NOT RETURN |
|
|
LD SP,HBX_LOC ; RESET STACK SINCE WE DO NOT RETURN |
|
|
LD A,TRUE ; ACCUM := TRUE |
|
|
LD A,TRUE ; ACCUM := TRUE |
|
|
LD (HB_RAMFLAG),A ; SET RAMFLAG |
|
|
LD (HB_RAMFLAG),A ; SET RAMFLAG |
|
|
@ -3766,6 +3770,7 @@ HB_TICKS .FILL 4,0 ; 32 BIT TICK COUNTER |
|
|
HB_CPUTYPE .DB 0 ; 0=Z80, 1=80180, 2=SL1960, 3=ASCI BRG |
|
|
HB_CPUTYPE .DB 0 ; 0=Z80, 1=80180, 2=SL1960, 3=ASCI BRG |
|
|
; |
|
|
; |
|
|
RTCVAL .DB 0 ; SHADOW VALUE FOR RTC LATCH PORT |
|
|
RTCVAL .DB 0 ; SHADOW VALUE FOR RTC LATCH PORT |
|
|
|
|
|
DSBATCOND .DB 0 ; BATTERY CONDITION FLAG. 0 = LOW |
|
|
; |
|
|
; |
|
|
STR_BANNER .DB "RetroBrew HBIOS v", BIOSVER, ", ", TIMESTAMP, "$" |
|
|
STR_BANNER .DB "RetroBrew HBIOS v", BIOSVER, ", ", TIMESTAMP, "$" |
|
|
STR_PLATFORM .DB PLATFORM_NAME, "$" |
|
|
STR_PLATFORM .DB PLATFORM_NAME, "$" |
|
|
|