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.h29
1 files changed, 13 insertions, 16 deletions
diff --git a/src/devices/machine/tms9914.h b/src/devices/machine/tms9914.h
index 39a6c8d5632..e5d1cb7a5ba 100644
--- a/src/devices/machine/tms9914.h
+++ b/src/devices/machine/tms9914.h
@@ -74,27 +74,28 @@ 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;
+
+ TIMER_CALLBACK_MEMBER(fsm_tick);
devcb_read8 m_dio_read_func;
devcb_write8 m_dio_write_func;
@@ -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;