summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/tms9914.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/tms9914.h')
-rw-r--r--src/devices/machine/tms9914.h35
1 files changed, 16 insertions, 19 deletions
diff --git a/src/devices/machine/tms9914.h b/src/devices/machine/tms9914.h
index 9fda5aa2ebb..c21cfab5db5 100644
--- a/src/devices/machine/tms9914.h
+++ b/src/devices/machine/tms9914.h
@@ -74,31 +74,32 @@ public:
// Set write callback for ACCRQ signal
auto accrq_write_cb() { return m_accrq_write_func.bind(); }
- DECLARE_WRITE_LINE_MEMBER(eoi_w);
- DECLARE_WRITE_LINE_MEMBER(dav_w);
- DECLARE_WRITE_LINE_MEMBER(nrfd_w);
- DECLARE_WRITE_LINE_MEMBER(ndac_w);
- DECLARE_WRITE_LINE_MEMBER(ifc_w);
- DECLARE_WRITE_LINE_MEMBER(srq_w);
- DECLARE_WRITE_LINE_MEMBER(atn_w);
- DECLARE_WRITE_LINE_MEMBER(ren_w);
+ void eoi_w(int state);
+ void dav_w(int state);
+ void nrfd_w(int state);
+ void ndac_w(int state);
+ void ifc_w(int state);
+ void srq_w(int state);
+ void atn_w(int state);
+ void ren_w(int state);
// Register access
void write(offs_t offset, uint8_t data);
uint8_t read(offs_t offset);
// CONT output: true when 9914 is current controller-in-charge
- DECLARE_READ_LINE_MEMBER(cont_r);
+ int cont_r();
private:
// 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;
+
+ TIMER_CALLBACK_MEMBER(fsm_tick);
devcb_read8 m_dio_read_func;
devcb_write8 m_dio_write_func;
- devcb_write_line m_signal_wr_fns[ IEEE_488_SIGNAL_COUNT ];
+ devcb_write_line::array<IEEE_488_SIGNAL_COUNT> m_signal_wr_fns;
devcb_write_line m_int_write_func;
devcb_write_line m_accrq_write_func;
bool m_int_line;
@@ -117,6 +118,7 @@ private:
uint8_t m_reg_int1_mask;
uint8_t m_reg_address;
uint8_t m_reg_serial_p;
+ uint8_t m_reg_2nd_serial_p;
uint8_t m_reg_parallel_p;
uint8_t m_reg_2nd_parallel_p;
uint8_t m_reg_di;
@@ -137,6 +139,7 @@ private:
bool m_stdl;
bool m_shdw;
bool m_vstdl;
+ bool m_rsvd2;
// AH (Acceptor Handshake) states
enum {
@@ -237,12 +240,6 @@ private:
int m_c_state;
// Timers
- enum {
- SH_DELAY_TMR_ID,
- AH_DELAY_TMR_ID,
- C_DELAY_TMR_ID
- };
-
emu_timer *m_sh_dly_timer;
emu_timer *m_ah_dly_timer;
emu_timer *m_c_dly_timer;