RockFAT
RockFAT ('Rock-solid diskettes with error correcting codes') by Thanassis Tsiodras stores a file with parity recovery data directly on a floppy with no filesystem in a way that maximizes the ability to recover from burst sector errors
The Linux version creates a floppy image that can be written with dd while the Windows version writes directly to the floppy
It only supports a single file with a filename of less than 16 chars.
Each block contains 232 bytes of data + 24 bytes of parity, allowing the recovery of 12 bytes of data per block
Then the data is interleaved such that
1st byte of stream | first byte of first sector |
2nd byte of stream | first byte of Nth sector |
... | ... |
(2880/N) byte of stream | first byte of second sector |
((2880/N)+1) byte of stream | first byte of (2+N)th sector |
... | ... |
(N=8 for this implementation)
Thus in the worst case, it can recover from 11 bad sectors and possibly more depending on how the damage is spread out
2880 sectors X 512 bytes X (232/256) = 1336320 bytes available - 4-byte stream length - 16-byte filename = 1336300 bytes per floppy