From e931c376547824724241d044ff880da7db524225 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 8 Jul 2018 01:10:47 +0100 Subject: [PATCH] timer: permit runtime decisions that we have no rtc to lock onto --- Kernel/platform-trs80m1/main.c | 5 +++-- Kernel/timer.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Kernel/platform-trs80m1/main.c b/Kernel/platform-trs80m1/main.c index 549e3916..6eac2b6b 100644 --- a/Kernel/platform-trs80m1/main.c +++ b/Kernel/platform-trs80m1/main.c @@ -50,8 +50,6 @@ void platform_interrupt(void) tty_interrupt(); kbd_interrupt(); - /* FIXME: do we care about floppy interrupts */ - if (irq & 0x40) dummy = sdcc_bug_2753(*((volatile uint8_t *)0x37EC)); if (irq & 0x80) { /* FIXME??? */ @@ -94,6 +92,9 @@ uint8_t platform_rtc_secs(void) /* BCD encoded */ do { sl = rtc_secl; + /* RTC may be absent */ + if (sl == 255) + return 255; rv = sl + rtc_sech * 10; } while (sl != rtc_secl); return rv; diff --git a/Kernel/timer.c b/Kernel/timer.c index 00330686..43ef7775 100644 --- a/Kernel/timer.c +++ b/Kernel/timer.c @@ -101,7 +101,7 @@ void updatetod(void) rtcnew = platform_rtc_secs(); /* platform function */ - if (rtcnew == rtcsec) + if (rtcnew == rtcsec || rtcnew == 255) return; slide = rtcnew - rtcsec; /* Seconds elapsed */ rtcsec = rtcnew; -- 2.34.1