5.25" Flippy Disks

2009-11-11

Once KryoFlux has been completed, many possibilities open up that were simply impractical before. One investigation we are currently working on is the best method to dump single-sided “flippy” 5.25” disks as used on computers such as the Commodore 64 and Apple II.

After some research, we found out is that these disks were written in one pass by the duplicator, Trace, using modified double-sided drives. The first side was written normally, and the “flip” side was written backwards, that is, the bitstream was written in reverse. This reverse flux transition stream poses no problems for KryoFlux, since it can simply read it as it would anything else, and we can reverse it back again in software.

The problem is that the “flip” side is written offset by 4 tracks (counting for a 40 track drive, which equals 8 tracks on an 80 track drive) in order for a C64 to read the flip side as normal. The 5.25” drives we have seen have a mechanical stop (a barrier) to prevent seeking to track -4, but there are probably others that have some electronics for track 0 detection.

We have discovered that Trace modified their drives to remove this mechanical stop and hence write both sides in one pass. We are investigating doing the same thing, and allow flippy disks to be completely read using KryoFlux in an otherwise normal double-sided drive.

Commodore VC-1541

This 1541 is an updated revision with a drive by Newtronics (aka Mitsumi).

This model has a knob you have to turn to close the drive. The very first model with the Alps drive has a pushdown mechanism, and is very prone to misalignment - not one you’d want for daily usage.

The drive has no TRK00 detection. Therefore, the drive makes a very ugly sound when ramming the head continuously against a mechanical barrier, and this can lead to misalignment, especially with protections that do a lot of seeking and resetting after errors (which are expected of course).

There is a bit of space at the end on the rail. We’re not sure yet if this is sufficient to step to -8, we would need to test it. We will also see what we can do to get rid of the physical stop. We don’t want to mess with the head setup as it might pull it out of alignment, and is a right pain to correct.

On the electronics board there are two power regulators (below image, lower right) that further adjust the voltage coming from the transformer coil. Both voltages are still too high (e.g. more than 14V where 12V is expected), so these two produce heat.

All in all, this device shows a fair few engineering flaws. It will misalign its head if you format too many disks or play too many copy protected games in a row, plus the heat will fry the electronics. The 6502 CPU does get quite warm too, which is a good indicator it should have been heatsinked, specially being not too far away from the heating elements (voltage regulators).

We have both types of drives used for the C64, with the older one being more compatible with old software and old protection schemes.

1541 drive modding: parallel connection

Commodore made the 1541 a separate computer with only 2K of RAM. Therefore, it can not continuously read a whole track of data. Instead, only sectors are read, decoded and sent to the computer via a serial connection, the so called IEC bus (proprietary variant of the IEEE-488 bus). Due to problems in hardware implementation, this bus is very slow and has wasted literally billions of hours of users.

To speed up the transmission of data it is possible to attach a parallel interface to the 1541. This not only speeds up transmission times dramatically. It also matches the speed of the data coming from the drive, making it possible to actually dump the raw data as a continuous stream. Unfortunately, this data is not accurate enough to be used for preservation, because it lacks e.g. index sensing and 1:1 data representation as read by the head. On the other hand, this will be very helpful to compare against when investigating how several anomalies on a disk are presented to the host computer. We already have seen protections that will behave differently on the original hardware and in emulators currently available.

Adding a parallel connection to the 1541 is relatively easy, as the IC which is used for this, is socketed in most of the drives. In our example, the 6522 VIA IC is called UC3, but this does differ from revision to revision. Peter Schepers has set up a great site for this. We have gone for a socketed install so we have a chance to change parts quickly should anything go wrong.

parallel port install

Since we were at it, we also built the XAP54 cable to connect the drive to a PC via the parallel port. On the software side, we are using OpenCBM and Pete Rittwage’s NIBTOOLS. We are not intending to use the data produced for preservation, but it is very helpful to see how data is represented to the C64 if you can not rely on emulation (and we can’t).

1541 drive modding: cooling

The Newtronics unit we have is nearly brand new and came with the transformer coil set to 220 volts, but has a second input on the coil for 230V. First quick hack was to re-solder this to produce less heat, another known source of problems for this type of drive.

beforeafter

For anyone who wants to do this mod on his drive: Please make sure you’re resoldering the right piece of the coil. To find out if you’re doing the right thing, do the following. DISCONNECT MAINS! Turn on the drive (set switch to on position). Again make sure the drive is disconnected from AC! Now measure the resistance of the two connected wires. Then measure the other possible position, as shown on the second photo. The resistance should be slightly higher (e.g. 45 Ohms to 40 Ohms before). Resolder. Do not do this if the second measurement gives you a very low resistance of e.g. 5 Ohms only.

If in doubt, ask a trained technician. Please note that working on gear attached directly to mains power without specialized training is forbidden in some countries. To put this in clear words: Someone could die or you could risk a fire if you’re doing something wrong here.

Unfortunately, the parallel mod also adds to the heat problem, so adding heatsinks is a good recommendation.

heatsinks added

Commodore VC-1541-II

Lets look at the revised drive model used for the C64, the 1541-II.

As you can see below, this is a Chinon drive. It’s too bad it doesn’t have any useful connectors for us.

The little screw with the red lock-paint looks like it is adjusts track 0 and the stopping position. Chinon drives might be the way to go, as the chances are that this mechanism is used on later models too. EDIT: ordinary PC drives manufactured by Chinon indeed feature the same mechanism.

Commodore VC-1571

For the C128, Commodore released a new drive, the 1571. It has a burst mode and with its double sided head supports writing of dual sided disks in MFM instead of GRC. Nice side effect: It also has index detection an can therefore deliver a bit more detailed dumps in regard to track alignment. Please note that due to the dual sided head, this only works for side 1, except for disks which have a dual index hole and can actually be flipped.

C64 Heatsinks & SID Digi-Sounds

Shame Commodore didn’t heat-sink the chips in the C64, they run more than 20 degrees Celsius cooler with them. Here, we glued them with a thermally conducting epoxy resin.

We also added a fix to re-enable digi-sounds for the “next generation” SID, that is the thing in the shrink tube (obviously to avoid shorting anything).

On this newer SID, the old method of changing the volume register doesn’t create an audible click anymore, thus the digi’s are gone. You can fix that though with a resistor, a potentiometer, and some wire.

Now the C64 test setup for KryoFlux is complete.

Newtronics D509V2

We also had an old HD drive from Newtronics, used in PCs back in the 90’s. So we did some dis-assembly to see what we would find, hoping that there was only a mechanical track 0 barrier, not an electronic one.

This one desperately needs some cleaning.

It looks like, if the electronics won’t stop us, we should be able to step to -8 by removing the head-stop.

We can connect this drive to the KryoFlux dev board and it should be available. We’re not sure what the jumpers mean yet, but we could just see what happens when we step the head. We’ll probably knock up a host software routine that makes the head step to track 0, waits for 5 seconds and then moves back 4 times. It would be interesting to see where it tries to go.

EDIT: While it is possible to trick this drive and step to -4, the rail ends there. So despite some quirks with the electronics which might be ironed out, there physically is not enough space to do proper stepping to -8.