diff options
author | Andrew Gardner <andrew-gardner@users.noreply.github.com> | 2013-05-15 07:10:37 +0000 |
---|---|---|
committer | Andrew Gardner <andrew-gardner@users.noreply.github.com> | 2013-05-15 07:10:37 +0000 |
commit | 0d2eb770265c85a5b829f26bbb759e8514167ea3 (patch) | |
tree | efadccb1c6d15c7c6ea7fa4a8191d4af3d15d845 /src/mame/drivers/kinst.c | |
parent | d1ef4803722799d1bd4e32bf85a912e1eddd5a1a (diff) |
Eliminate some of MAME's anonymous timers. [Andrew Gardner]
Diffstat (limited to 'src/mame/drivers/kinst.c')
-rw-r--r-- | src/mame/drivers/kinst.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c index e4988e8e1ab..5f4016e18ce 100644 --- a/src/mame/drivers/kinst.c +++ b/src/mame/drivers/kinst.c @@ -139,6 +139,11 @@ Notes: class kinst_state : public driver_device { public: + enum + { + TIMER_IRQ0_STOP + }; + kinst_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_rambase(*this, "rambase"), @@ -166,8 +171,10 @@ public: virtual void machine_reset(); UINT32 screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(irq0_start); - TIMER_CALLBACK_MEMBER(irq0_stop); required_device<cpu_device> m_maincpu; + +protected: + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); }; @@ -280,16 +287,23 @@ UINT32 kinst_state::screen_update_kinst(screen_device &screen, bitmap_ind16 &bit * *************************************/ -TIMER_CALLBACK_MEMBER(kinst_state::irq0_stop) +void kinst_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - m_maincpu->set_input_line(0, CLEAR_LINE); + switch (id) + { + case TIMER_IRQ0_STOP: + m_maincpu->set_input_line(0, CLEAR_LINE); + break; + default: + assert_always(FALSE, "Unknown id in kinst_state::device_timer"); + } } INTERRUPT_GEN_MEMBER(kinst_state::irq0_start) { device.execute().set_input_line(0, ASSERT_LINE); - machine().scheduler().timer_set(attotime::from_usec(50), timer_expired_delegate(FUNC(kinst_state::irq0_stop),this)); + timer_set(attotime::from_usec(50), TIMER_IRQ0_STOP); } |