On Mon, 14 Jul 2003, Bob Blick wrote: > Hi Everyone, > > I'm trying to shrink my interrupt service routine on a 16F87x program that > has multiple interrupt sources. > In the service routine I have a test and a service routine for each of the > three interrupt sources I have operating. When the IE bits and IF bits are in the same bank then you can do something like this: BTFSC flags_reg, if_bit BTFSS enable_reg, ie_bit goto check_next_interrupt If you had to check several of these split banked bits then you could do something like this: MOVF PIR1,W BSF STATUS,RP0 ; switch banks ANDWF PIE1,W ;the individual IE and IF bits align ;if both are high then the interrupt ;is enabled and it's pending. MOVWF int_temp1 BTFSS int_temp1,CCP1IF goto check_next_interrupt or if you want to just check CCP1, then do this: MOVF PIR1,W BSF STATUS,RP0 ; switch banks ANDWF PIE1,W ; ANDLW 1<