Newsgroups: comp.misc
Path: utzoo!utgpu!watserv1!maytag!watdragon!spurge!ccplumb
From: ccplumb@spurge.uwaterloo.ca (Colin Plumb)
Subject: Re: Why do 2.0 meg diskettes only hold 1.44 meg ??
Message-ID: <1990Nov1.194908.12296@watdragon.waterloo.edu>
Sender: daemon@watdragon.waterloo.edu (Owner of Many System Processes)
Organization: University of Waterloo
References: <11290@hubcap.clemson.edu>
Date: Thu, 1 Nov 90 19:49:08 GMT
Lines: 40

In article <11290@hubcap.clemson.edu> chrisb@hubcap.clemson.edu (Chris Behrens) writes:
> The subject says it all...   But is there a way to utilize the full 
> 2 meg, or is this taken up by the DOS formatting ??

Basically, no.  The actual capacity is 16,000,000 bits (slightly under
the usual definition of a megabyte), and then some is eaten allowing
for variation in the rotation speed of the drive and the bit-clock
rate, and then you need some sort of sector header, and then comes the
big killer..  the gaps around the data blocks to give the read head time
to switch to writing and back.  It looks like:
<header><gap><data><gap><header>

During a read, you wait for the header sync mark, read the header to see if
it's the desired sector, and if it is, you wait for the data sync mark, then
read the data and check the trailing checksum, and usually return
with the data.

During a write, you do the same thing, except after the header, you check its
checksum for validity, then you switch to writing, write a few 0's, a sync
mark, the data (and checksum, etc), a few more 0's, and stop writing.
The leading 0's are required to make sure your sync mark is sufficiently
delayed that it will be overwritten by the next writer, even if you were
as fast as the spec allowed to start writing and it is as slow as spec allows.
The trailing 0's are just so the last few bits of the block are properly
written.  You also need more gap after the data block so that even if you're
slow to start writing the data, the data clock is a bit slow, and the disk
is spinning a bit fast, you don't overwrite the next header.

It is possible to fit 10 512-byte sectors on a "1.0 MB" floppy, for 800K
effective, due to tighter tolerances these days, and I assume this would
let you get 1600K on a "2.0 MB" floppy.

The Amiga fits 880K (907.5K if you use some extra space) on a "1.0MB"
floppy by writing the entire track at once, requiring only one gap at
the end of the track.  Then I figured out a really sneaky way to get
1.2 MB ("1.2 MB" 5.25" floppies are 1200K; I got 1.2*1024 K) on a
"1.0 MB" floppy.  See "Magnetic Recording" Vol.2 by C. Denis Mee and
Eric D. Daniels for details.
-- 
	-Colin
