summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/am9519.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/am9519.h')
-rw-r--r--src/devices/machine/am9519.h30
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)