After skimming the patent I referenced in the earlier post, I’m starting to come to the realization that in order to have an effective floppy controller, I need to implement a decent PLL which can better track the signal coming in.
Both the floppy controller design guide ( see this post) and the amiga’s controller definitely implements these, but I do not.
In all cases, it seems, at first glance, that this is fairly complicated. And will likely change the whole way I’m bringing the data in. I think this is a good thing, though, and will make for more effective reading of disks.
I’ll have to figure out a way to implement this stuff……………….
I’ve looked at this stuff over the last couple days, and I’m just not thrilled with the added complexity this PLL junk brings to the table. And while I think it no doubt helps I think that there are more simple methods that could still provide a considerable improvement.
So I’ve been sketching out a new read routine.
Some key elements:
1. No more interrupts! Yay!!
2. Utilizes the RTCC with prescaler as a timer. Using the 1:2 setting, I can measure up to 10.24us between pulses at 40ns resolution.
3. Time between pulses IS the data. Two pulses separated by 4us of delay is a “10”, by 6us, “100”, by 8us, “1000”
4. I’m storing tokenized data, instead of the actual bits. This may reduce storage and transfer requirements by 50% !!
5. Some new code to expand the tokenized data and bit-syncing will have to be done (again) on the PC.