diff options
Diffstat (limited to 'src/devices/machine/wd1010.h')
-rw-r--r-- | src/devices/machine/wd1010.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/devices/machine/wd1010.h b/src/devices/machine/wd1010.h index b6a637c99e9..268ab3a63ca 100644 --- a/src/devices/machine/wd1010.h +++ b/src/devices/machine/wd1010.h @@ -27,7 +27,11 @@ public: wd1010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); auto out_intrq_callback() { return m_out_intrq_cb.bind(); } + auto out_bdrq_callback() { return m_out_bdrq_cb.bind(); } + auto out_bcs_callback() { return m_out_bcs_cb.bind(); } auto out_bcr_callback() { return m_out_bcr_cb.bind(); } + auto out_dirin_callback() { return m_out_dirin_cb.bind(); } + auto out_wg_callback() { return m_out_wg_cb.bind(); } auto in_data_callback() { return m_in_data_cb.bind(); } auto out_data_callback() { return m_out_data_cb.bind(); } @@ -37,6 +41,10 @@ public: void drdy_w(int state); void brdy_w(int state); + // actually inputs to the controller from the drive + int sc_r(); + int tk000_r(); + protected: // device-level overrides virtual void device_start() override; @@ -81,11 +89,13 @@ private: enum { TIMER_SEEK, - TIMER_DATA + TIMER_READ, + TIMER_WRITE }; void set_error(int error); void set_intrq(int state); + void set_bdrq(int state); attotime get_stepping_rate(); void start_command(); void end_command(); @@ -107,7 +117,11 @@ private: void cmd_seek(); devcb_write_line m_out_intrq_cb; + devcb_write_line m_out_bdrq_cb; + devcb_write_line m_out_bcs_cb; devcb_write_line m_out_bcr_cb; + devcb_write_line m_out_dirin_cb; + devcb_write_line m_out_wg_cb; devcb_read8 m_in_data_cb; devcb_write8 m_out_data_cb; @@ -120,9 +134,11 @@ private: } m_drives[4]; emu_timer *m_seek_timer; - emu_timer *m_data_timer; + emu_timer *m_read_timer; + emu_timer *m_write_timer; int m_intrq; + //int m_bdrq; int m_brdy; uint8_t m_stepping_rate; uint8_t m_command; |