Why do you care so much about Enable/Disable flags? All these are taken care by Darrel in his routines, so normally you don't have to deal with them.

Just do as his examples show and you are OK.

In the extreme case you want some control as to when the interrupts are re-enabled, just use the @INT_ENABLE or @INT_DISABLE commands locally.

Also the simplistic debouncing of a button with time delay is not very elegant and is not recommended as it can delay the program execution.

Ioannis