|
|
@ -847,24 +847,18 @@ HB_START: |
|
|
; FAILURE TO COMPLETE TWO RAM ACCESSES BEFORE INSTALLING PROXY WILL RESULT |
|
|
; FAILURE TO COMPLETE TWO RAM ACCESSES BEFORE INSTALLING PROXY WILL RESULT |
|
|
; IN THE ROM ID BYTES NOT BEING COPIED CORRECTLY AND CP/M APPLICATIONS |
|
|
; 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. |
|
|
; WILL NOT START CORRECTLY WHEN THEY CHECK THE ROM ID VERSION BYTES. |
|
|
|
|
|
; THE BATTERY CONDITION VALUE IS TEMPORARILY STORED AT HBX_LOC - 1. |
|
|
|
|
|
; IF THERE IS NO DS1210 IN THE SYSTEM, THE CODE BELOW DOES NO HARM. |
|
|
; |
|
|
; |
|
|
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 |
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
DEC SP ; RESERVE A STACK BYTE |
|
|
|
|
|
XOR A ; ZERO MEANS LOW BAT |
|
|
|
|
|
LD (HBX_LOC - 1),A ; WRITE IT (SHOULD ALWAYS WORK) |
|
|
|
|
|
INC A ; 1 MEANS BAT OK |
|
|
|
|
|
LD (HBX_LOC - 1),A ; OVERWRITE IF NVC ALLOWS IT |
|
|
; |
|
|
; |
|
|
; INSTALL PROXY IN UPPER MEMORY |
|
|
; INSTALL PROXY IN UPPER MEMORY |
|
|
; |
|
|
; |
|
|
; LD DE,HBX_LOC ; AS PER ABOVE |
|
|
|
|
|
|
|
|
LD DE,HBX_LOC ; AS PER ABOVE |
|
|
LD HL,HBX_IMG |
|
|
LD HL,HBX_IMG |
|
|
LD BC,HBX_SIZ |
|
|
LD BC,HBX_SIZ |
|
|
LDIR |
|
|
LDIR |
|
|
@ -873,7 +867,7 @@ HB_START: |
|
|
; |
|
|
; |
|
|
LD A,(HB_RAMFLAG) |
|
|
LD A,(HB_RAMFLAG) |
|
|
OR A |
|
|
OR A |
|
|
JR NZ,HB_START2 |
|
|
|
|
|
|
|
|
JR NZ,HB_START1 |
|
|
; |
|
|
; |
|
|
; INSTALL HBIOS IN RAM BANK |
|
|
; INSTALL HBIOS IN RAM BANK |
|
|
; |
|
|
; |
|
|
@ -901,14 +895,9 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
; |
|
|
; |
|
|
DIAG(%00000111) |
|
|
DIAG(%00000111) |
|
|
; |
|
|
; |
|
|
POP AF ; CLEAR THE |
|
|
|
|
|
POP AF ; LEFTOVER STACK |
|
|
|
|
|
POP AF ; FROM HBX_BANKCALL |
|
|
|
|
|
HB_START2: |
|
|
|
|
|
#IF DSRTCENABLE |
|
|
|
|
|
POP AF ; RECALL BATTERY STATE AND SAVE |
|
|
|
|
|
LD (DSBATCOND),A ; IN RAM ACCESSIBLE BY DSRTC DRIVER |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
|
|
|
LD A,(HBX_LOC - 1) ; RECALL BATTERY STATE AND SAVE |
|
|
|
|
|
LD (HB_BATCOND),A ; FOR FUTURE REFERENCE |
|
|
|
|
|
; |
|
|
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 |
|
|
@ -1439,6 +1428,15 @@ HB_PCPU: |
|
|
CALL PRTSTRD |
|
|
CALL PRTSTRD |
|
|
.TEXT "KB RAM$" |
|
|
.TEXT "KB RAM$" |
|
|
; |
|
|
; |
|
|
|
|
|
; LOW BATTERY DIAGNOSTIC MESSAGE |
|
|
|
|
|
; |
|
|
|
|
|
#IF (BATCOND) |
|
|
|
|
|
LD A,(HB_BATCOND) |
|
|
|
|
|
OR A |
|
|
|
|
|
LD DE,STR_LOWBAT |
|
|
|
|
|
CALL Z,WRITESTR |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
; PERFORM DEVICE INITIALIZATION |
|
|
; PERFORM DEVICE INITIALIZATION |
|
|
; |
|
|
; |
|
|
CALL NEWLINE |
|
|
CALL NEWLINE |
|
|
@ -3776,10 +3774,13 @@ 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 |
|
|
; |
|
|
; |
|
|
|
|
|
HB_BATCOND .DB 0 ; BATTERY CONDITION (0=LOW, 1=OK) |
|
|
|
|
|
; |
|
|
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, "$" |
|
|
STR_SWITCH .DB "*** Activating CRT Console ***$" |
|
|
STR_SWITCH .DB "*** Activating CRT Console ***$" |
|
|
STR_BADINT .DB "\r\n*** BAD INT ***\r\n$" |
|
|
STR_BADINT .DB "\r\n*** BAD INT ***\r\n$" |
|
|
|
|
|
STR_LOWBAT .DB "\r\n\r\n+++ LOW BATTERY +++$" |
|
|
; |
|
|
; |
|
|
#IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' |
|
|
#IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' |
|
|
MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " |
|
|
MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " |
|
|
|