 This package contains an updated version of the fdpatches which were
originally made by Heiko Schroeder. Moreover, I have added some new
features.
 This updated version should work for linux patch level 13. ( maybe
also earlier or later with some luck)
 For a description what this package actually does, see the original
README file by Heiko Schroeder (README.schroeder).

I. New features:
================
 1. The new FDSETMAXERRS ioctl sets the number of errors permitted
before the floppy drive aborts the operation, and the number of errors
permitted before the floppy drive stops trying to read one track at
once.
 2. The new FDGETMAXERRS ioctl reads back these two tresholds.
 3. The new FDGETEMSTRESH ioctl reads back the error reporting
treshold (as set by FDSETEMSTRESH)
 4. The new FDGETDRVTYP ioctl displays the type of a drive (name
parameter).

II. Bug fixes:
==============
 1. Buffered tracks were not invalidated on a geometry change. After
changing the geometry of the drive to a geometry with more sectors,
reading the additional sectors returned random data.
 2. In the read track routine, the number of heads was hard-coded to
2. Thus it was impossible to read an entire track at once on a
one-sided disk.
 3. After formatting a track, the motor and the drive light were not
switched off.
 4. When the user specified a geometry with 0 sectors or heads and
then tried to read from the disk, a "division by zero error" occured
in the kernel, and some locks were not released correctly.
 5. When you tried to format a drive which is not defined in the CMOS,
you sometimes got a segmentation fault.
 6. I added a check to the open routine to make sure the minor device
number corresponds to an existing format.

 These bugs are now fixed.

 Example programs:
 =================

 1. floppycontrol. This program sets the various error tresholds
(error reporting, operation abortion, and read track), prints out
drive drive types, and flushes buffers. There is a -h help option.
 This program provides examples on how to use the new ioctl's.
 
 To compile this program just type:
 cc -N -s -o floppycontrol floppucontrol.c

 2. MAKEFLOPPIES. This shell script creates the new floppy block
device files.  It uses the floppycontrol program to translate the
minor device numbers into meaningful names. It also uses these names
to decide wether to create a given block device file or not, depending
on the type of the physical drive (for instance, for a 3 1/2 drive,
the formats corresponding to a 5 1/4 drive are not created).
 If you have more than two floppy drives, the kernel cannot find out
the types of these additional drives, and you need to specify them
with the environmental variables FD2 and FD3. The following types are
available: 1.44M ( HD 3''1/2), 1.2M (HD 5''1/4), 720k (DD 3''1/2) and
360k (DD 5''1/4).
 Sample command line:
  FD2=1.44M FD3=1.2M MAKEFLOPPIES

 IMPORTANT: The MAKEFLOPPIES script needs the floppycontrol program on
the search PATH.

Installation:
=============

 1. First untar the package.
 2. Then patch the kernel:
     cd /linux
     patch -p2 -l < fdpatches2 

 3. Compile the kernel:
     make

 4. Install the kernel with lilo, and reboot. (See the Lilo Doc for details)

 5. Compile floppycontrol.c
      cc -N -s -o floppycontrol floppucontrol.c

 6. Run the MAKEFLOPPIES script to create the device files:
      cd /dev
      MAKEFLOPPIES

 7. Enjoy!


 I you have any questions, feel free to ask!

   A. Knaff
  ( knaff@mururoa.imag.fr)

