movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
btfss INTCON,INTF ;Did B0 cause interrupt
goto NotB0
incf flash_flag,f ; change flash flag
bcf INTCON,INTF ; clear interrupt flag
NotB0 btfss PIR1,TMR2IF ;was it timer 2
goto Continue
bcf PIR1,TMR2IF
incf Hundreths,f
movlw .100
xorwf Hundreths,w
btfss STATUS,Z
goto Continue
clrf Hundreths
incf Seconds,f
movlw .60
xorwf Seconds,w
btfss STATUS,Z
goto Continue
clrf Seconds
incf Minutes,f
Continue movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt