diff options
Diffstat (limited to 'src/devices/machine/am9519.h')
-rw-r--r-- | src/devices/machine/am9519.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/devices/machine/am9519.h b/src/devices/machine/am9519.h index 315e0bd890d..685810be6aa 100644 --- a/src/devices/machine/am9519.h +++ b/src/devices/machine/am9519.h @@ -32,7 +32,7 @@ class am9519_device : public device_t { public: - am9519_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + am9519_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); auto out_int_callback() { return m_out_int_func.bind(); } @@ -42,27 +42,25 @@ public: void data_w(u8 data); u32 acknowledge(); - DECLARE_WRITE_LINE_MEMBER( ireq0_w ) { set_irq_line(0, state); } - DECLARE_WRITE_LINE_MEMBER( ireq1_w ) { set_irq_line(1, state); } - DECLARE_WRITE_LINE_MEMBER( ireq2_w ) { set_irq_line(2, state); } - DECLARE_WRITE_LINE_MEMBER( ireq3_w ) { set_irq_line(3, state); } - DECLARE_WRITE_LINE_MEMBER( ireq4_w ) { set_irq_line(4, state); } - DECLARE_WRITE_LINE_MEMBER( ireq5_w ) { set_irq_line(5, state); } - DECLARE_WRITE_LINE_MEMBER( ireq6_w ) { set_irq_line(6, state); } - DECLARE_WRITE_LINE_MEMBER( ireq7_w ) { set_irq_line(7, state); } + void ireq0_w(int state) { set_irq_line(0, state); } + void ireq1_w(int state) { set_irq_line(1, state); } + void ireq2_w(int state) { set_irq_line(2, state); } + void ireq3_w(int state) { set_irq_line(3, state); } + void ireq4_w(int state) { set_irq_line(4, state); } + void ireq5_w(int state) { set_irq_line(5, state); } + void ireq6_w(int state) { set_irq_line(6, state); } + void ireq7_w(int state) { set_irq_line(7, state); } IRQ_CALLBACK_MEMBER(iack_cb); protected: // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; -private: - static constexpr device_timer_id TIMER_CHECK_IRQ = 0; + TIMER_CALLBACK_MEMBER(check_irqs); - inline void set_timer() { timer_set(attotime::zero, TIMER_CHECK_IRQ); } +private: void set_irq_line(int irq, int state); devcb_write_line m_out_int_func; @@ -79,6 +77,8 @@ private: u8 m_aclear; u8 m_count[8]; u8 m_resp[8][4]; + + emu_timer *m_irq_check_timer; }; DECLARE_DEVICE_TYPE(AM9519, am9519_device) |