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.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/devices/machine/wd1010.h b/src/devices/machine/wd1010.h
index 268ab3a63ca..81607536f34 100644
--- a/src/devices/machine/wd1010.h
+++ b/src/devices/machine/wd1010.h
@@ -40,11 +40,16 @@ public:
void drdy_w(int state);
void brdy_w(int state);
+ void sc_w(int state);
// actually inputs to the controller from the drive
int sc_r();
int tk000_r();
+ // HACK: head selection is not actually controlled by the wd1010, but this emulation currently
+ // works as if it does; this function allows heads beyond the 3-bit range of the sdh register.
+ void head_w(uint8_t head) { m_head = head; }
+
protected:
// device-level overrides
virtual void device_start() override;
@@ -102,7 +107,7 @@ private:
int get_lbasector();
// extract values from sdh
- int head() { return (m_sdh >> 0) & 0x07; }
+ int head() { return m_head; }
int drive() { return (m_sdh >> 3) & 0x03; }
int sector_size()
{
@@ -151,6 +156,7 @@ private:
uint16_t m_cylinder;
uint8_t m_sdh;
uint8_t m_status;
+ uint8_t m_head;
};
// device type definition