Alain, Darrel, Jerson, thanks very much! You guys are great!

Sooo... if "Disable" & "Enable" don't work with DT_INT, what keeps interrupts from occurring during the interrupt handler? I assume that DT_INT must "protect" it's own handler?

Is there a way for me to disable the interrupts during certain subroutines?
When I get the rest of this put together there will be several places where I need to kill the interrupts to perform time sensitive tasks. Is that possible using DT_INT ?
Do I simply turn the interrupts on and off with the GIE bit when I want to? (INTCON.7 = 0) ?

Darrel, thanks for catching the TMR0 interrupt with no handler. I don't know why I keep doing that. I had to change the Timer resource from TMR2 to TMR0 and I enabled it's interrupt unnecessarily. Thanks! Turning TMR0 interrupt off helped but didn't completely cure the problem.

Jerson, please print yourself a pretty gold star and pin it to your shirt for the day!
The call to gosub "ServiceHardw" was indeed the big culprit. I assume that I just had so much stuff inside my interrupt handler that I ran out of time to do anything else before the next interrupt ?
I set a bit to tell when a button is pressed and check it in my main code as you suggested, and it works MUCH better now!

There's clearly a few bugs still to work out before I start adding the rest of my code back in, but it's looking pretty hopeful now.

Thanks again to all of you. What a great resource!


Steve