On 11 Jun 2010 at 13:12, Keith M wrote:
Thanks for the response. I know you've advanced
this position before.
My relatively simple "time between pulses" method works probably 95%
of the time. It's getting this last 5% to read correctly where it
looks like I'll need some more sophisticated algorithms.
Keith,
You should set your sights higher--you should be able to read 100% of
the floppies that are readable by the Commodore drive and a few that
the Commodore drive can't.
If you think about it a bit, you can do a substantially better job
with "problem disks'. For example (I'll use standard IBM 3740-type
format as a basis), if a legacy floppy controller mis-reads an ID
header, it will return a "Sector not found" type of error. However,
as a programmer you know what the disk layout is and what the sector
ordering should be--and approximately where any given sector should
be. So, to read the sector, you assume the contents of the ID header
and switch to looking for the closest DAM. There's your sector.
Take a look at some of the old Western Digitial FDC app notes,
particularly those for the 179x controllers for ideas on how data
separators can be implemented.
--Chuck