summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/z80/tmpz84c015.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/z80/tmpz84c015.h')
-rw-r--r--src/devices/cpu/z80/tmpz84c015.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/devices/cpu/z80/tmpz84c015.h b/src/devices/cpu/z80/tmpz84c015.h
index a5b7027b57a..99b6f095714 100644
--- a/src/devices/cpu/z80/tmpz84c015.h
+++ b/src/devices/cpu/z80/tmpz84c015.h
@@ -47,6 +47,8 @@ public:
auto out_rxdrqb_callback() { return m_out_rxdrqb_cb.bind(); }
auto out_txdrqb_callback() { return m_out_txdrqb_cb.bind(); }
+ auto wdtout_cb() { return m_wdtout_cb.bind(); }
+
// CTC callbacks
template<unsigned N> auto zc_callback() { return m_zc_cb[N].bind(); }
@@ -108,9 +110,6 @@ public:
/////////////////////////////////////////////////////////
- void irq_priority_w(uint8_t data);
-
- void tmpz84c015_internal_io_map(address_map &map);
protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -130,6 +129,8 @@ private:
// internal state
uint8_t m_irq_priority;
+ uint8_t m_wdtmr;
+ emu_timer *m_watchdog_timer;
// callbacks
devcb_write_line m_out_txda_cb;
@@ -159,6 +160,18 @@ private:
devcb_write8 m_out_pb_cb;
devcb_write_line m_out_brdy_cb;
+ devcb_write_line m_wdtout_cb;
+
+ uint8_t wdtmr_r();
+ void wdtmr_w(uint8_t data);
+ void wdtcr_w(uint8_t data);
+ void watchdog_clear();
+ TIMER_CALLBACK_MEMBER(watchdog_timeout);
+
+ void irq_priority_w(uint8_t data);
+
+ void internal_io_map(address_map &map);
+
DECLARE_WRITE_LINE_MEMBER( out_txda_cb_trampoline_w ) { m_out_txda_cb(state); }
DECLARE_WRITE_LINE_MEMBER( out_dtra_cb_trampoline_w ) { m_out_dtra_cb(state); }
DECLARE_WRITE_LINE_MEMBER( out_rtsa_cb_trampoline_w ) { m_out_rtsa_cb(state); }