#include <16F676.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOCPD                    //No EE protection
#FUSES NOPUT                    //No Power Up Timer
#FUSES BANDGAP_HIGH          
#use delay(clock=4000000)
//#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
INT8 TRISA;
#LOCATE TRISA= 0X085
#BIT TRISA0 = TRISA.0
INT8 PORTA;
#LOCATE PORTA=0X005
#BIT    A0 = PORTA.0
INT8 CONST TABLEF[]={0X11,0X04,0X12,0X08};
INT8 CONST TABLER[]={0X18,0X02,0X14,0X01};
int8 index;
void fw(void);
void rw(void);
INT8 N;
#int_EXT
void  EXT_isr(void) 
{
 if(a0) fw();
 
 if(!a0) rw();

}

void main()
{
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);
   index=0;N=0;
   TRISA0=1;  
   WHILE(TRUE)
   {
   
   }

}
void fw(void)
{
 output_c(tableF[index]);
 index++;
 if(index>=4)index=0;
 if(!a0)index+=1;
}
void rw(void)
{
output_c(tableR[index]);
index++;
if(index>=4)index=0;
if(a0)index+=1;
}
