Hi sheryl,

It depends on if you're using a 16F or an 18F.
For 16F's, the stack is circular, so you can just jump to the beginning of the program after resetting GIE. Any previous gosubs or interrupts will be forgotten, or more like Ignored.

PBP defines the "beginning" of the program as INIT, which makes it easy to do this, instead of retfie...
Code:
ASM
  bsf  INTCON, GIE  ; re-enable interrupts
  clrf  PCLATH      ; codepage 0
  goto INIT         ; start from the top
ENDASM
For 18F's, the stack is NOT circular, so you have to POP everthing off the stack before jumping to INIT. Otherwise, the stack will eventually overflow.
Or you could just reset everything.
Code:
@  reset
(not the prefered method ... depending again?).

If you're using an 18F? I'll come up with some code.
<br>