27

I remember using a utility back in MS-DOS 3.3 days, called MAXI Disk, that somehow magically managed to get 420K on a 360K 5¼″ disk. I assume it managed it by destroying some redundancy like a backup FAT.

How did it work? Were there other tricks to “get more space”? I also remember DoubleSpace, but that was compression and not special formats/drivers/physical storage tricks.

3
  • 6
    We used to puchase single sided floppies then punch the hole to make them work as double - about a 95% success rate and saved us a packet - as poor engineering students with an understanding of stats and bulk testing by manufacturers... :)
    – Solar Mike
    Nov 17, 2019 at 4:47
  • 8
    Technically, the written/printed label on the floppy disk counts as extra data literally put on the floppy disk, albeit not machine readable. Nov 17, 2019 at 15:28
  • 1
    @rackandboneman hah I love it! You could print barcodes to deal with the machine-readable aspect ;-). Nov 17, 2019 at 21:24

9 Answers 9

23

420K was common for 360K floppies (not only on PC) it was done like this:

  1. increasing number of sectors

    original format has 9 sectors per track but there is space for 10 (the physical gaps are smaller but the formatted gaps are still the same).

  2. increasing number of tracks

    original format has 40 tracks but floppy is big enough and most (I mean all) drives can handle 42 tracks and some even 43 tracks. So using 42 tracks is sort of safe too.

Both combined lead to:

10*512(sectors)*2(sides)*42(tracks) = 430080 Byte = 420 KiByte

from:

9*512(sectors)*2(sides)*40(tracks) = 368640 Byte = 360 KiByte

So there are no file system changes happening, all is just physical formatting...

We used this on ZX Spectrum and D40 all the time...

No tool was needed on ZX to use this you just manually select the formatting parameters (number of sectors and tracks) while formatting the floppy disc.

On PC (MS-DOS) there is the

FORMAT A: /T:42 /N:10

however newer versions I have access to right now consider those values as illegal (not sure if old format did that too or its just that I do not have a floppy drive installed) so in case it does you need some kind of format utility that accepts such parameters ... But I do not remember using different formatting utility for this on PC... The only one we used was FHformat for low level 1.44MByte flopies format to make them reusable ...

4
  • 1
    One thing i'm still not clear on - this worked across machines, so the "shape" of the disk would need to be written on the disk somehow - But to read the disk you need to know how the data is encoded/shaped. Catch 22 ?
    – user230910
    Nov 17, 2019 at 23:01
  • 3
    number of sectors and tracks are stored in filesystem (usually in sector 0) and its handled by OS, the physical location of sectors on medium is encoded by markers on the medium which are just bunch of specific numbers ... and its encoded/decoded directly by the FDC itself that is also the reason for incompatibilities between some FDCs as they used slightly different markers back in the days that is why you can not read some old MDOS disc directly on PC but you can read PC discs on MDOS etc ...
    – Spektre
    Nov 17, 2019 at 23:15
  • 1
    @user230910 It works because the disks are "soft sectored". Basically, the data is encoded such that certain patterns of flux transitions only occur as structural markers for the data on the disk, and then the floppy disk controller uses that to figure it out. Because the FDC has to allow for variances in motor speed, you can adjust things. Technical Documentation - Detailed analysis of Atari ST Floppy Disks of Dungeon Master and Chaos Strikes Back goes into more detail as part of explaining how a specific copy protection scheme works.
    – ssokolow
    Jan 13, 2021 at 0:33
  • 1
    @ssokolow I know ... did similar research and testing back in the days when was writing my ZX emulator ... my FDC and FDD is fully emulated no hacks ... it really runs on ROM code and images can be also formated ... even copy protections and custom formats works ... I also did MFM decoding of real media into images to convert my disks ...
    – Spektre
    Jan 13, 2021 at 8:20
18

Floppy disks store data on each side, in tracks, each track split into sectors, with gaps between each sector. On top of that comes the file system, FAT for DOS-compatible systems, which defines how data is stored in sectors, and how much space is used for metadata.

Based on this, using the PC’s disk controller, there are two main ways to increase a floppy’s data storage capacity:

  • increase the number of tracks, sectors, and/or reduce the gaps
  • reduce the amount of space taken by metadata

Increasing tracks etc.

The standard formats are as follows:

  • 9 (double density), 15 (5.25” high density), or 18 sectors per track (3.5” high density)
  • 40 tracks (5.25” double density) or 80 tracks per side

With 512-byte sectors, this produces the standard capacities: 360K, 720K, 1.2M, 1.44M.

A number of tools allow disks to be formatted with increased capacity. The most famous of these, and the most flexible, is Christoph H. Hochstätter’s FDFORMAT. This allows all the physical parameters to be tweaked, up to the maximum values supported by drives:

  • 41 or 82 tracks (more in some drives, but then disks become harder to read in other drives)
  • 10 sectors per track on DD disks, 18 on 5.25” HD, 21 on 3.5” HD

Thus without changing the data format, you can format disks up to 410K (5.25” DD), 820K (3.5” DD), 1.48M (5.25” HD), and 1.72M (3.5” HD).

By pushing the tracks a little on 5.25” disks, to 42, and 10 sectors, you get your 420K format:

FDFORMAT N10 T42

Reducing metadata overhead

FDFORMAT also supports variations in the FAT generated:

  • number of sectors per cluster
  • number of root directory entries

Depending on the purpose of the disk, this can be useful to increase the amount of storage available. This is what Microsoft did for its DMF format, used for installation disks (which contain a small number of large files); these provide 1.68M by using 21 sectors per track, 80 tracks, 4 sectors per cluster, and 16 directory entries.

Further tweaks

To reach even larger capacities, as used for example in IBM’s XDF format or the various 2M formats, you need other tweaks: reducing the gap size, changing the data rate, varying the sector size, and in 2M’s case dropping the FAT backup. 2M and XDF also vary the format between the first track and the rest of the disk, so that DOS can still read the first track.

Many of these disk formats aren’t directly supported under DOS, you’d need TSRs to read the disks (such as FDREAD for FDFORMAT). The best PC operating system for reading PC floppies is now Linux, which has built-in support for all FDFORMAT formats, most 2M formats, and XDF.

4
  • 4
    Floppy disks were originally one sided. Two side disks were an improvement.
    – MaxW
    Nov 18, 2019 at 5:36
  • The original double-density disks (for both the 5.25" and 3.5" sizes) had eight sectors, rather than nine (producing 160-KiB [5.25" SSDD], 320-KiB [5.25" DSDD and SSQD; 3.5" SSDD], and 640-KiB [5.25" DSQD; 3.5" DSDD] formats).
    – Vikki
    Apr 1, 2020 at 18:42
  • I remember using HDCopy to format my 3.5" HD disks as 1680KB (80x21). However, no attempt at increasing track number succeeded, I couldn't even reach track 81. Did nonstandard track numbers require special drives?
    – Fred Qian
    Nov 29, 2023 at 18:10
  • @FredQian there was no guarantee that any given drive would be able to access tracks beyond 80, but it very common for drives go support 82 tracks in practice. You were unfortunate with your drive... Nov 29, 2023 at 18:35
8

There were tools such as 2M and fdformat that were able to use non-standard floppy formats. The data rate is fixed, but by shortening the gaps between sectors it was possible to increase the number of sectors per track. On some drives it was also possible to increase the amount of tracks on the disk, but it depends on the actual drive how many if any extra tracks were possible, so it was not that compatible to do that. Even without changing the physical formatting, formatting the file system with only 1 FAT or reducing the amount of root directory entries did make more sectors available for storing files.

According to Maxi Disk website and it works exactly as mentioned above.

8

The "busman's punch" from Solar Mike's comment was common in the 8 inch days. Disks were sold as "SSSD" (Single Sided, Single Density) and there was a hole in the sleeve near the hub, offset from the head slot, aligned with an optical sensor. When a hole in the disk passed under this hole. the sensor generated an "index pulse" to signal the start of a track.

By punching a symmetrically offset hole (in each side of the sleeve separately, to avoid punching through the disk itself), you could insert the disk upside down, and use the other side, doubling its storage. (The media was always coated both sides, but the back side wasn't guaranteed ... in practice it was almost always fine).

This saved the premium for DSSD (Double Sided) disks, storing 480K instead of 240K.

With the right drive electronics, another punched hole would illuminate a second sensor. (Add a label covering the first hole!) This told the drive the disk was certified for "DSDD"(Double Sided, Double Density) operation giving almost 1 MB per drive - with the convenience of a head on each side, so no need to turn the disk over. (Of course, if your drive doesn't support Double Density, this doesn't work)

That's about all a hacker could do ... but at least, Burroughs in 1980 had re-engineered the whole floppy drive, with hard sleeves and shutters like the much later 3.5" drives, much closer track spacing, tribit tracks for thermal calibration, and were getting 10MB from a dual 8" drive (5MB/disk). That's in the same ballpark as some hard drives of the time (I don't know if these were used outside the Burroughs B80 office systems) Burroughs' own hard drives used 14 inch platters, from 20MB (1 platter) to 80MB (4 platters).

5

Each track of a normal floppy disk contains one repetition per sector of the sequence:

  • Sync pattern; sector header; short space; sync pattern; sector data; longer space

When a computer is asked to read a sector, it looks for a sync pattern followed by a header for the desired sector. It will then ask the controller to look for a sync pattern and grab whatever follows.

When a computer is asked to write a sector, it looks for a sync pattern followed by a header for the desired sector. It will then instruct the controller to start blindly overwriting whatever was on the disk with a sync pattern followed immediately by a quantity of supplied data.

When a drive is reading data, it will automatically adjust the data rate to match what was written, within a fairly broad tolerance (even +/-20% would likely not pose a problem). Data will generally be written at a fixed speed, however. Thus, the physical length of the data stripe written by the drive will vary based upon the rotational speed of the drive. If the length of the data happens to be long enough to reach the sync pattern for the start of the next sector, that next sector of data will be destroyed. The inter-sector gaps are often sized somewhat generously to ensure that this won't happen.

If one has a disk which will be written all in one go, without any need to update individual sectors, all but one of the inter-sector gaps (the one between the last sector and the first) can be eliminated. This will allow significantly more data to be written on the disk than would otherwise be possible, at the cost of being unable to update an individual sectors without trashing the next sector on the track. Such an approach might even be usable with certain "incremental" update strategies, but I'm unaware of any efforts to use such things other than with disks that would be mastered once and not written to after that.

4
  • Is this purely theoretical, or were disks like this actually produced?
    – TenMinJoe
    Nov 18, 2019 at 8:29
  • 2
    Prince of Persia did this on the Apple II to write 4.5kbytes/track, instead of 4kbytes, and I think such techniques are the way Microsoft squeezed 1.6MB on 1.44MB disks.
    – supercat
    Nov 18, 2019 at 15:44
  • @supercat If you mean Microsoft's DMF, then no. That's accomplished through modifying the filesystem structures. (DMF and 1.68 MB formats are the same physical format of 80 tracks and 21 sectors per track. The 1.68 MB format has 224 entries in the root directory, and a cluster size is 512 bytes. DMF format has only 16 entries in the root directory (you need create a subdirectory to copy more than 16 files), and the cluster size is 1024 (DMF 1024) or 2048 bytes (DMF 2048).) I had a ~1.7MB formatter tool back in the day.
    – ssokolow
    Jan 13, 2021 at 0:43
  • 1
    @TenMinJoe: Incidentally, it's possible to write tracks at 3/4 spacing on an Apple //c and read them back on the same machine. I don't know whether such a disk would be readable on any drives other than the exact one that wrote it, but I've managed to write a simple program that will read a character A-P from the keyboard and load one of 16 double-hi-res pictures. The bits are tightly packed onto the disk, with unused bits or bytes omitted, but there isn't any disk compression.
    – supercat
    Apr 24, 2021 at 20:53
4

For Apple II diskettes, some games used one "sector" per track, thus using all the sector header and inter-sector space on each track for more data. This is because all the sectoring was "soft" and done strictly in software (custom RWTS code).

1
  • 1
    I don't know if anyone did this "back in the day" or how reliable it is, but it is possible to push Apple II disk capacity over 210K per side by writing tracks at 3/4 spacing. I've written a test program that works on my //c to pack 16 double-hi-res pictures (13,440 bytes each) onto a disk and load them in response to keypresses A-P.
    – supercat
    Jan 12, 2021 at 21:27
4

Someone used to make disk drives that spun slower when the head(s) were on outer tracks, so that those tracks could hold more bits.

6
  • 1
    See this question for more on the topic of CLV mechanisms. Nov 16, 2019 at 17:01
  • 1
    Someone is a great understatement. It has been developed many times from different manufacturers, as it's quite obvious. In fact, it has even be used as early as with phonographs. Most notable example with micro computers would be Apple Twiggy drive as well as the later Mac drives - but as well original Audio CD and in turn any PC CD-drive.
    – Raffzahn
    Nov 16, 2019 at 19:04
  • 1
    I knew about CDs, but OP was asking about floppies. Apple is the only one I knew of for those. Said "someone" in case (after more than thirty years) I was remembering the manufacturer wrong.
    – WGroleau
    Nov 16, 2019 at 19:26
  • 1
    Plus 1 because I read all the other answers expecting to see this and didn’t.
    – Solar Mike
    Nov 17, 2019 at 4:45
  • The first company I was aware of that played with rotational speed was Apricot who used this technique to cram extra data onto a 5 1/4" floppy. Apricot are kind of lost in the mists of time but they were one of the first to make an all-in-one transportable mostly IBM-compatible
    – houninym
    Nov 18, 2019 at 8:47
3

Both Microsoft and IBM had their own distribution disk formats.

Microsoft had DMF, which allowed the disk to contain 1680 KiB of data on a 3½-inch disk, instead of the standard 1440 KiB. It was used for software distribution. It worked by increasing the cluster size and sector count but cutting down the FAT.

IBM used XDF format for software distribution, which could go up to 1840 KiB, using similar techniques.

6
  • 1
    DMF did not increase sector size, it still has 512-byte sectors. There are just more sectors per track.
    – Justme
    Nov 16, 2019 at 20:43
  • 1
    No source I found claimed larger sector sizes, but they listed the actual sector number per track which is higher, so sector size is not changed. What source claims this? It would be extremely unusual to find support for sector sizes other than 512 in PCs. Are you sure you are not confusing this with cluster size which has been increased from 1 sector to 2 or 4 sectors to bring the FAT area down?
    – Justme
    Nov 17, 2019 at 9:34
  • 2
    DMF is FDFORMAT C4 N21 T10 D16 M240. 2M varied the sector size, and possibly XDF too (I don’t remember off-hand), but DMF stuck to 512 bytes. Nov 17, 2019 at 12:46
  • 1
    Sectors had a gap between them, so that you could turn write current on or off in the gap without corrupting adjacent sectors. For distribution disks, which are only written once, it makes sense you can reduce or eliminate this gap and cram in a few more sectors. Nov 17, 2019 at 16:15
  • 2
    @BrianDrummond: The gap isn't just to allow current to be turned off, but to allow for variations in drive speed. If a disk would only be written by drives that were on the slow end of the tolerance range, one could get by with smaller gaps than are needed if a disk might be written with a faster-spinning drive.
    – supercat
    Nov 17, 2019 at 19:49
2

On Atari ST/TT

TL/DR

  • 10 or 11 sectors instead of 9
  • 81, 82 or even 83 tracks instead of 80
  • Remove second FAT and short directory (only 5 sectors).

Detail

On Atari ST, which had more or less the same floppy format than PC's, it was very common to format floppies with 10 sectors instead of 9 per track. The floppies had a lot of slack for tolerance so that in practice, there was always space for a 10th sector. By reducing the lead-ins and lead-outs to the minimum it was even possible to cram an 11th sector. The issue was that these sectors were more fragile than the normal sectors as the sync pattern were at the limit of usefulness and read errors were very frequent for such floppies. I read recently 2 such floppies back, one was completely unreadable the other was read without errors on my PC.

The other trick that could even be combined, was to add more tracks. Depending on the floppy, the number of 80 tracks was not the hard limit of the drive. Depending on the build, it was possible to add up to 5 tracks to the floppy. Generally 2 were quite common to work on most drives. My drive could format 3 supplemental tracks.

So, the biggest floppy I ever formatted was a 2x11x83 sector floppy. It was also possible to gain a little bit of net space on the floppy by removing the second FAT (SD floppies had always 2 FAT, it was only with HD floppies that the 1 FAT format was standardized as it was noted that the redundant FAT on the same track as the first FAT was a stupid waste of space) and reducing the number of sectors reserved for the root directory.

2
  • Good late answer! That makes me wonder why the FAT FS had 2 FATs in the first place. Yes, I know there's TFAT, but why do non-transactional FAT drives still default to 2 FATs? exFAT has only 1.
    – Fred Qian
    Nov 29, 2023 at 18:14
  • 1
    afaict the 2 FAT's was simply redundancy for error detection. If the 2 FAT's diverge, there's a problem of coherency. The problem was (and why I said stupid waste of space) that both FAT's were on the same track, which meant that if one was shot because of floppy error, the second one was too (a lot of wear on this track as it is always updated). If the second FAT had been put in another place on the floppy a lot of broken floppies could have their content saved thanks to that copy. Nov 30, 2023 at 7:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .