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
;
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
;
@ -193,9 +191,6 @@ NOCHG1:
PRTS("OFF$")
NOCHG2:
LD A,(DSBATCOND) ; DISPLAY
CP 0E5H
CALL Z,EE55
OR A ; BATTERY
JR NZ,DSBATOK ; CONDITION
PRTS(" BATTERY LOW$")
@ -203,9 +198,6 @@ NOCHG2:
DSBATOK:
XOR A ; SIGNAL SUCCESS
RET
EE55:
PRTS(" DEBUG $")
RET
;
; RTC DEVICE FUNCTION DISPATCH ENTRY
; 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
; 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.
;
LD DE,HBX_LOC ; RAM LOCATION FOR TEST
LD A,(DE) ; RAM ACCESS 1
LD B,A ; SAVE FOR COMPARISON
@ -855,7 +855,6 @@ HB_START:
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
@ -865,7 +864,7 @@ HB_START:
;
; INSTALL PROXY IN UPPER MEMORY
;
; LD DE,HBX_LOC
; LD DE,HBX_LOC ; AS PER ABOVE
LD HL,HBX_IMG
LD BC,HBX_SIZ
LDIR
@ -874,7 +873,7 @@ HB_START:
;
LD A,(HB_RAMFLAG)
OR A
JR NZ,HB_START1
JR NZ,HB_START2
;
; INSTALL HBIOS IN RAM BANK
;
@ -902,8 +901,14 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
;
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 SP,HBX_LOC ; RESET STACK SINCE WE DO NOT RETURN
LD A,TRUE ; ACCUM := TRUE
LD (HB_RAMFLAG),A ; SET RAMFLAG
@ -1571,7 +1576,7 @@ PC_INITTBLLEN .EQU (($ - PC_INITTBL) / 2)
;==================================================================================================
;
HB_INITTBL:
#IF (SPKENABLE)
#IF (SPKENABLE & DSRTCENABLE)
.DW SPK_INIT ; AUDIBLE INDICATOR OF BOOT START
#ENDIF
#IF (AYENABLE)
@ -2803,7 +2808,7 @@ SIZ_TERM .EQU $ - ORG_TERM
.ECHO " bytes.\n"
#ENDIF
;
#IF (SPKENABLE)
#IF (SPKENABLE & DSRTCENABLE)
ORG_SPK .EQU $
#INCLUDE "spk.asm"
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
;
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_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
LD HL,HBX_IV09+1
CALL SPK_BEEP
; CALL SPK_BEEP
;
SETPIO6:RET

Loading…
Cancel
Save