Re: floppy question of the hour

From: Gene Heskett
Date: Wed May 28 2008 - 17:50:26 EST


On Wednesday 28 May 2008, Lennart Sorensen wrote:
>On Tue, May 27, 2008 at 05:49:18PM -0400, Phillip Susi wrote:
>> Yes, the interleave slows you down, since after accessing sector 1, the
>> head must wait to pass over 3 other sectors before finally reaching
>> sector 2, therefore, you can only read 1/4 of the sectors on the track
>> each revolution of the disk. That leaves 4 revolutions at 300 rpm
>> giving 0.8s to read a track, or 64 seconds to read all 80 tracks, plus
>> seek time. That still does not explain 3 minutes though... not sure
>> what else could be slowing you down.
>
>Just do what the Amiga did: Read the entire track into a buffer in
>memory, then deal with the sectors, and write the entire track back. :)

That would be a huge improvement, but I'm afraid it would need someone far more
familiar with floppy.c than I.

I am beginning to figure out how to make it work though. The sequence goes
something like this:
1. insert disk in drive, wait 5 minutes just in case, didn't help.
2. setfdprm /dev/fd0 COCO7203.5
3. getfdprm /dev/fd0 (fails, no such device)
4. dd if=/dev/fd0 bs=256 count=1
5. wait 20 to 40 secs for it to fail with an i/o error
6. setfdprm /dev/fd0 COCO7203.5
7. getfdprm /dev/fd0
DS DD sect=18 ssize=256
8. dd if=disk.image of=/dev/fd0 bs=256

then about 4 minutes later:

9. dd if=dev/fd0 of=test.dsk;cmp disk.image test.dsk
Eof "disk.image" (its shorter than the 720k disk itself)

3 more minutes for step 9 and I know if I have a good write. You can do the
setfdprm 100 times and it fails silently everytime, but attack it with dd once,
and /dev/fd0 gets well and works. 4 or 5 years ago it all worked straight off
with the tools we had then.

FWIW, kernel is now 2.6.26-rc4, stable so far with a 49 hour uptime.

Hell of a way to run a train, guys, really. :)

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Ambidextrous, adj.:
Able to pick with equal skill a right-hand pocket or a left.
-- Ambrose Bierce, "The Devil's Dictionary"
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/