Browse Source

DS1210 Battery Low message on boot

Remove debug code.
Resolve issue with battery status being lost on stack.
Battery status variable moved to DSRTC driver.
Fix build failures for DSRTCENABLE=FALSE (spk.asm requires dsrtc)
pull/42/head
b1ackmai1er 7 years ago
parent
commit
bff6e20946
  1. 10
      Source/HBIOS/dsrtc.asm
  2. 18
      Source/HBIOS/hbios.asm
  3. 2
      Source/HBIOS/pio.asm

10
Source/HBIOS/dsrtc.asm

@ -121,9 +121,7 @@ DSRTC_IDLE .EQU %00101000 ; QUIESCENT STATE
#ENDIF #ENDIF
; ;
DSRTC_BUFSIZ .EQU 7 ; 7 BYTE BUFFER (YYMMDDHHMMSSWW) DSRTC_BUFSIZ .EQU 7 ; 7 BYTE BUFFER (YYMMDDHHMMSSWW)
;
;DSBATCOND DB 0 ; BATTERY STATE DETECTED AND SAVED AT BOOT
;
DSBATCOND .DB 0 ; BATTERY STATE DETECTED AND SAVED AT BOOT 0=LOW
; ;
; RTC DEVICE INITIALIZATION ENTRY ; RTC DEVICE INITIALIZATION ENTRY
; ;
@ -193,9 +191,6 @@ NOCHG1:
PRTS("OFF$") PRTS("OFF$")
NOCHG2: NOCHG2:
LD A,(DSBATCOND) ; DISPLAY LD A,(DSBATCOND) ; DISPLAY
CP 0E5H
CALL Z,EE55
OR A ; BATTERY OR A ; BATTERY
JR NZ,DSBATOK ; CONDITION JR NZ,DSBATOK ; CONDITION
PRTS(" BATTERY LOW$") PRTS(" BATTERY LOW$")
@ -203,9 +198,6 @@ NOCHG2:
DSBATOK: DSBATOK:
XOR A ; SIGNAL SUCCESS XOR A ; SIGNAL SUCCESS
RET RET
EE55:
PRTS(" DEBUG $")
RET
; ;
; RTC DEVICE FUNCTION DISPATCH ENTRY ; RTC DEVICE FUNCTION DISPATCH ENTRY
; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR ; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR

18
Source/HBIOS/hbios.asm

@ -847,7 +847,7 @@ 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.
;
LD DE,HBX_LOC ; RAM LOCATION FOR TEST LD DE,HBX_LOC ; RAM LOCATION FOR TEST
LD A,(DE) ; RAM ACCESS 1 LD A,(DE) ; RAM ACCESS 1
LD B,A ; SAVE FOR COMPARISON LD B,A ; SAVE FOR COMPARISON
@ -855,7 +855,6 @@ HB_START:
LD (DE),A ; RAM ACCESS 2 LD (DE),A ; RAM ACCESS 2
LD A,(DE) ; RAM ACCESS 3 LD A,(DE) ; RAM ACCESS 3
SUB B ; A = 0 IF LOW BATTERY SUB B ; A = 0 IF LOW BATTERY
LD A,0E5H ; DEBUG
PUSH AF ; SAVE FOR DSRTC DRIVER PUSH AF ; SAVE FOR DSRTC DRIVER
; WE SAVE THIS PROPERLY ; WE SAVE THIS PROPERLY
; WHEN WE ARE EXECUTING ; WHEN WE ARE EXECUTING
@ -865,7 +864,7 @@ HB_START:
; ;
; INSTALL PROXY IN UPPER MEMORY ; INSTALL PROXY IN UPPER MEMORY
; ;
; LD DE,HBX_LOC
; 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
@ -874,7 +873,7 @@ HB_START:
; ;
LD A,(HB_RAMFLAG) LD A,(HB_RAMFLAG)
OR A OR A
JR NZ,HB_START1
JR NZ,HB_START2
; ;
; INSTALL HBIOS IN RAM BANK ; INSTALL HBIOS IN RAM BANK
; ;
@ -902,8 +901,14 @@ 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 POP AF ; RECALL BATTERY STATE AND SAVE
LD (DSBATCOND),A ; IN RAM ACCESSIBLE BY DSRTC DRIVER LD (DSBATCOND),A ; IN RAM ACCESSIBLE BY DSRTC DRIVER
#ENDIF
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
@ -1571,7 +1576,7 @@ PC_INITTBLLEN .EQU (($ - PC_INITTBL) / 2)
;================================================================================================== ;==================================================================================================
; ;
HB_INITTBL: HB_INITTBL:
#IF (SPKENABLE)
#IF (SPKENABLE & DSRTCENABLE)
.DW SPK_INIT ; AUDIBLE INDICATOR OF BOOT START .DW SPK_INIT ; AUDIBLE INDICATOR OF BOOT START
#ENDIF #ENDIF
#IF (AYENABLE) #IF (AYENABLE)
@ -2803,7 +2808,7 @@ SIZ_TERM .EQU $ - ORG_TERM
.ECHO " bytes.\n" .ECHO " bytes.\n"
#ENDIF #ENDIF
; ;
#IF (SPKENABLE)
#IF (SPKENABLE & DSRTCENABLE)
ORG_SPK .EQU $ ORG_SPK .EQU $
#INCLUDE "spk.asm" #INCLUDE "spk.asm"
SIZ_SPK .EQU $ - ORG_SPK SIZ_SPK .EQU $ - ORG_SPK
@ -3770,7 +3775,6 @@ 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, "$"

2
Source/HBIOS/pio.asm

@ -370,7 +370,7 @@ SETPIOR:LD HL,INT_ALLOC ; INCREASE THE COUNT
; SETUP PIO INTERRUPT VECTOR IN IVT ; SETUP PIO INTERRUPT VECTOR IN IVT
LD HL,HBX_IV09+1 LD HL,HBX_IV09+1
CALL SPK_BEEP
; CALL SPK_BEEP
; ;
SETPIO6:RET SETPIO6:RET

Loading…
Cancel
Save