Save_Context movwf WT ;save W register
movf STATUS,W ;move status register into W register
[COLOR="Red"]clrf STATUS[/COLOR]
movwf STAT
movf FSR,W
movwf S_FSR ;save FSR
movfw PCLATH
movwf p_temp ;Save PCLATH
You should also clear status (as shown) so that variables STAT, S_FSR and p_temp can be in the normal (bank 0) area. WT still has to be in the common area (0x70-0x7f).
Save_Context movwf WT ;save W register
movf STATUS,W ;move status register into W register
[COLOR="Red"]clrf STATUS[/COLOR]
movwf STAT
movf FSR,W
movwf S_FSR ;save FSR
movfw PCLATH
movwf p_temp ;Save PCLATH
You should also clear status (as shown) so that variables STAT, S_FSR and p_temp can be in the normal (bank 0) area. WT still has to be in the common area (0x70-0x7f).
I would also suggest you rethink your programming - it's important to keep an ISR as short and fast as possible - you certainly don't normally want to be doing display routines in there (with the exception of multiplexing for them).