diff options
Diffstat (limited to 'src/devices/bus/wswan/rom.cpp')
-rw-r--r-- | src/devices/bus/wswan/rom.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/src/devices/bus/wswan/rom.cpp b/src/devices/bus/wswan/rom.cpp index 034ec926dc4..2d089989989 100644 --- a/src/devices/bus/wswan/rom.cpp +++ b/src/devices/bus/wswan/rom.cpp @@ -89,7 +89,7 @@ void ws_rom_device::device_start() // Set up RTC timer if (m_has_rtc) { - rtc_timer = timer_alloc(TIMER_RTC); + rtc_timer = timer_alloc(FUNC(ws_rom_device::rtc_tick), this); rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1)); } @@ -196,44 +196,41 @@ void ws_rom_eeprom_device::device_reset() //------------------------------------------------- -// device_timer - handler timer events +// rtc_tick //------------------------------------------------- -void ws_rom_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +TIMER_CALLBACK_MEMBER(ws_rom_device::rtc_tick) { - if (id == TIMER_RTC) - { - // a second passed - m_rtc_second++; - if ((m_rtc_second & 0x0f) > 9) - m_rtc_second = (m_rtc_second & 0xf0) + 0x10; + // a second passed + m_rtc_second++; + if ((m_rtc_second & 0x0f) > 9) + m_rtc_second = (m_rtc_second & 0xf0) + 0x10; - // check for minute passed - if (m_rtc_second >= 0x60) - { - m_rtc_second = 0; - m_rtc_minute++; - if ((m_rtc_minute & 0x0f) > 9) - m_rtc_minute = (m_rtc_minute & 0xf0) + 0x10; - } + // check for minute passed + if (m_rtc_second >= 0x60) + { + m_rtc_second = 0; + m_rtc_minute++; + if ((m_rtc_minute & 0x0f) > 9) + m_rtc_minute = (m_rtc_minute & 0xf0) + 0x10; + } - // check for hour passed - if (m_rtc_minute >= 0x60) - { - m_rtc_minute = 0; - m_rtc_hour++; - if ((m_rtc_hour & 0x0f) > 9) - m_rtc_hour = (m_rtc_hour & 0xf0) + 0x10; - if (m_rtc_hour == 0x12) - m_rtc_hour |= 0x80; - } + // check for hour passed + if (m_rtc_minute >= 0x60) + { + m_rtc_minute = 0; + m_rtc_hour++; + if ((m_rtc_hour & 0x0f) > 9) + m_rtc_hour = (m_rtc_hour & 0xf0) + 0x10; + if (m_rtc_hour == 0x12) + m_rtc_hour |= 0x80; + } - // check for day passed - if (m_rtc_hour >= 0x24) - { - m_rtc_hour = 0; - m_rtc_day++; - } + // check for day passed + if (m_rtc_hour >= 0x24) + { + m_rtc_hour = 0; + m_rtc_day++; } } |