summaryrefslogtreecommitdiff
path: root/decoders/floppy/__init__.py
AgeCommit message (Collapse)Author
2023-08-13Add mfm and floppy decodersfloppyEric Anderson
The "MFM" decoder can handle FM, MFM, MMFM, GCR, and could be extended to support RLL. I have only tested with FM and MFM. These are all related encodings but "MFM" is the most distinctive name so it is being used to describe the family. The family of encodings was used in magnetic tape storage, but the focus here is floppies with a side of hard drives. The MFM decoder is pretty simple, and doesn't attempt to separate clock/data or align bytes. The method of doing so varies per sector format so that responsibility is left to the consumer, which makes configuration for the user easier. The decoder also doesn't try to act as a PLL. Someone else can enhance it, but it currently seems to work fine even on some early-1980s floppy disks/drives. The Floppy decoder can also be used with ST506-style hard drives... which are not floppies. But the encoding was very similar when MFM was in use. I have not tested an ST506 using IBM-compatible MFM formatting, but I have tested a Micropolis-encoded HDD which is a slight variation of the MFM FDD format.