Brad: Something to check: why are you setting tmr0 to 255? This is an up-counter. It will overflow two instructions after you load 255, when it wraps from 255 to 0. May be your indicator light is blinking so fast you can't tell it is working. Have you looked at your output pins with a 'scope? Try removing the code that resets tmr0 at save_return and just let it free run. If that doesn't work, try adding a bsf portb,0 and bcf portb,0 to the interrupt routine. Look for pulses on portb.0 with a 'scope or logic probe to verify that the interrupt is happening. - Mark Sullivan -