summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/exorciser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/exorciser.cpp')
-rw-r--r--src/mame/drivers/exorciser.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/mame/drivers/exorciser.cpp b/src/mame/drivers/exorciser.cpp
index 81fa1c2bd2a..11e3abd59b7 100644
--- a/src/mame/drivers/exorciser.cpp
+++ b/src/mame/drivers/exorciser.cpp
@@ -168,11 +168,6 @@ public:
, m_floppy3(*this, "floppy3")
{ }
- enum
- {
- TIMER_TRACE,
- };
-
void exorciser(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(maincpu_clock_change);
@@ -221,7 +216,8 @@ private:
u8 m_restart_count;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
+ emu_timer *m_trace_timer;
+ TIMER_CALLBACK_MEMBER(assert_trace);
void pia_dbg_pa_w(u8 data);
DECLARE_READ_LINE_MEMBER(pia_dbg_ca1_r);
@@ -509,16 +505,9 @@ WRITE_LINE_MEMBER(exorciser_state::pia_dbg_ca2_w)
}
-void exorciser_state::device_timer(emu_timer &timer, device_timer_id id, int param)
+TIMER_CALLBACK_MEMBER(exorciser_state::assert_trace)
{
- switch (id)
- {
- case TIMER_TRACE:
- m_mainnmi->input_merger_device::in_w<1>(ASSERT_LINE);
- break;
- default:
- throw emu_fatalerror("Unknown id in exorciser_state::device_timer");
- }
+ m_mainnmi->input_merger_device::in_w<1>(ASSERT_LINE);
}
// Note the trace timer delay is actually 11 cycles, but is stretched to 16
@@ -534,7 +523,7 @@ WRITE_LINE_MEMBER(exorciser_state::pia_dbg_cb2_w)
if (!maincpu_clock)
maincpu_clock = 10000000;
- timer_set(attotime::from_ticks(16, maincpu_clock), TIMER_TRACE);
+ m_trace_timer->adjust(attotime::from_ticks(16, maincpu_clock));
}
else
m_mainnmi->input_merger_device::in_w<1>(CLEAR_LINE);
@@ -627,6 +616,8 @@ void exorciser_state::machine_start()
save_item(NAME(m_stop_enabled));
save_item(NAME(m_printer_data));
save_item(NAME(m_printer_data_ready));
+
+ m_trace_timer = timer_alloc(FUNC(exorciser_state::assert_trace), this);
}
static DEVICE_INPUT_DEFAULTS_START(exorterm)