While this new ISR is indeed easier to understand and much more simple, I can’t help but remember what else my ISR used to do for me.
The four things I really lose are:
1> Any type of double 1’s protection
2> Idle mode (don’t store long runs of high ‘0’s.) which is related to
3> No more than three consecutive zeros (longest data group is 1-0-0-0) and
4> A falling edge to start each group of bits.
The idle mode is easy enough to deal with, I’ve just set it up to wait 500ms after turning the motor on, and then wait for the first high->low falling edge. Then I start storing bits. Otherwise, without that, I’d capture a bunch of 0’s. I now have a falling edge to start the capture, but not on each group.
As far as the double-1’s and no more than (3) 0’s, I’d like to think that everything is working fine, so as long as the data is good on the disk, it should come out of the drive and into the SX properly. I think those things sort of hid problems I had, so I’m glad to just get the raw data.
The other benefit is that getting raw data might actually come in handy, later, if I ever deal with the issue of copy protection, etc, where the data pattern isn’t strictly MFM.
I’m happy I’ve simplified things, and it’s going to stay this way for the time being.