[comp.os.minix] Noisy floppy

A430@HASARA11.BITNET (Dept. of Mol. Biology, Section of Mol. Cytology) (06/08/91)

My 3.5 inch floppy drive always made much more noise under MINIX than under DOS
when using 1.44 Mb disks.  I'll explain the solution I found to this, so that
others can profit from it too.
 
I have only one floppy drive in my AT, a Teac FD235HF 3.5 inch, which can
handle both 1.44 Mb and 720 Kb disks, this includes writing and formatting
the 720 Kb disks and exchanging them with disks written by XT's.
I had a look at the Diskette Parameter Table under DOS in order to compare
it with the floppy disk driver.  My Diskette Parameter Table looks as follows:
 
        (hex)  DF, 02, 25, 02, 09, 1B, FF, 54, F6, 01, 08.
 
The fifth byte is the number of sectors per track, which is 9 here, rather
than the expected 12 (hex).  I verified that this remained the same no
matter what disk actions were performed like formatting a 1.44 Mb disk.
The D in the first byte is the stepping rate during seek operations.
The MINIX floppy disk driver has an A here for 1.44 Mb disks.
I changed the A to a D and all the grinding noise disappeared!
Also, my drive is now some ten percent faster with 1.44 MB disks.
Perhaps something like the following could be a general patch:
 
*** floppy.c0	Sun Dec 23 01:07:02 1990
--- floppy.c    Mon May  6 21:24:18 1991
***************
*** 239,244 ****
--- 239,246 ----
 
    cim_floppy();			/* ready for floppy interrupts */
 
+   if (!ps) spec1[6] = 0xDF;
+
    /* Here is the main loop of the disk task.  It waits for a message, carries
     * it out, and sends a reply.
     */
 
 
After I fixed this I made further comparisons between the Diskette Parameter
Table and floppy.c and saw that the head settle time (tenth byte in DPT) is
only one millisecond.  Floppy.c gives 3.5 inch drives a head settle time of 2
clockticks (= 33 milliseconds) per seek or recallibration and 5.25 inch drives
nothing.  According to my Phoenix BIOS manual both 3.5 inch drives and 1.2 Mb
drives require 15 milliseconds and 360K drives need 20 to 25 milliseconds.
I found out that my drive doesn't need any head settle time at all, other than
that resulting from the code between a seek request and a read/write request.
 
Finally, according to my BIOS manual 3.5 inch drives always have a sector gap
(sixth byte in DPT) of 1B (hex) rather than the 2A (hex) given by floppy.c to
720 Kb disks.  I modified this in my floppy.c but didn't observe any effects.
 
Bert Gijsbers