X68000 floppy drive head calibration program

Started by eidis, October 28, 2013, 01:02:02 AM

Previous topic - Next topic

eidis

 Hi Guys !

Today I discovered a very interesting program by Thomas Richter for the Amiga called TrackDiskSync which is used to calibrate floppy drive heads and track 0 sensor. You can check it out here:

http://aminet.net/package/driver/media/TrackDiskSync

The program needs one confirmed good drive to write the calibration pattern to the disk. Different tracks are encoded by beeps of different pitches which are played by the computers sound card. The outhermost track, track #0, comes with the highest pitch.

Here is an excerpt from the programs readme file:

Step 7:      Recalibrating the drive.
Required:   Joystick, mouse and keyboard. Audio. Calibration disk.

Wait until the drive spins up, turn on the audio system. You should now either
hear a calibration tone, or noise. As soon as you push the joystick button,
the drive should step forwards and backwards again.

Keep the button pushed, keep care of the tone and rotate the motor or the
fine adjustment control forwards and backwards. The tone should now change
its pitch, or should even vanish completely, and finally should re-appear
at a different pitch.

The different pitches indicate the different tracks you place the drive
head on. If the drive head sits on top of a track of the disk, you will hear
the tone. If it sits between two tracks, you will hear noise.

Move the fine adjustment control until you identify the tone of the highest
pitch belonging to track zero. Try to remember the pitch of track zero at
the time the calibration disk was written.

In case coarse adjustment is required, try to find track zero as best as
possible by moving the coarse adjustment first. Only an approximate position
has to be found. Tighten the coarse adjustment screw first, then continue with
the fine adjustment.

Move the fine adjustment to the two extreme places where the tone turns
into noise, and place it half between these two points, keeping the joystick
button pressed from time to time to keep the motor stepping.

Tighten the screw and make sure that the tone stays clear from noise such that
the head remains comfortably within the track data.


I guess my question will be mostly addressed to Lydux and Kamiboy. Would it be possible to write a similar program for the X68000 and do we need the source code of TrackDiskSync or can we do it from scratch ?

Keep the scene alive !
Eidis
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

kamiboy

#1
For my part I would say no. The scanning program I wrote used standard IOCS calls to check whether a sector read could be completed or not.

Unfortunately the sector read function is a bit spotty when it comes to determining whether a sector can be read or not which is why rescanning will give you different results, but we digress.

In order to do a program like the Amiga one that you describe you would need low level access to the disk drive hardware. That would require some serious knowledge about the inner workings of said equipment. That stuff goes above my head, unfortunately.

Furthermore adjusting the read head on the X68000 Compact floppy drive is really hard and if I understand this right you are supposed to move it while it is still reading, which in my experience damages the disk.

One last thing, and I might be wrong. But from experience I would say that if a Compact floppy is at a point where it is not reading disks properly then it is too far gone for a head alignment. I think Compact drives stop reading disks mostly for reason unrelated to head misalignment.

kamiboy

On the other hand, if someone wanted to try their hands with writing a similar program for the X68000 I would say that the source code would be of immense value.

I imagine that on a low level all floppy hardware behave the same way, and the Amiga even sports a 68000 processor in case the program is written in assembly.

I would however still stress how incredibly difficult it is to relocate the head of a compact floppy with any form of finesse. Not to mention that the damn thing tends to move out of place when you try to tighten the screw, which will throw off all your hard calibration work.

eidis

Maybe we do not need the source code after all. I used TrackDiskSync to calibrate an old rusty floppy drive on Amiga 600 and here's how it works:

First a calibration floppy is prepared with a confirmed good drive. The program writes six (don't remember exactly) tracks starting from track 0 and a differently pitched sound is played during writing of each track.

The calibration program on the bad drive then tries to endlessly read track 0 and, if successful, plays the corresponding pitch. In practice, only the first two tracks are necessary for proper head alignment.

Floppy drive heads can be repositioned to track 0 by pressing fire button on joystick. This comes in very handy to confirm that heads have been properly aligned and track 0 sensor is working correctly.

This brings another question for Kamiboy and Lydux ;)

Would it be possible to write a program which tries to read one sector or track of the upper heads track 0, plays some sort of beep if successful and returns heads to track 0 when joystick fire button is pressed ? The differently pitched sounds could be explained as whole track containing only 00 or FF or some other chosen bytes.

Keep the scene alive !
Eidis
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

kamiboy

From my experience aligning a head to read the first sector is the easiest part. The real challenge is to then fine adjust the head so it can read every sector until the last one without a single bad read.

You can already do what you describe using my program. Just hit R to rescan.