ImageDisk project is canceled

Tony Duell ard at p850ug1.demon.co.uk
Thu Dec 22 14:36:46 CST 2005


> 
> On Thu, 22 Dec 2005 00:26:44 +0000 (GMT)
> ard at p850ug1.demon.co.uk (Tony Duell) wrote:
> 
> > To get back to disk imaging, I may be stupid, but I do wonder if
> > it's  actually possible to write such a program to run under
> > linux or any other  multi-tasking system. 
> > 
> Since it's possible under Linux or one of the BSD Unixes to
> completely compile out support for the floppy controller, it
> should also be possible to pull said kernel code out, and create a
> (super)user-mode module application out of it to do whatever you
> want with the disk controller.  More of this sort of thing should
> be done, in my estimation.  (my two cent opinion, I know, since I
> should do-it-myself).

You are, IMHO, missing the point. Under linux, you have an ioctl() call 
that lets you send any ocmmand bytes you like to the FDC. You can 
therefore get that chip to do anything that it's capable of. And that 
call takes care of setting up the DMA controller if you need it, making 
sure the DMA buffer doesn't cross a page boundary, and all the other 
nasty little details. 

Actually sending a ReadID command is not a problem.

The problem is that the ReadID command reads the next sector ID to come 
round to the head. The only way (that I can see) to make sure you've not 
missed any is to keep on sending ReadID commands (and getting the 
results) until you get the same ID again that you got from the first one 
-- i.e. the disk has gone round once. 

The problem on a multi-tasking OS is that your task might be switched out 
half-way though this. You might therefore miss a sector ID entirely. And 
how ever many times you repeat it, you can never be sure you've not been 
unlucky and missed the same one each time.

-tony


More information about the cctalk mailing list