Current status updated
I was originally going to use a Microchip PIC, but they are just too darn slow. I gave up on the idea of using the PIC as a one-chip solution, and tried to use it as just a clock generator feeding a shift register and some other minor components. No can do with a smaller PIC because there just simply isn’t enough balls. Of course I could purchase a more expensive programmer, buy a higher end PIC, but instead I’ve decided on a Ubicom(aka Scenix) SX microcontroller. They are a heck of a lot faster, and have an instruction execution time of about 20ns at 50mhz. This gives me more instructions and I can embed more of the project in software on one chip vs. using external components.
My SX Tech Tool Kit PLUS gets here today, I hope! It’s cheap! $100 gets you (2) SX28AC’s, a 50mhz resonator, protoboard, books, etc! Although I have no aversion to assembly, Parallax has released SX/B which is a BASIC compiler — and I think I have enough horsepower to use a high-level language like that. If not I’ll revert to C / asm. Besides I used to program back in ‘nam in Basic on my Amiga 500 — I think it would be very fitting to do this in Basic too. Notice it’s a compiler, of course, and not an interpreter, so it could end up being quick as long as I’ve got access to the necessary tools/functions.
Of the various issues to address is the fact that due to the MFM encoding of the Amiga floppies, the data coming out of a floppy drive has transitions in it. Take a look at the picture below, and notice how the signal drops to 0v, and then slowing transitions to 5v across the 2us bitcell.
There are four full transitions here. One in div 3, 5, 7, and 10.
These transitions present a small issue when you are trying to sample the signal because depending on where exactly (in terms of time) you sample, you can get different results.. If you sample early enough, you’ll get the right value, sample too late, and you are getting a logic HIGH instead of the LOW.