From: Alan Cox Date: Mon, 22 Dec 2014 14:30:28 +0000 (+0000) Subject: nc100: add RTC support X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=cf62828fbd440df8f65fc92cd7f9755ba61430fb;p=FUZIX.git nc100: add RTC support --- diff --git a/Kernel/platform-nc100/config.h b/Kernel/platform-nc100/config.h index fd35a20a..26170e38 100644 --- a/Kernel/platform-nc100/config.h +++ b/Kernel/platform-nc100/config.h @@ -5,6 +5,8 @@ #define CONFIG_CPM_EMU #endif +/* We have an RTC */ +#define CONFIG_RTC /* Enable to make ^Z dump the inode table for debug */ #undef CONFIG_IDUMP /* Enable to make ^A drop back into the monitor */ diff --git a/Kernel/platform-nc100/devices.c b/Kernel/platform-nc100/devices.c index c82ede59..3c7ad1c9 100644 --- a/Kernel/platform-nc100/devices.c +++ b/Kernel/platform-nc100/devices.c @@ -34,6 +34,7 @@ bool validdev(uint16_t dev) void device_init(void) { + inittod(); nc100_tty_init(); } diff --git a/Kernel/platform-nc100/main.c b/Kernel/platform-nc100/main.c index cbc4b4eb..783652de 100644 --- a/Kernel/platform-nc100/main.c +++ b/Kernel/platform-nc100/main.c @@ -38,3 +38,20 @@ void pagemap_init(void) void map_init(void) { } + +__sfr __at 0xD0 rtc_secl; +__sfr __at 0xD1 rtc_sech; +__sfr __at 0xDD rtc_page; + +uint8_t rtc_secs(void) +{ + uint8_t sl, rv; + /* Make sure we are seeing the seconds not NVRAM */ + rtc_page = 0; + /* BCD encoded */ + do { + sl = rtc_secl; + rv = sl + rtc_sech * 10; + } while (sl != rtc_secl); + return rv; +}