Settle delay and other timings, three-mode drives - Printable Version

+- CBMSTUFF FORUM (https://www.cbmstuff.com/forum)
+-- Forum: CBMSTUFF PRODUCTS (https://www.cbmstuff.com/forum/forumdisplay.php?fid=1)
+--- Forum: SuperCard Pro (https://www.cbmstuff.com/forum/forumdisplay.php?fid=3)
+---- Forum: Developer Area (https://www.cbmstuff.com/forum/forumdisplay.php?fid=13)
+---- Thread: Settle delay and other timings, three-mode drives (/showthread.php?tid=344)

Settle delay and other timings, three-mode drives - mark_k - 11-14-2016

Settle delay

How is the drive settle delay handled? That's the delay needed after moving the heads to the desired track, before reading/writing data. Do programs which access the SCP have to handle that themselves, or does the hardware/firmware guarantee it for the step to track command?

The doc for command 0x91 set parameters says "Word 4 - delay (in milliseconds) after seeking track 0 (default 15)". Which suggests the SCP only uses a settle delay after stepping to track 0 via command 0x88 - seek track 0. Should user programs wait after issuing command 0x89 step to track, before reading data? And similarly wait after issuing commands 0x8A and 0x8B (step inwards and outwards)?

The Citizen Z1DA-78A floppy drive specification at
mentions 18ms being needed as the settle delay. My drive is a Citizen Z1DE-57Bb (HP OEM model) and I'm having problems getting good dumps using it. I'll post about that in another thread.

Three-mode floppy drives

When using a three-mode floppy drive (i.e. one capable of being told to spin at 360rpm instead of 300rpm), can the SuperCard control the drive mode? I notice the 0xA0 read flux data command has bit 3 related to that. Does that flag just tell the SCP to read at a higher resolution, or does it tell the drive to spin at that speed?

Various drive manuals say the mode (for HD disks at least) is selected by the state of drive connector pin 2.
According to "SAMSUNG-SFD321B-070103.pdf"
the mode is set by the density select line (pin 2 of the 34-pin connector):
 - HD disk and DS line HIGH: 2.0MB (normal 300rpm)
 - HD disk and DS line low: 1.6MB (360rpm)
 - DD disk: always 1.0MB regardless of DS line (300rpm)

According to "FDAA-522041_YD-702D-6639D_3.5_Floppy.pdf"
those Y-E Data drives can be jumpered for both senses of pin 2 (the Y-E Data PDF calls that line MODE SELECT). In other words, either the same as SFD-321B, or the opposite: HD disk and pin 2 low: 2.0MB/300rpm, HD disk and pin 2 high: 1.6MB/360rpm. If I read the PDF correctly, it looks like that particular Y-E Data drive ships with jumpers set to the opposite of the SFD-321B.

Teac also made 3-mode floppy drives (FD-235HG). According to "Teac FD-235HG manual.pdf"
(document page 22, PDF page 25)
MODE SELECT LOW: 1.6MB (360rpm), MODE SELECT HIGH: 2.0MB (300rpm)
So Teac 3-mode selection is same as Samsung.

RE: Settle delay and other timings, three-mode drives - admin - 11-14-2016

As stated in the SDK, the after a step command is issued, there is a delay (5ms default). After a seek to track 0 command is issued, there is a delay (15ms default). These are guaranteed by the hardware. The SCP software sets these to 20ms and 50ms respectively, which is overklll.

The 300/360 RPM flags are only used when ff_Index is not used. The 300/360 flag is then used as a timeout for the reading (or writing) of either 200ms or 166.667ms.

Every drive is different. Some drives CAN be controlled by the density select to change the drive speed, but most 3.5" disk drives do this automatically using the HD hole sensor. When a high density (1.44MB) disk is inserted, typically the drive goes to 360 RPMs and when a low density (720K) disk is inserted, typically the drive goes to 300RPMs. However, this brand dependant which can be changed by jumpers.

RE: Settle delay and other timings, three-mode drives - mark_k - 11-14-2016

Thanks for that.

So if writing my own software which uses commands 0x89, 0x8A or 0x8B (step to track/step inwards/step outwards), the hardware delays 5ms after the last step by default, so before issuing a read or write command, I'd need to delay another 13ms say (for >=18ms settle delay). Or just do as the SCP software does and set the individual step delay to 20ms which is long enough anyway.

For three-mode 3.5" drives, they always (at least from the datasheets I read) spin at 300rpm for DD disks. For HD disks only, the drive spins at either 300rpm or 360rpm depending on the state of pin 2. So what I'd like to know is, can the SCP hardware control the state of pin 2?

RE: Settle delay and other timings, three-mode drives - admin - 11-14-2016

In all likelyhood, the stock values work. I have never seen a drive actually need more than a few milliseconds for settling and since the index pulse is typically waited on, you are pretty much guaranteed to have a ton of time sitting idle. You can set the defaults to whatever you like.

I am not sure what a 3-mode drive is. Yes, SCP can control pin 2. That is the density, and you can read/set that using command 0x8C.

If you are planning on writing your own control software you might want to look at existing examples, like Keir Fraser's disk utilities or a8rawconv. Both of these have code for stepping, reading, writing, etc. as well as handling the .scp image file format.