diff options
Diffstat (limited to 'src/devices/machine/rp5c15.h')
-rw-r--r-- | src/devices/machine/rp5c15.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/devices/machine/rp5c15.h b/src/devices/machine/rp5c15.h index 6d4e161ac3e..6630260fc8c 100644 --- a/src/devices/machine/rp5c15.h +++ b/src/devices/machine/rp5c15.h @@ -34,29 +34,31 @@ public: auto alarm() { return m_out_alarm_cb.bind(); } auto clkout() { return m_out_clkout_cb.bind(); } + void set_year_offset(int year) { m_year_offset = year; } uint8_t read(offs_t offset); void write(offs_t offset, uint8_t data); + virtual void set_current_time(const system_time &systime) override; + protected: // device-level overrides virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // device_rtc_interface overrides virtual bool rtc_feature_leap_year() const override { return true; } virtual void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) override; + TIMER_CALLBACK_MEMBER(advance_1hz_clock); + TIMER_CALLBACK_MEMBER(advance_16hz_clock); + TIMER_CALLBACK_MEMBER(advance_output_clock); + private: inline void set_alarm_line(); inline int read_counter(int counter); inline void write_counter(int counter, int value); inline void check_alarm(); - static const device_timer_id TIMER_CLOCK = 0; - static const device_timer_id TIMER_16HZ = 1; - static const device_timer_id TIMER_CLKOUT = 2; - devcb_write_line m_out_alarm_cb; devcb_write_line m_out_clkout_cb; @@ -71,6 +73,8 @@ private: int m_16hz; // 16 Hz condition int m_clkout; // clock output + int m_year_offset = 0; + // timers emu_timer *m_clock_timer; emu_timer *m_16hz_timer; |