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