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

#include <sys/alt_irq.h> // the irq functions
#include <alt_types.h>
#include <keyboard_ctrl.h>

#define IOWR_LED_DATA(base, offset, data) \
  IOWR_16DIRECT(base, (offset) * 2, data) 
#define IORD_LED_DATA(base, offset) \
  IORD_16DIRECT(base, (offset) * 2)
#define IOWR_LED_SPEED(base, data) \
  IOWR_16DIRECT(base + 32, 0, data)

KB_CODE_TYPE decode_mode;
alt_u8 key = 0;

static void timer_irqhandler (void * context, alt_u32 id)
{
    IOWR_16DIRECT(IRTIMER_INST_IRQ, 0, 0); // reset request
    time_count+=1;
    //if(time_count%5==0)
    printf("Time is %d\n",time_count);
}
/*
static void key_irqhandler (void * context, alt_u32 id)
{
    read_make_code (&decode_mode, &key);
    printf("code is %c \n",key);
}


static void irqprint(){
    //IOWR_16DIRECT(DE2_PS2_INST_IRQ, 0, 0);
    //unsigned char code;

    printf ("interrupt occurred\n");
}
*/

int main()
{
  //int i;
  printf("Hello Michael\n");
  
  //alt_irq_register( DE2_PS2_INST_IRQ, NULL,( void*)key_irqhandler ); // register the irq
  alt_irq_register( IRTIMER_INST_IRQ, NULL,( void*)timer_irqhandler );
  //alt_irq_register( DE2_PS2_INST_IRQ, NULL,( void*)irqprint );
  
  while(1){  
  
  }
  /* Get received byte */

  printf("Goodbye!\n");
    
  return 0;
}
