summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/imagedev/floppy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/imagedev/floppy.cpp')
-rw-r--r--src/devices/imagedev/floppy.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp
index ba41355a74e..af79d45af97 100644
--- a/src/devices/imagedev/floppy.cpp
+++ b/src/devices/imagedev/floppy.cpp
@@ -2422,7 +2422,7 @@ bool mac_floppy_device::wpt_r()
// actual_ss may have changed after the phases were set
m_reg = (m_reg & 7) | (actual_ss ? 8 : 0);
- if(m_reg != 4 && m_reg != 12)
+ if(m_reg != 4 && m_reg != 12 && m_reg != 5 && m_reg != 13)
logerror("fdc disk sense reg %x %s %p\n", m_reg, regnames[m_reg], image.get());
switch(m_reg) {
@@ -2433,8 +2433,9 @@ bool mac_floppy_device::wpt_r()
case 0x2: // Is the motor on?
return mon;
- case 0x4: // Used when reading data, result ignored
- return false;
+ case 0x4:
+ case 0xc: // Index pulse, probably only on the superdrive though
+ return !m_has_mfm ? false : !image || mon ? true : idx;
case 0x5: // Is it a superdrive (supports 1.4M MFM) ?
return m_has_mfm;
@@ -2454,9 +2455,6 @@ bool mac_floppy_device::wpt_r()
case 0xa: // Not on track 0?
return cyl != 0;
- case 0xc: // Another identification bit
- return m_rd1;
-
case 0xd: // Is the current mode GCR or MFM?
return m_mfm;
@@ -2588,9 +2586,7 @@ bool oa_d34v_device::is_2m() const
mfd51w_device::mfd51w_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : mac_floppy_device(mconfig, MFD51W, tag, owner, clock)
{
- m_has_mfm = true;
}
-
void mfd51w_device::setup_characteristics()
{
form_factor = floppy_image::FF_35;
@@ -2626,5 +2622,5 @@ void mfd75w_device::setup_characteristics()
bool mfd75w_device::is_2m() const
{
- return true;
+ return false;
}