//#include <stdio.h>
#include <vectors.h>
#include <serial.h>
#include <isrdecl.h>  /* initialize interrupts */
#include <misc.h>

#define ON 1
#define OFF 0

#define DEBUGMODE

void main(int k, char** argv) {

  int i;
  unsigned int mask;
  unsigned int PA;

  INIT_SERIAL;

  PACTL = 0x88;
  TMSK1 = 0x00; // turn all OC interrupts off
  PORTA = 0x00; // turn all the portA pins off
 
LOOP:
  CLEAR_SCREEN;
  HOME_POSITION;
  
  PA = PORTA;
  printf("PORTA = %d\n", PA);
  mask = 0x80;
  for (i = 0; i < 8; i++) {
    if ((PA & mask) > 0)
      printf("1");
    else
      printf("0");
    mask = mask << 1;
  }
  #ifdef DEBUGMODE
  printf("\nToggle (0-7): ");
  #endif
  i = read_int();
  
  if (i == 0) mask = 0x01; // 00000001
  if (i == 1) mask = 0x02; // 00000010
  if (i == 2) mask = 0x04; // 00000100
  if (i == 3) mask = 0x08; // 00001000
  if (i == 4) mask = 0x10; // 00010000
  if (i == 5) mask = 0x20; // 00100000
  if (i == 6) mask = 0x40; // 01000000
  if (i == 7) mask = 0x80; // 10000000
  if (i == 8) 
    PORTA = 0;
  else if (i == 9)
    PORTA = 0xFF;
  else 
    PORTA = PORTA | mask;
    
goto LOOP;
}
