diff options
Diffstat (limited to 'src/mame/drivers/scv.cpp')
-rw-r--r-- | src/mame/drivers/scv.cpp | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/src/mame/drivers/scv.cpp b/src/mame/drivers/scv.cpp index 4d00ebf8da0..6e6a25c7f24 100644 --- a/src/mame/drivers/scv.cpp +++ b/src/mame/drivers/scv.cpp @@ -38,7 +38,8 @@ public: protected: virtual void machine_start() override; virtual void machine_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override; + + TIMER_CALLBACK_MEMBER(vblank_update); private: void porta_w(uint8_t data); @@ -57,11 +58,6 @@ private: void scv_mem(address_map &map); - enum - { - TIMER_VB - }; - uint8_t m_porta; uint8_t m_portc; emu_timer *m_vb_timer; @@ -265,31 +261,21 @@ void scv_state::scv_palette(palette_device &palette) const } -void scv_state::device_timer(emu_timer &timer, device_timer_id id, int param) +TIMER_CALLBACK_MEMBER( scv_state::vblank_update ) { - switch (id) - { - case TIMER_VB: - { - int vpos = m_screen->vpos(); + int vpos = m_screen->vpos(); - switch( vpos ) - { - case 240: - m_maincpu->set_input_line(UPD7810_INTF2, ASSERT_LINE); - break; - case 0: - m_maincpu->set_input_line(UPD7810_INTF2, CLEAR_LINE); - break; - } - - m_vb_timer->adjust(m_screen->time_until_pos((vpos + 1) % 262, 0)); - } + switch ( vpos ) + { + case 240: + m_maincpu->set_input_line(UPD7810_INTF2, ASSERT_LINE); + break; + case 0: + m_maincpu->set_input_line(UPD7810_INTF2, CLEAR_LINE); break; - - default: - throw emu_fatalerror("Unknown id in scv_state::device_timer"); } + + m_vb_timer->adjust(m_screen->time_until_pos((vpos + 1) % 262, 0)); } @@ -596,7 +582,7 @@ WRITE_LINE_MEMBER( scv_state::upd1771_ack_w ) void scv_state::machine_start() { - m_vb_timer = timer_alloc(TIMER_VB); + m_vb_timer = timer_alloc(FUNC(scv_state::vblank_update), this); save_item(NAME(m_porta)); save_item(NAME(m_portc)); |