When saving status during interrupts on the 16c74, Microchip recommends the following: movwf W_Temp ;Copy W to TEMP register, could be bank one or zero swapf STATUS, w ;Swap status to be saved into W bcf STATUS, RP0 ;Change to bank zero, regardless of current bank movwf STATUS_TEMP ;Save status to bank zero STATUS_TEMP register :(ISR) swapf STATUS_TEMP, w ;Swap STATUS_TEMP register into W ;(sets bank to original state) movwf STATUS ;Move W into STATUS register swapf W_TEMP, f ;Swap W_TEMP swapf W_TEMP, w ;Swap W_TEMP into W Why not: swapf W_Temp ;save w with nibbles reversed, could be either bank swapf STATUS, w ;get status and reverse the nibbles bcf STATUS, RP0 ;set bank 0 movwf STATUS_TEMP ;save old status with nibbles reversed :(ISR) ;interrupt service routine swapf STATUS_TEMP, w ;get old status movwf STATUS ;restore old status (and bank register) swapf W_TEMP, w ;get back w with correct nibble order By pre-swapping w, it looks like I can save a step. I also like to: movf FSR, w ;get indirect file select register movwf Temp_Fsr, f ;save indirect files select register :(ISR) ;interrupt routine movf Temp_Fsr, w ;get saved indirect file select register movwf FSR, f ;restore indirect files select register clrwdt ;clear watchdog timer What do you guys think? Eric Johnson- Champaign, Illinois USA. lazrbite@pdnt.com