INT
movwf w_temp ; Save W register
swapf STATUS,W ; Swap status to be saved into W
movwf s_temp ; Save STATUS register
movfw PCLATH
movwf p_temp ; Save PCLATH
btfss PIR1,TMR2IF ; Flag set if TMR2 interrupt
goto INTX ; Jump if not timed out
; Timer (TMR2) timeout every 1 milli second
bcf PIR1,TMR2IF ; Clear the calling flag
btfss flag, 0 ;check which LED was last
goto Do_tens
movlw b'00000001'
movwf GRD_PORT
movf ones,w
;andlw 0x0F ;make sure in range of table
call LED_Table
movwf SEG_PORT
bcf flag,0
goto INTX
Do_tens
movlw b'00000010'
movwf GRD_PORT
movf tens,w
andlw 0x0F ;make sure in range of table
call LED_Table
movwf SEG_PORT
bsf flag,0
INTX
movfw p_temp
movwf PCLATH ; Restore PCLATH
swapf s_temp,W
movwf STATUS ; Restore STATUS register - restores bank
swapf w_temp,F
swapf w_temp,W ; Restore W register