Dave Dunfield wrote:
Regarding ImageDisk and Linux - all I see needed to do
it properly are
some enhancements to the floppy driver - the ability to configure for all
possible formats the 765 can do (if Linux does not do this already which
I think it might), and the ability to do track-by-track analysis. These things
would be easy to do in the driver. Then the "ImageDisk" program becomes
a simple application which makes IOCTL calls to analze the disk, and
configures the controller, and then simply reads sectors off and writes the
.IMD file.
Here's what the linux floppy driver already handles. Note that the
kernel uses the device node's minor number to specify
sides/tracks/sector/density, as well as the drive's ID. Also note that
there are a lot of minor numbers available if you wanted to add formats.
This is excerpted from <kernel-source-dir>/Documentation/devices.txt.
That file also gives details concerning submissions for the list and
having major/minor numbers officially assigned to your device[s].
Major 2 block Floppy disks
0 = /dev/fd0 Controller 0, drive 0, autodetect
1 = /dev/fd1 Controller 0, drive 1, autodetect
2 = /dev/fd2 Controller 0, drive 2, autodetect
3 = /dev/fd3 Controller 0, drive 3, autodetect
128 = /dev/fd4 Controller 1, drive 0, autodetect
129 = /dev/fd5 Controller 1, drive 1, autodetect
130 = /dev/fd6 Controller 1, drive 2, autodetect
131 = /dev/fd7 Controller 1, drive 3, autodetect
To specify format, add to the autodetect device number:
0 = /dev/fd? Autodetect format
4 = /dev/fd?d360 5.25" 360K in a 360K drive(1)
20 = /dev/fd?h360 5.25" 360K in a 1200K drive(1)
48 = /dev/fd?h410 5.25" 410K in a 1200K drive
64 = /dev/fd?h420 5.25" 420K in a 1200K drive
24 = /dev/fd?h720 5.25" 720K in a 1200K drive
80 = /dev/fd?h880 5.25" 880K in a 1200K drive(1)
8 = /dev/fd?h1200 5.25" 1200K in a 1200K drive(1)
40 = /dev/fd?h1440 5.25" 1440K in a 1200K drive(1)
56 = /dev/fd?h1476 5.25" 1476K in a 1200K drive
72 = /dev/fd?h1494 5.25" 1494K in a 1200K drive
92 = /dev/fd?h1600 5.25" 1600K in a 1200K drive(1)
12 = /dev/fd?u360 3.5" 360K Double Density(2)
16 = /dev/fd?u720 3.5" 720K Double Density(1)
120 = /dev/fd?u800 3.5" 800K Double Density(2)
52 = /dev/fd?u820 3.5" 820K Double Density
68 = /dev/fd?u830 3.5" 830K Double Density
84 = /dev/fd?u1040 3.5" 1040K Double Density(1)
88 = /dev/fd?u1120 3.5" 1120K Double Density(1)
28 = /dev/fd?u1440 3.5" 1440K High Density(1)
124 = /dev/fd?u1600 3.5" 1600K High Density(1)
44 = /dev/fd?u1680 3.5" 1680K High Density(3)
60 = /dev/fd?u1722 3.5" 1722K High Density
76 = /dev/fd?u1743 3.5" 1743K High Density
96 = /dev/fd?u1760 3.5" 1760K High Density
116 = /dev/fd?u1840 3.5" 1840K High Density(3)
100 = /dev/fd?u1920 3.5" 1920K High Density(1)
32 = /dev/fd?u2880 3.5" 2880K Extra Density(1)
104 = /dev/fd?u3200 3.5" 3200K Extra Density
108 = /dev/fd?u3520 3.5" 3520K Extra Density
112 = /dev/fd?u3840 3.5" 3840K Extra Density(1)
36 = /dev/fd?CompaQ Compaq 2880K drive; obsolete?
(1) Autodetectable format
(2) Autodetectable format in a Double Density (720K) drive only
(3) Autodetectable format in a High Density (1440K) drive only
NOTE: The letter in the device name (d, q, h or u)
signifies the type of drive: 5.25" Double Density (d),
5.25" Quad Density (q), 5.25" High Density (h) or 3.5"
(any model, u). The use of the capital letters D, H
and E for the 3.5" models have been deprecated, since
the drive type is insignificant for these devices.
Doc