From 9fee7632659a740a1c338ec0e27a21db86eece97 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 12 May 2021 12:28:06 +0800 Subject: [PATCH] Architecture support for DS1307 I2C --- Source/Apps/rtcds7.asm | 2 +- Source/HBIOS/hbios.asm | 21 +++++++++++++++++++++ Source/HBIOS/hbios.inc | 3 ++- Source/HBIOS/std.asm | 7 ++++++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Source/Apps/rtcds7.asm b/Source/Apps/rtcds7.asm index e1bc36f0..20d790db 100644 --- a/Source/Apps/rtcds7.asm +++ b/Source/Apps/rtcds7.asm @@ -108,7 +108,7 @@ DS7_CTL .EQU (DS7_OUT | DS7_SQWE | DS7_RATE) ; ; CALL DS7_RDC ; READ CLOCK DATA INTO BUFFER - CALL DS7_DISP ; DISPLAY TIME AND DATE FROM BUFFER + CALL DS7_DISP ; DISPLAY TIME AND DATE FROM BUFFER RET ; ;----------------------------------------------------------------------------- diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index a5e0cd49..f214d920 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2281,6 +2281,10 @@ HB_INITTBL: #IF (INTRTCENABLE) .DW INTRTC_INIT #ENDIF +#IF (DS7RTCENABLE) + .DW PCF8584_INIT + .DW DS7RTC_INIT +#ENDIF #IF (VDUENABLE) .DW VDU_INIT #ENDIF @@ -4468,6 +4472,23 @@ SIZ_SIMRTC .EQU $ - ORG_SIMRTC .ECHO SIZ_SIMRTC .ECHO " bytes.\n" #ENDIF +#IF (DS7RTCENABLE & (DS7RTCMODE=DS7RTCMODE_PCF)) +ORG_PCF8584 .EQU $ + #INCLUDE "pcf8584.asm" +SIZ_PCF8584 .EQU $ - ORG_PCF8584 + .ECHO "PCF8584 occupies " + .ECHO SIZ_PCF8584 + .ECHO " bytes.\n" +#ENDIF + +#IF (DS7RTCENABLE) +ORG_DS7RTC .EQU $ + #INCLUDE "ds7rtc.asm" +SIZ_DS7RTC .EQU $ - ORG_DS7RTC + .ECHO "DS7RTC occupies " + .ECHO SIZ_DS7RTC + .ECHO " bytes.\n" +#ENDIF ; #IF (INTRTCENABLE) ORG_INTRTC .EQU $ diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index ecb01a9f..bed737e0 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -186,10 +186,11 @@ DIODEV_HDSK .EQU $90 ; ; RTC DEVICE IDS ; -RTCDEV_DS .EQU $00 ; DS1322 +RTCDEV_DS .EQU $00 ; DS1302 RTCDEV_BQ .EQU $10 ; BQ4845P RTCDEV_SIMH .EQU $30 ; SIMH RTCDEV_INT .EQU $40 ; PERIODIC INT TIMER +RTCDEV_DS7 .EQU $50 ; DS1302 (I2C) ; ; VIDEO DEVICE IDS ; diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index fd257f6d..f31412a2 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -115,12 +115,17 @@ CTCMODE_CTR .EQU 1 ; CTC COUNTER CTCMODE_TIM16 .EQU 2 ; CTC TIMER W/ DIV 16 CTCMODE_TIM256 .EQU 3 ; CTC TIMER W/ DIV 256 ; -; DS RTC MODE SELECTIONS +; DS1302 RTC MODE SELECTIONS ; DSRTCMODE_NONE .EQU 0 ; NO DSRTC DSRTCMODE_STD .EQU 1 ; ORIGINAL DSRTC CIRCUIT (SBC, ZETA, MK4) DSRTCMODE_MFPIC .EQU 2 ; MF/PIC VARIANT ; +; DS1307 RTC MODE SELECTIONS +; +DS7RTCMODE_NONE .EQU 0 ; NO DSRTC +DS7RTCMODE_PCF .EQU 1 ; PCF8584 I2C +; ; SIO MODE SELECTIONS ; SIOMODE_NONE .EQU 0