|
|
|
@ -911,6 +911,38 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
|
LD (HL),$4D |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
; RECOVERY MODE |
|
|
|
;================================================================================================== |
|
|
|
; |
|
|
|
; PLATFORM SPECIFIC CODE FOR DETECTING RECOVERY MODE SWITCH |
|
|
|
; |
|
|
|
#IF (BT_REC_TYPE!=BT_REC_NONE) |
|
|
|
#IF (BT_REC_TYPE==BT_REC_FORCE) |
|
|
|
LD A,1 ; SET FOR RECOVERY MODE |
|
|
|
LD (HB_BOOT_REC),A ; SAVE FOR LATER |
|
|
|
#ENDIF |
|
|
|
#IF (PLATFORM == PLT_SBC) |
|
|
|
#IF (BT_REC_TYPE==BT_REC_SBC01) |
|
|
|
LD A,%00100000 ; DISABLE RTC AND |
|
|
|
OUT (RTCIO),A ; DRQ DRIVER READ |
|
|
|
IN A,(RTCIO) ; BIT 0 (DRQ). |
|
|
|
CPL ; PULLED HIGH |
|
|
|
AND 1 ; IS RECOVERY MODE |
|
|
|
LD (HB_BOOT_REC),A ; SAVE FOR LATER |
|
|
|
#ENDIF |
|
|
|
#IF (BT_REC_TYPE==BT_REC_SBC02) |
|
|
|
IN A,(RTCIO) ; RTC PORT, BIT 6 HAS THE |
|
|
|
BIT 6,A ; STATE OF CONFIG JUMPER |
|
|
|
LD A,1 ; JUMPER INSTALLED |
|
|
|
JR Z,SAVE_REC_M ; IS RECOVERY MODE |
|
|
|
LD A,0 |
|
|
|
SAVE_REC_M: |
|
|
|
LD (HB_BOOT_REC),A ; SAVE FOR LATER |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
DIAG(%00001111) |
|
|
|
; |
|
|
|
@ -1156,7 +1188,17 @@ HB_CPU2: |
|
|
|
LD (HL),D |
|
|
|
LD B,PC_INITTBLLEN |
|
|
|
POP DE ; POP (1) DE IS ADDRESS OF TOP OF TABLE |
|
|
|
CALL CALLLIST ; PROCESS THE PRE-INIT CALL TABLE |
|
|
|
|
|
|
|
#IF (BT_REC_TYPE!=BT_REC_NONE) |
|
|
|
LD A,(HB_BOOT_REC) ; IF WE ARE IN RECOVERY MODE |
|
|
|
OR A ; POINT TO THE RECOVER MODE |
|
|
|
JR Z,NOT_REC_M0 ; INITIALIZATION TABLE |
|
|
|
LD B,PC_INITRLEN |
|
|
|
LD DE,PC_INIT_REC |
|
|
|
NOT_REC_M0: |
|
|
|
|
|
|
|
#ENDIF |
|
|
|
CALL CALLLIST ; PROCESS THE PRE-INIT CALL TABLE |
|
|
|
; |
|
|
|
#IF 0 |
|
|
|
; |
|
|
|
@ -1329,8 +1371,19 @@ HB_SPDTST: |
|
|
|
; PERFORM DEVICE INITIALIZATION |
|
|
|
; |
|
|
|
CALL NEWLINE |
|
|
|
|
|
|
|
#IF (BT_REC_TYPE!=BT_REC_NONE) |
|
|
|
LD A,(HB_BOOT_REC) ; IF WE ARE IN RECOVERY MODE |
|
|
|
OR A ; POINT TO THE RECOVER MODE |
|
|
|
JR Z,NOT_REC_M1 ; INITIALIZATION TABLE |
|
|
|
LD B,HB_INITRLEN |
|
|
|
LD DE,HB_INIT_REC |
|
|
|
JR IS_REC_M1 |
|
|
|
NOT_REC_M1: |
|
|
|
#ENDIF |
|
|
|
LD B,HB_INITTBLLEN |
|
|
|
LD DE,HB_INITTBL |
|
|
|
IS_REC_M1: |
|
|
|
CALL CALLLIST |
|
|
|
; |
|
|
|
; RECORD HEAP CURB AT THE CURRENT VALUE OF HEAP TOP. HEAP CURB |
|
|
|
@ -1431,8 +1484,31 @@ CALLLIST: |
|
|
|
DJNZ CALLLIST |
|
|
|
CALLDUMMY: |
|
|
|
RET |
|
|
|
|
|
|
|
#IF (BT_REC_TYPE!=BT_REC_NONE) |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
; TABLE OF RECOVERY MODE INITIALIZATION ENTRY POINTS |
|
|
|
;================================================================================================== |
|
|
|
; |
|
|
|
; USE "CALLDUMMY" IF NO ENTRY REQUIRED |
|
|
|
; |
|
|
|
PC_INIT_REC: |
|
|
|
#IF (PLATFORM == PLT_SBC) |
|
|
|
.DW UART_PREINIT |
|
|
|
; .DW CALLDUMMY |
|
|
|
#ENDIF |
|
|
|
PC_INITRLEN .EQU (($ - PC_INIT_REC) / 2) |
|
|
|
; |
|
|
|
HB_INIT_REC: |
|
|
|
#IF (PLATFORM == PLT_SBC) |
|
|
|
.DW UART_INIT |
|
|
|
.DW MD_INIT |
|
|
|
#ENDIF |
|
|
|
HB_INITRLEN .EQU (($ - HB_INIT_REC) / 2) |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
;================================================================================================== |
|
|
|
; TABLE OF PRE-CONSOLE INITIALIZATION ENTRY POINTS |
|
|
|
;================================================================================================== |
|
|
|
|
|
|
|
@ -3926,6 +4002,10 @@ RTCVAL .DB 0 ; SHADOW VALUE FOR RTC LATCH PORT |
|
|
|
; |
|
|
|
HB_BATCOND .DB 0 ; BATTERY CONDITION (0=LOW, 1=OK) |
|
|
|
; |
|
|
|
#IF (BT_REC_TYPE!=BT_REC_NONE) |
|
|
|
HB_BOOT_REC .DB 0 ; BOOT MODE (0=NORMAL, 1=RECOVERY MODE) |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
STR_BANNER .DB "RetroBrew HBIOS v", BIOSVER, ", ", TIMESTAMP, "$" |
|
|
|
STR_PLATFORM .DB PLATFORM_NAME, "$" |
|
|
|
STR_SWITCH .DB "*** Activating CRT Console ***$" |
|
|
|
|