I’m making some progress.
On a whim, I told my software to never go idle, to simply stream data constantly. I’ve never liked how I handle the idle state, and I currently lose whatever data thats in the shift register up to the idle point. Now at most this was 7 bits, but at least the next incoming data was properly byte aligned. I could xfer this to the PC, but now I’m doing PC xfer stuff all over the place. I may have to rearrange some stuff to make this cleaner.
My files fill up with zeros pretty fast when it’s idling, but it appears that while its actively reading, the idle time is anywhere between 350 – 1700 bytes worth of zeros. This is 2800 to 13600 bits worth of zero’s. This translates to 5600us to 27200us. I’d bet money this time is the amount of time it takes to step the head. I have numbers on this somewhere. In English this is about 5-27 milliseconds of pause. Please note these are idle bytes not any sort of gap, filler, or padding, etc. You normally see either AA’s or 55’s for that type of stuff. I haven’t narrowed that down close enough to be sure.
Incidentally, I’m getting upwards of 40+ valid sector headers in 165K. This isn’t great, but it’s a hell of a lot better than the 5-10 I was seeing earlier. I would still like to get this idle routine working…..