[comp.os.minix] Larger / non-std fd formats

adamd@rhi.hi.is (Adam David) (05/14/91)

In a previous article with subject 'Cannot open /dev/rfd? (ST 1.5:3)'
I wrote:

>So, why is it that /dev/rfd? fails during open()?    (I didn't break it).
>Has anybody already tackled the issue of formatting different floppy disk
>parameters under minix? There are several issues involved, most notably
>which interleave and skew factors to use and reducing the inter-sector gap
>to add another 10% to disk capacity.

The error was found in stfloppy.c and was causing open() to fail for all
/dev/*fd? devices (except /dev/fmtfd? which was disabled). Actually it would
handle SS disks correctly but barfed on DS disks. 
simple fix: multiply nr_sectors by nr_heads in the sanity checks at the end.

I have heavily modified format.c and it now succesfully formats DD disks to
924k and HD disks to 1848k using 512-byte sectors. Changes to support ED disks
up to 3696k are trivial. An ED format of 3864k is possible using 1024-byte
sectors but will require further modification to the system, because the
512-byte sector size seems to be fairly extensively used as a constant.
stfloppy.c could handle the deblocking internally, and no other part of the
system would have to know about it - but there might be better ways since
the minix system works mainly with 1024-byte disk blocks.

The formatter supports complete flexibility in specifying interleave and skew
factors, also various sector and track combinations. Slight squeezing of sector
gaps is used for the 21-sector HD format, and tight squeezing is used for the
11-sector DD and 22-sector HD format. When they are implemented the ED formats
above 42-sector will also need to use squeezing.

If there is reasonable interest I shall post the stfloppy.c patches and the
modified version of format.c, otherwise I will make them available by email. 
--
Adam David.
(adamd@rhi.hi.is)

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (05/15/91)

It is no problem to work with 1024Byte sectors. My standard Disk format
is

80 Cylinders 2 Heads 5*1024 bytes/Track yielding 800K/Disk.

All formats that go beyond that I should call them unsafe.

I use an interleave of 1:3 for MINIX file systems, so it is VERY good
that the sector size equals the block size!

C.v.W.

adrie@philica.ica.philips.nl (Adrie Koolen) (05/16/91)

In article <3143@krafla.rhi.hi.is> adamd@rhi.hi.is (Adam David) writes:
>I have heavily modified format.c and it now succesfully formats DD disks to
>924k and HD disks to 1848k using 512-byte sectors. Changes to support ED disks
>up to 3696k are trivial. An ED format of 3864k is possible using 1024-byte
>sectors but will require further modification to the system, because the
>512-byte sector size seems to be fairly extensively used as a constant.

Although it's technically marvelous that you can squeeze that much data on
a floppy diskette, I advise NOT to do it. Three important points in diskette
data storage come to my mind now:

  1. High capacity (as high as possible)
  2. Compatibility (media level as well as data level)
  3. Reliability

With respect to the first item, you've gained a substantial improvement in the
storage capacity, but obviously you've lost compatibility with many computer
systems and users. While this may not seem important to you now, this
incompatibility will get to you later.

The most important problem however, is the reliability of the data storage.
In high density, you format 84 cylinders with 22 sectors of 512 bytes per track.
You cannot guarantee that every drive can read/write 84 cylinders and a drive
that cannot read past the 80th cylinder is not implicitly faulted. Furthermore,
the coating of the magnetic media need not extend to the 84th cylinder and when
it does, the coating on the last cylinder might not be as thick as on the first
80 certified cylinders.

The gaps are needed to allow fluctuations in the spindle motor (and to allow
easier synchronization of the data seperators). If a sector is rewritten after
a long time and the spindle motor runs faster than the last time the sector was
written, the angle the sector is written over, becomes larger. The gap after the
sector provides some extra space for the sector. In the IBM system 34 diskette
format definition (MFM), minimum gap sizes are defined to allow for 3% speed
differences (+1.5% / -1.5%). I bet that you dropped below those gap sizes.
That's all right, I hear you say, because modern diskette drive have much better
motors. But don't forget that your drive may be running at 303 rpm and the drive
of someone else at 297 rpm, both stable at within the specs! Also, your drive
might wear out and drop speed after a few years.

I can imagine that you only want to use your squeezed diskettes for your own
archiving purposes, but even that I advise against. I've wanted to restore some
old programs I wrote on my Commodore PET some 10 years ago on a PC. The PET used
a 5.25" double sided floppy diskette with 10 512 bytes sectors per track. The PC
constantly had problems with the short gap before the first sector of each track
and therefore could not synchronize its data separators. Sectors 2-10, I could
read but not the first sector.

Adrie Koolen (adrie@ica.philips.nl)
Philips Innovation Centre Aachen

adamd@rhi.hi.is (Adam David) (05/18/91)

In <813@philica.ica.philips.nl> adrie@philica.ica.philips.nl (Adrie Koolen) writes:
>The most important problem however, is the reliability of the data storage.
>In high density, you format 84 cylinders with 22 sectors of 512 bytes per track.
>You cannot guarantee that every drive can read/write 84 cylinders and a drive
>that cannot read past the 80th cylinder is not implicitly faulted. Furthermore,
>the coating of the magnetic media need not extend to the 84th cylinder and when
>it does, the coating on the last cylinder might not be as thick as on the first
>80 certified cylinders.

I agree that compatibility between different types of drives / controllers is
a potential hazard well worth being aware of. Modern drives conform to a
higher standard of design / manufacture in this respect. The old DD drives on
the original ST could not guarantee beyond 82 sectors without filing away the
headstop, but as far as I know most recent DD drives and all the newer HD
drives step reliably out to 84 sectors. The drives on the first ST's might be
expected to have a rotational speed somewhere between 295 and 305 rpm. Mine was
somewhere between 300 and 301. Since I replaced it with HD drives I get better
speed accuracy.

Using an 84-track disk on an 82-track drive, a seek error occurs beyond the
82nd sector during read/write or format verify. (assuming that all tracks are
formatted first before verifying the whole disk).

Concerning floppy disks, the media on any disk worth buying extends beyond
85 tracks so there is no problem here except when buying disks from shoddy or
ill-informed manufacturers. Only the 11 sector DD, 22 sector HD and 44 sector
ED formats would have possible trouble sharing the disks between different
drives using the same (or equivalent) floppy controller. This is because the
sector gap is uncomfortably tight, particularly the 11 sector DD. Other
computer systems than the ST use a wider range of controller types and this
is where the biggest compatibility problem lies, but with modern equipment
it is more likely that the hardware can cope, but the software doesn't know
about it yet.

An example was mentioned of failing to read old Commodore disks on an IBM PC.
Both of these systems have known shortcomings in the disk controller circuitry,
and this was before compatibility became a real issue. 10-sector DD disks
shouldn't really run into any problems between different systems in use today.

--
Adam David.
(adamd@rhi.hi.is)

adrie@philica.ica.philips.nl (Adrie Koolen) (05/21/91)

In article <3157@krafla.rhi.hi.is> adamd@rhi.hi.is (Adam David) writes:
>I agree that compatibility between different types of drives / controllers is
>a potential hazard well worth being aware of. Modern drives conform to a
>higher standard of design / manufacture in this respect.

`Modern drives' are not yet old, but they will be somewhere in the future.
When current modern drives get old, they won't get better; they probably run
worse as they get aged. Also, the diskettes they've now written, are also
worn-out after a few years. Your observations are based on `modern' drives
with `new' diskettes, which you instantly read back after you've written them.
Of course, I can't exactly tell how much the current drives and diskettes
deteriorate in the future, but neither can you! The only precaution you can
take is not to push disk formatting too far!

>An example was mentioned of failing to read old Commodore disks on an IBM PC.
>Both of these systems have known shortcomings in the disk controller circuitry,

They worked properly with diskettes, formatted according the IBM system-34
(MFM) specs!

>and this was before compatibility became a real issue. 10-sector DD disks
>shouldn't really run into any problems between different systems in use today.

But what about the systems, in use in the future? I've diskettes, formatted on
my Apple II+ some 7 years ago and when I tried to read them lately, much of
the diskettes gave read-errors. Now I know that diskettes need not last for
more than 5 years, but I can GUARANTEE that diskettes, formatted closely to
the limits of the specs, will give you more read problems and earlier than
diskette, formatted according the MFM specs.

Adrie Koolen (adrie@ica.philips.nl)
Philips Innovation Centre Aachen

Christoph van Wuellen <HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu> (05/21/91)

Why dont you switch to bigger sectors:

While 10-Sector DD is potentially unsafe, and 11-Sector DD is russian
roulette,
5-Sector (5*1024 bytes) DD is perfect!

C.v.W.

adamd@rhi.hi.is (Adam David) (05/23/91)

In <816@philica.ica.philips.nl> adrie@philica.ica.philips.nl (Adrie Koolen) writes:

>In article <3157@krafla.rhi.hi.is> adamd@rhi.hi.is (Adam David) writes:
>>I agree that compatibility between different types of drives / controllers is
>>a potential hazard well worth being aware of. Modern drives conform to a
>>higher standard of design / manufacture in this respect.

>`Modern drives' are not yet old, but they will be somewhere in the future.
>When current modern drives get old, they won't get better; they probably run
>worse as they get aged. Also, the diskettes they've now written, are also
>worn-out after a few years.

I agree with you entirely. My main point is that the standard of manufacture
has (in most cases) improved considerably over the last two or three 5-year
periods. Floppy disks used to be rated for 5 years storage if used lightly
enough not to wear the magnetic surface clean away. Today's floppies are
rated at ten years reliable storage and it is possible to get Teflon-coated
disks which reduce the problem with the surface wearing out.

Newer models of drives are mostly improvements over previous models.
Manufacturing techniques, materials and knowledge have definitely improved.
You make a valid statement and so do I. Just take a (little-used) drive
from ten years back and a modern one. If you find no significant difference
I'd be inclined to say that the so-called modern drive was old stock.

Who trusts valuable data to magnetic media anyway? :-)

--
Adam David.
(adamd@rhi.hi.is)

adamd@rhi.hi.is (Adam David) (05/23/91)

In <54215@nigel.ee.udel.edu> HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu
(Christoph van Wuellen) writes:

>Why dont you switch to bigger sectors:

This is definitely the way to go. 5*1024 and 11*1024 (HD) formats do not
squeeze the gaps between sectors. I have some difficulties though in moving
over to 1024-byte sectors on the ST. I seem to have made all the necessary
changes to stfloppy.c but get nothing but read/write errors from the DMA.
'dma status 0x0' is reported during the verify stage of formatting.
Obviously some other part of the system has to be fixed before 1024-byte
sectors will work on ST-Minix. I'm sure this problem has been solved before.
What am I missing, and where should I be looking?

>While 10-Sector DD is potentially unsafe, and 11-Sector DD is russian
>roulette, 5-Sector (5*1024 bytes) DD is perfect!

10-sector (*512) works fine with the WD1772 controller, even between systems.
I agree that 11-sector (*512) has doubtful merits and should not be used
without understanding the risks involved. (it seems also to be slower).

--
Adam David.
(adamd@rhi.hi.is)

leo@krabat.marco.de (Matthias Pfaller) (05/28/91)

In article <3179@krafla.rhi.hi.is>, adamd@rhi.hi.is (Adam David) writes:
> sectors will work on ST-Minix. I'm sure this problem has been solved before.
> What am I missing, and where should I be looking?
> 
I have posted diffs for the ST-Minix floppydriver to make it possible to
change the sector-size via ioctl. It works well and I use 1k sectors all
the time. My driver also supports the (illegal, unportable ... I know)
hack with connecting 10.24 Mhz to your FDC. You can then put 7 1k-sectors
on a track without any problems, also there are few people who can read it.
	Mattias