funky idle routine

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…..


Amateur Electronics Design Engineer and Hacker


  • Why and where do you get head movement and settling? In DiskMonTools, I use to read only Track #00, no stepping involved.

  • Often times I’ll simply copy the disk to get a larger amount of data. So there’s multiple tracks involved….

    Perhaps I should be focusing on just getting one track perfect……

  • It appears DiskMonTools reads 16200 bytes. I’m guessing the author picked this arbitrarily to make sure he gets all 11 sectors. I notice if you get the Track Info that a few sectors come up twice, and guess that’s to make sure they get all complete sectors.

  • Sounds quite reasonable.

    I couldn’t help but noticed that almost always the last sector has its data checksum marked as BAD in DiskMonTools. That’s because it is not read completely, reading just stops after 16200 bytes, and breaks somewhere in the middle of sector data.

  • BTW, what are those scope shots you have posted at Parallax forum? Only 3rd one shows some data spikes on its lower channel.

  • These were hardware flags that pjv set in his MFMdecoder2 software — i just put a scope on the pins, and showed him to see if he could make heads or tails of it. I couldn’t.