summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author MetalliC <0vetal0@gmail.com>2020-06-01 08:18:28 +0300
committer MetalliC <0vetal0@gmail.com>2020-06-01 08:18:28 +0300
commit49873e3b142b72327802c9d95ebffa4b90c1cc5f (patch)
treee3bf931c3dfc0e2df1a5d9e8b5cba1c949a33a70
parent4c67903fb1ed1ef141817791ddd83ce09cb0678e (diff)
wd_fdc.cpp do not delay SEEK with no Verify flag
-rw-r--r--src/devices/machine/wd_fdc.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/devices/machine/wd_fdc.cpp b/src/devices/machine/wd_fdc.cpp
index d18c3e639c8..94bd7a1cdb7 100644
--- a/src/devices/machine/wd_fdc.cpp
+++ b/src/devices/machine/wd_fdc.cpp
@@ -326,8 +326,14 @@ void wd_fdc_device_base::seek_continue()
}
if(main_state == SEEK && track == data) {
- sub_state = SEEK_WAIT_STABILIZATION_TIME;
- delay_cycles(t_gen, 30000);
+ if (command & 0x04) {
+ set_hld();
+ sub_state = SEEK_WAIT_STABILIZATION_TIME;
+ delay_cycles(t_gen, 30000);
+ return;
+ }
+ else
+ sub_state = SEEK_DONE;
}
if(sub_state == SPINUP_DONE) {
@@ -396,8 +402,7 @@ void wd_fdc_device_base::seek_continue()
case SEEK_WAIT_STABILIZATION_TIME_DONE:
LOGSTATE("SEEK_WAIT_STABILIZATION_TIME_DONE\n");
- if (command & 0x04)
- set_hld();
+ // TODO: here should be HLT wait
sub_state = SEEK_DONE;
break;