One-pass "flippy" disk support is here!

All news about KryoFlux go here.
User avatar
Posts: 2120
Joined: Tue Oct 05, 2010 5:48 pm

One-pass "flippy" disk support is here!

Post by mr.vince » Wed Oct 05, 2011 11:29 pm

We rolled it out together with write support (DTC 2.0), but wanted to prepare the upcoming tutorial before making this public.

Standard 5.25" drives have trouble reading the flip side of e.g. C64 disks. Please read our FAQ for an in-depth explanation of the problem. We are proud to present one-pass flippy dumping with KryoFlux. With a modified 5.25" drive you are able to read such disks without flipping the disk or adding a fake index signal. This tutorial was made by Robert McIntyre. Thanks for making it happen!


Part 1:
Part 2:
Part 3:

Posts: 6
Joined: Wed Sep 28, 2011 10:34 pm

Re: One-pass "flippy" disk support is here!

Post by dusty1000 » Fri Oct 07, 2011 12:40 am

Thanks for the excellent Tutorial!

But is there any chance, that some drives exist, that can handle all needed head positions without modifying?

I'm just asking 'cause I think I got one.

It's an old drive made in GDR ( german democratic Republik ).

I just tried dumping both sides of a C64 Floppy disk and both Images work like charm in an emulator.

Posts: 81
Joined: Fri Nov 26, 2010 12:26 am

Re: One-pass "flippy" disk support is here!

Post by RJMcInty » Fri Oct 07, 2011 3:45 am

It's possible, of course! However, not likely. :( At a minimum, a drive should need at least the Track 0 bypass circuit installed. I've found one drive that requires only that addition, but it is easily knocked out of alignment, so I'm reluctant to recommend it until I've sorted out why, and a fix.

I'm interested in learning more about your drive; can you share the make/model number, and perhaps some pictures?

Also, to see if it's actually dumping both sides properly, please provide the command line that you're using, and the output of DTC for the first 5 or 6 tracks of each side (please use -l15 in the command line to get detailed output). We can take a look at it and determine if it's decoding things properly.


Posts: 120
Joined: Tue Nov 30, 2010 5:36 am

Re: One-pass "flippy" disk support is here!

Post by TeaRex » Fri Oct 07, 2011 1:43 pm

So... I've got a TEAC FD-55GFR drive here that looks like it should be much easier to get those extra 2.117 mm out of, only one modification to the chassis should be necessary. But how do you find what the video calls "TP8" on another drive? Is it just the non-ground lead on the receiver side of the Track 0 sensor? Or am I missing something obvious?

Another question, a 2N3904 should suffice in place of the 2N2222, right? Cause I've got lots of them around.

EDIT: One more thing that would be nice: an example command line for flippy dumping.

Posts: 6
Joined: Wed Sep 28, 2011 10:34 pm

Re: One-pass "flippy" disk support is here!

Post by dusty1000 » Fri Oct 07, 2011 2:41 pm

OK, I used the following command:

dtc -d1 -ftest.d64 -g2 -y -b-8 -i6 -l15

Result for the first few tracks:

0009c7e3: motor=1
0009cb64: side=1
0009cb78: track=-8
0009cbcb: stream=1
0009ce6c: stream=0
-8.1[00]: frev: 30834, drift: 0.062 us, tfer: 142108 B/s, rpm: 296.742
-8.1[00]: base: 3.248 us [99.860%], band: 3.246 us, 6.497 us, 9.771 us
-8.1[00]: CBM DOS: OK*, trk: 001[005], sec: 21, *T
0009cea8: motor=1
0009cebc: side=1
0009ced0: track=-6
0009cf2d: stream=1
0009d1a9: stream=0
-6.1[02]: frev: 34417, drift: 0.125 us, tfer: 157103 B/s, rpm: 296.741
-6.1[02]: base: 3.252 us [99.887%], band: 3.250 us, 6.504 us, 9.768 us
-6.1[02]: CBM DOS: OK*, trk: 002[006], sec: 21, *T
0009d1e5: motor=1
0009d1f9: side=1
0009d20d: track=-4
0009d247: stream=1
0009d4df: stream=0
-4.1[04]: frev: 34539, drift: 0.083 us, tfer: 157860 B/s, rpm: 296.744
-4.1[04]: base: 3.248 us [99.936%], band: 3.247 us, 6.495 us, 9.745 us
-4.1[04]: CBM DOS: OK*, trk: 003[007], sec: 21, *T
0009d51b: motor=1
0009d52f: side=1
0009d543: track=-2
0009d57d: stream=1
0009d818: stream=0
-2.1[06]: frev: 37060, drift: 0.104 us, tfer: 172400 B/s, rpm: 296.745
-2.1[06]: base: 3.249 us [99.817%], band: 3.245 us, 6.498 us, 9.778 us
-2.1[06]: CBM DOS: OK*, trk: 004[008], sec: 21, *T
0009d854: motor=1
0009d868: side=0
0009d87c: track=65535
0009d8b6: motor=1
0009d8ca: side=0
0009d8de: track=1
0009d9a2: motor=1
0009d9b6: side=0
0009d9ca: track=0
0009da23: stream=1
0009dc22: stream=0
00.0 : frev: 34547, drift: 0.083 us, tfer: 159009 B/s, rpm: 296.741
00.0 : base: 3.264 us [98.562%], band: 3.480 us?, 6.509 us, 9.791 us
00.0 : CBM DOS: OK, trk: 001, sec: 21
0009dc4a: motor=1
0009dc5e: side=1
0009dc72: track=0
0009dc86: stream=1
0009de8b: stream=0
00.1[08]: frev: 30833, drift: 0.166 us, tfer: 133697 B/s, rpm: 296.738
00.1[08]: base: 3.251 us [99.891%], band: 3.247 us, 6.502 us, 9.767 us
00.1[08]: CBM DOS: OK, trk: 005, sec: 21
0009deb3: motor=1
0009dec7: side=0
0009dedb: track=2
0009df38: stream=1
0009e1c7: stream=0
02.0 : frev: 37628, drift: 0.042 us, tfer: 174854 B/s, rpm: 296.741
02.0 : base: 3.256 us [98.627%], band: 3.258 us, 6.511 us, 9.501 us?
02.0 : CBM DOS: OK, trk: 002, sec: 21
0009e203: motor=1
0009e217: side=1
0009e22b: track=2
0009e23f: stream=1
0009e4fe: stream=0
02.1[10]: frev: 34420, drift: 0.187 us, tfer: 160568 B/s, rpm: 296.744
02.1[10]: base: 3.245 us [99.902%], band: 3.250 us, 6.490 us, 9.759 us
02.1[10]: CBM DOS: OK, trk: 006, sec: 21
0009e53a: motor=1
0009e54e: side=0
0009e562: track=4
0009e59c: stream=1
0009e835: stream=0
04.0 : frev: 37168, drift: 0.770 us, tfer: 172400 B/s, rpm: 296.748
04.0 : base: 3.258 us [97.462%], band: 3.492 us?, 6.516 us, 9.513 us?
04.0 : CBM DOS: OK, trk: 003, sec: 21
0009e871: motor=1
0009e885: side=1
0009e899: track=4
0009e8ad: stream=1
0009eb70: stream=0
04.1[12]: frev: 34541, drift: 0.250 us, tfer: 160568 B/s, rpm: 296.745
04.1[12]: base: 3.248 us [99.952%], band: 3.247 us, 6.496 us, 9.752 us
04.1[12]: CBM DOS: OK, trk: 007, sec: 21
0009ebac: motor=1
0009ebc0: side=0
0009ebd4: track=6
0009ec0e: stream=1
0009eea8: stream=0
06.0 : frev: 37379, drift: 0.083 us, tfer: 173618 B/s, rpm: 296.745
06.0 : base: 3.255 us [98.571%], band: 3.235 us, 6.510 us, 9.496 us?
06.0 : CBM DOS: OK, trk: 004, sec: 21
0009eee4: motor=1
0009eef8: side=1
0009ef0c: track=6
0009ef20: stream=1
0009f1e3: stream=0
06.1[14]: frev: 37056, drift: 0.146 us, tfer: 172098 B/s, rpm: 296.746
06.1[14]: base: 3.249 us [99.851%], band: 3.248 us, 6.498 us, 9.774 us
06.1[14]: CBM DOS: OK, trk: 008, sec: 21
0009f21f: motor=1
0009f233: side=0
0009f247: track=8
0009f281: stream=1
0009f51a: stream=0
08.0 : frev: 37274, drift: 0.229 us, tfer: 173007 B/s, rpm: 296.742
08.0 : base: 3.259 us [98.625%], band: 3.259 us, 6.517 us, 9.508 us?
08.0 : CBM DOS: OK, trk: 005, sec: 21

Posts: 120
Joined: Tue Nov 30, 2010 5:36 am

Re: One-pass "flippy" disk support is here!

Post by TeaRex » Fri Oct 07, 2011 3:19 pm

@dusty1000, no, unfortunately your drive did NOT seek below logical track No. 5 on the back side. This is the normal, expected behaviour for an unmodified drive and it prevents making proper images of "flippy" disks. (C64 disks count tracks from one; for other non C64 formats that count tracks from zero, the number would be 4, not 5).

Note the track numbers in square brackets, they show the logical track number where the drive's head really ended up. The number before the bracket shows where the dtc software wanted it to go. The asterisk means some kind of problem has occured; "*T" in particular means a track number mismatch.

So unless your game did not have any useful data on tracks 1-4 of the back side, it will fail to run correctly from the images you produced. The failure doesn't have to happen at once, it might happen at some point later in the game, e.g. during loading of some level beyond the first (which game is it by the way?)

User avatar
Posts: 3079
Joined: Mon Nov 08, 2010 2:42 pm

Re: One-pass "flippy" disk support is here!

Post by IFW » Fri Oct 07, 2011 4:10 pm

Exactly what TeaRex said - thanks :)

Posts: 81
Joined: Fri Nov 26, 2010 12:26 am

Re: One-pass "flippy" disk support is here!

Post by RJMcInty » Fri Oct 07, 2011 4:45 pm

:) TeaRex and IFW beat me to the *T analysis.

@TeaRex - regarding the Teac FD-55GFR... I had high hopes for that drive, but it hasn't panned out yet. Here's a brief summary of what I found; I'll pull together a FAQ/analysis of every drive I've looked at, and post it, and we can add to it as people look at other drives.

First, you do need to remove some chassis to make it go to -8, and it involves taking the top disc-clamp arm assembly off, etc.. It's not too bad, but there's a good bit of grinding there.

Second, once the drive carriage assembly has the room to go to -8, you'll see that the carriage/head stepper metal ribbon has some issues. The way the clamping mechanism works, it doesn't give enough room for rotation in the negative direction, so it stops the head from going to -8 (I think I could get it to -5, or -6). The simplest fix for that would be to just slide the whole stepper back 2 tracks or so, and force it to zero in a position with more negative rotation available. Unfortunately, you can't get the stepper to go that far back. So, you need to rotate the takeoff pully on the stepper shaft to give a bit more room. This, of course, destroys the alignment, and requires a full realignment. But, it also makes the drive completely susceptible to being knocked out of alignment as soon as you bounce the head off an end stop.

And, in some of them, there's not enough room around the track 0 sensor itself to allow enough negative travel. So, to fix that, you have to grind some more, and shift the PCB (which has the track 0 sensor on it) as far to the back of the drive as possible. This, too, messes up the track 0 alignment, so you'll need to extend the end of the actuator with some card stock, etc., to make up for shifting the PCB/sensor, and carefully tweak the length of the addition to make the track 0 alignment right.

Whew! Ok, that's more than a brief summary, but there you go. I've got 6-7 of the most common drives, and looked at each one trying to figure out if it would work. I'll do a write-up of them all, and maybe it can be a sticky like the supported drives thread, and people can add their own experiences to it. It'll take me a day or two to get that done.

Oh, here's the command line that I use to dump flippies:

dtc.exe -p -fdumpdir\track_ -i0 -g2 -y -i6 -i2 -b-8 -l8 -t10

-p : force directory creation
-fdumpdir\track_ : create a directory for the disk, and name all the files "track_*"
-i0 : create stream files
-g2 : both sides of the disk
-y : flippy mode on side b
-i6 : CBM DOS format
-i2 : sets some preservation presets
-b-8 : track offset for side b
-l8 : limited output verbosity
-t10: 10 retries on errors


Posts: 120
Joined: Tue Nov 30, 2010 5:36 am

Re: One-pass "flippy" disk support is here!

Post by TeaRex » Sat Oct 08, 2011 11:23 pm

Alright - it's true the Teac doesn't easily go down far enough. Plus I managed to misalign it during my attempts to make it.

Then I remembered that many moons ago I had already added the transistor circuit to a trusty old Mitsumi/Newtronics D509V2 drive which comes right from my very first PC, a 386 that was already grimy and ancient when I I bought it in 1994. Of course the older kryoflux software didn't actually support the circuit so I had shelved it and forgotten about it.

Some more grinding and some re-alignment work was necessary (I moved seven times since I got it...) but now it works very well. Seems to read everything I throw at it: old and new, flippy and non-flippy Apple II, Atari 8-bit, Commodore, PC DD and HD disks, and even some Amiga stuff I wrote to 5.25" to test the ipf writing feature with this drive (I don't think there are any native 5.25" IPFs in the wild yet?)

The only odd thing is that disks *written* in it (from IPF) seem to be slightly unreliable when read (whether in the same drive or in another) around tracks 55-59, though using more revolutions (15 or so) will cure that. All the rest works well. Since I can't find any mechanical notches or bumps at that place, Could that have anything to do with the pre-compensation algorithm that dtc/kryoflux uses during writing? I've never yet had a drive that works really well at reading even ancient disks (many of which fail in other drives that I tried) but has trouble with writing specific tracks. I guess I will try writing a disk in it from the PC floppy controller...

Posts: 120
Joined: Tue Nov 30, 2010 5:36 am

Re: One-pass "flippy" disk support is here!

Post by TeaRex » Sun Oct 09, 2011 5:56 am

Update: The problem on tracks 55-59 does not happen on the normal PC disk controller, only on KryoFlux. I don't have any HD 5.25" blanks, but everything I did to DD disks worked fine on the native controller, both in WIndows and in real DOS - including repeated scandisk tests as well as 2M formatting and usage. So I have to suspect that there is some kind of problem with the precompensation algorithm that this drive is particularly fussy about.

Post Reply