summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/imagedev
diff options
context:
space:
mode:
author Michael Zapf <Michael.Zapf@mizapf.de>2017-01-13 21:17:54 +0100
committer Michael Zapf <Michael.Zapf@mizapf.de>2017-01-13 21:17:54 +0100
commit3998824713dbbee8cc044e778c821848d7b0ed86 (patch)
treebe386bee395d781d0d4a77cc3effcb0a6eec8a00 /src/devices/imagedev
parentbb02422fda2fc0feaf85ee00db52ae583e4beca4 (diff)
floppy: Added TODO comments; revert stp_w ignore on spin-up until further evidence
Diffstat (limited to 'src/devices/imagedev')
-rw-r--r--src/devices/imagedev/floppy.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp
index cdbffe81b36..69413ae57cf 100644
--- a/src/devices/imagedev/floppy.cpp
+++ b/src/devices/imagedev/floppy.cpp
@@ -632,7 +632,9 @@ bool floppy_image_device::twosid_r()
void floppy_image_device::stp_w(int state)
{
// Before spin-up is done, ignore step pulses
- if (ready_counter > 0) return;
+ // TODO: There are reports about drives supporting step operation with
+ // stopped spindle. Need to check that on real drives.
+ // if (ready_counter > 0) return;
if ( stp != state ) {
stp = state;
@@ -755,8 +757,14 @@ attotime floppy_image_device::get_next_index_time(std::vector<uint32_t> &buf, in
attotime floppy_image_device::get_next_transition(const attotime &from_when)
{
+ if(!image || mon)
+ return attotime::never;
+
// If the drive is still spinning up, pretend that no transitions will come
- if(!image || mon || ready_counter > 0)
+ // TODO: Implement a proper spin-up ramp for transition times, also in order
+ // to cover potential copy protection measures that have direct device
+ // access (mz)
+ if (ready_counter > 0)
return attotime::never;
std::vector<uint32_t> &buf = image->get_buffer(cyl, ss, subcyl);