RESET_VECTOR CODE 0x0000 ; processor reset vector
goto start ; go to beginning of program
INT_VECTOR CODE 0x0004 ; interrupt vector location
goto int_serv
int_serv:
movwf w_temp ; save off current W register contents
bcf STATUS,RP0 ; select bank0
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
clrf temp_adc
movlw b'01011001'
movwf ADCON0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
bsf ADCON0,GO
btfsc ADCON0,GO
goto $-1
movf ADRES,0
movwf temp_adc
bcf INTCON,INTE ; Clear Ext. Interrupt flag.
bcf STATUS,RP0 ; select bank0
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
MAIN_PROG CODE