Date : Mon, 04 May 2009 13:47:45 +0100
From : philpem@... (Philip Pemberton)
Subject: Preservation of information (floppy discs, etc.)
Mike Tomlinson wrote:
> My first thought (and I haven't yet read other replies) is that you're
> re-inventing the wheel. Disc controllers and DFSes have error-
> correction hardware (CRC checks)
A CRC is an error detection method, not an error correction method.
If there's an error, the controller will (most likely) flag an error and give up.
> so you can be sure you've read the
> original disc correctly. Why do you need to go lower-level than that?
* You don't have the original machine.
What if the disc was written by a machine, and there are no working examples
of that machine left? Or perhaps there's only one, and its owner wants to keep
it as a "display example" (i.e. leave it switched off).
* The disc is copy protected.
Read: preservation of computer games. Most of these were designed in such a
way that you could write them with a disc duplicator (e.g. a Trace machine),
but not with an 8271, 1770, uPD765, etc.
* The disc is damaged.
If you're reading the transition timing into a PC, you can apply DSP
techniques, seek backwards and forwards through the data, resync at different
points in the trace, or the person at the keyboard can trace through the data,
find the error and replace it with valid data. Disc controllers don't usually
do this -- they usually work in an "all or nothing" fashion.
As I mentioned in my original post, if the algorithms aren't quite working,
you can tweak the parameters. Things like PLL loop integration time, VCO
ranges, and data decoding thresholds can be changed on-the-fly if need be.
> If you can read all (10 x 256 x 80) = 200k bytes of a single sided 80
> track DFS disc into a file using the disc controller without error,
> isn't that file guaranteed to be an exact copy of the original disc?
Not if there is data the controller can't read. Things like track timing
relationships (usually part of copy-protection), data hidden in strangely
formatted blocks (again, copy protection). If the disc isn't protected then
yes, it's just as good as a magnetic image if all you want to do is boot the
unprotected version of Elite in BeebEm.
If some clever person has realised that his/her drive can be made to
"overstep" (that is, write 41 or 82 tracks instead of 40 or 80) and written a
disc like that, then you'll have to remember to read those "extra" tracks in
as well.
BBC Micro and PC floppy protections aren't usually (that) nasty; most rely on
futzing around with the sector IDs. A uPD765 won't enjoy writing a disc like
that, but it should be able to manage it. Things get more interesting when
there's no information about the disc format at all, or if the machine that
wrote the disc didn't have a "standard" controller (e.g. Commodore Amiga,
1st-gen Apple Mac and Lisa, Commodore 64, ...)
Thanks,
--
Phil.
philpem@...
http://www.philpem.me.uk/