From 7cdad0b4ed4cdb4668b68a023ae2496865e91f5d Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Wed, 7 Nov 2018 15:15:12 +0800 Subject: [PATCH] Add option to force DS1302 RTC to turn on super caps and battery recharging at boot. --- Source/HBIOS/cfg_sbc.asm | 1 + Source/HBIOS/dsrtc.asm | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 8e9813ea..b78d09b4 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -19,6 +19,7 @@ HTIMENABLE .EQU FALSE ; TRUE FOR SIMH TIMER SUPPORT SIMRTCENABLE .EQU FALSE ; SIMH CLOCK DRIVER DSRTCENABLE .EQU TRUE ; DS-1302 CLOCK DRIVER DSRTCMODE .EQU DSRTCMODE_STD ; DSRTCMODE_STD, DSRTCMODE_MFPIC +DSRTCCHG .EQU FALSE ; DS-1302 CONFIGURE CHARGE ON (TRUE) OR OFF (FALSE) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) diff --git a/Source/HBIOS/dsrtc.asm b/Source/HBIOS/dsrtc.asm index 14d17093..c4aaff9c 100644 --- a/Source/HBIOS/dsrtc.asm +++ b/Source/HBIOS/dsrtc.asm @@ -122,6 +122,27 @@ DSRTC_INIT1: CALL DSRTC_CLK2TIM LD HL,DSRTC_TIMBUF CALL PRTDT + +#IF DSRTCCHG ; FORCE_RTC_CHARGE_ENABLE + LD C,$8E ; ACCESS WRITE PROT REG + CALL DSRTC_CMD ; + LD A,$00 ; WRITE PROTECT OFF + CALL DSRTC_PUT ; + CALL DSRTC_END ; FINISH CMD + + LD C,$90 ; ACCESS CHARGE REGISTER + CALL DSRTC_CMD ; + LD A,$A5 ; STD CHARGE VALUES + CALL DSRTC_PUT ; + CALL DSRTC_END ; FINISH REG WRITE + + LD C,$8E ; ACCESS WRITE PROT REG + CALL DSRTC_CMD ; + LD A,$80 ; WRITE PROTECT ON + CALL DSRTC_PUT ; + CALL DSRTC_END ; FINISH CMD +#ENDIF + PRTS(" CHARGE=$") CALL DSRTC_TSTCHG JR NZ,NOCHG1