> dumb question...no I havent read the doc....but quck > explanation for the difference between a regular return > and a fast return? What do you gain by using a fast return? Ease of execution and speed. With a fast return, the PIC assumes that the current values stored in the fast return shadow registers for STATUS, BSR, and W are correct, performs a return and restores those values. Of course, it's up to you to ensure that those values ARE correct, by only executing fast returns after a call which caused the appropriate values to be stored in the shadow registers and ensuring that, while the values in the shadow registers are important, no other calls occur to overwrite them. This becomes important with multiple levels of interrupt. If a low level interrupt occurs, and your program stores W, BSR, and STATUS in the shadow registers, then a high priority interrupt interrupts the low priority one, and your code again causes the values to be stored in the shadow registers, a fast return from the high priority interrupt will work, but if your code then performs a fast return from the low priority interrupt, the result is not so certain, because the current state of the shadow registers is unknown. In systems with multiple interrupt priorities, it is crucial that your code perform context saving for lower priority interrupts without relying on the fast return "stack" (can it be a stack with only one level?) to do it for you. Of course, if you don't have multiple priorities, or if you do, but want to speed up your service of high priority interrupts (which is usually why they are high priority in the first place), the fast return feature is handy. It's also much easier to use and doesn't require the extra registers that "manual" context saving does. Mike H. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist