#include <io.h>
#include <system.h>
#include <stdio.h>


#define IOWR_VGA_DATA(base, offset, data) \
  IOWR_16DIRECT(base, (offset) * 2, data) 
#define IORD_VGA_DATA(base, offset) \
  IORD_16DIRECT(base, (offset) * 2)  
  
int counter=0;
  
static void interrupt_rotary (void * context, alt_u32 id)
{
  int flag_right_left;    
  counter ++;
  printf ("%d\n",counter); 
  flag_right_left=IORD_16DIRECT(ROTARY_BASE, 0);
  
  if(flag_right_left==1)
  {printf ("Left\n");}
  
  if(flag_right_left==2)
  {printf ("Right\n");}
  
  IOWR_16DIRECT(ROTARY_BASE, 0, 0);  // reset the interrupt request
}

int main()
{
   int temp;
   int temp2=0;
   
  alt_irq_register( ROTARY_IRQ, NULL,(void*)interrupt_rotary ); // register IRQSOURCE
      
  while(1)
  {}
}
