Originally Posted by JimDrew
You are missing part of the data seperator, specifically for handling timings outside of the normal 2us/4us bitcell size. That code does not handle weakbit or strongbit protections correctly. You need GCR for handling Mac formatted disks, loading some copy protected Amiga disks, and also for analyzing copy protected MFM disks (this is a neat way to scan a MFM disk and see patterns). You must be able to turn on/off/on the DMA randomly, and also change the DMA length counter on the fly without affecting the incoming data. There are a few other little things as well. Paula is far more complicated than most people realize, and it took me a long time to be able to understand how the disk portion really works and come up with the tricks that I did with my copy and converter programs. I learned quite a bit when I changed the speed of Paula via SYBIL.
IIRC, the DPLL code I posted handles timings outside 2us/4us cell size as long as the counter is within CTR_MIN_VAL and CTR_MAX_VAL.
GCR (4us bit cell) is handled with the clock enable, I even added HD floppy mode with a faster clock enable. I guess you have added the HD mode on the FPGA Arcade too (maybe even variable bit cell mode) ?