summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2016-06-11 08:30:57 -0500
committer cracyc <cracyc@users.noreply.github.com>2016-06-11 08:30:57 -0500
commit96e08f7ae979368922902bc6efc93239f0ef2914 (patch)
tree06564f3839122f0ca1e73da13b930251a11ec61b /src/devices
parenta5bd5a08c8b41e6a54040bfacb47539ca819bf0f (diff)
wd_fdc: suppress index pulse irq when busy. (nw)
-- Did bunch of testing, found no regressions but nothing that even enables the index pulse irq other than the rainbow.
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/machine/wd_fdc.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/devices/machine/wd_fdc.cpp b/src/devices/machine/wd_fdc.cpp
index 84fcbf5ceb8..3db1b1113f6 100644
--- a/src/devices/machine/wd_fdc.cpp
+++ b/src/devices/machine/wd_fdc.cpp
@@ -243,7 +243,7 @@ void wd_fdc_t::command_end()
void wd_fdc_t::seek_start(int state)
{
- if (TRACE_COMMAND) logerror("seek %d (track=%d)\n", data, track);
+ if (TRACE_COMMAND) logerror("seek %d %x (track=%d)\n", state, data, track);
main_state = state;
status &= ~(S_CRC|S_RNF|S_SPIN);
if(head_control) {
@@ -1273,12 +1273,6 @@ void wd_fdc_t::index_callback(floppy_image_device *floppy, int state)
return;
}
- if(!intrq && (intrq_cond & I_IDX)) {
- intrq = true;
- if(!intrq_cb.isnull())
- intrq_cb(intrq);
- }
-
switch(sub_state) {
case IDLE:
if(motor_control || head_control) {
@@ -1300,6 +1294,12 @@ void wd_fdc_t::index_callback(floppy_image_device *floppy, int state)
status &= ~S_HLD; // todo: should get this value from the drive
}
}
+
+ if(!intrq && (intrq_cond & I_IDX)) {
+ intrq = true;
+ if(!intrq_cb.isnull())
+ intrq_cb(intrq);
+ }
break;
case SPINUP: