#include "RCX_RTE.h"

#define port7_addr  0xffbe
#define port7       *((volatile byte *) port7_addr)
#define Prgm        ! ( port7 & ( 1 << 7 ) )
#define msCount     100


/* A/D converter */

#define byte        unsigned char
#define word        unsigned short int

#define ADCR  *((volatile byte *) 0xffe9) /* A/D Control Register*/
#define ADCSR *((volatile byte *) 0xffe8) /* A/D Control Status Register*/
#define ADDRA *((volatile word *) 0xffe0) /* A/D Data Register A */
#define ADDRB *((volatile word *) 0xffe2) /* A/D Data Register B */
#define ADDRC *((volatile word *) 0xffe4) /* A/D Data Register C */

void delay(int16 ms) 
{
  int16 i;
  while( ms > 0){
    for(i=0; i<msCount; i++);
     ms--;
  }
}


void _start(void) 
{ 
  ADCSR |=(1<<1); /* ADCSR.bit 1 = 1, Scan mode enabled */
  ADCSR |=(1<<4); /* ADCSR.bit 4 = 0, Scan mode*/
  while (! Prgm){
    
    ADCSR |=(1<<5); /* ADCSR.bit 5 = 1, start A/D conversion */
    delay(8000);    
    lcd_show_int16((int16)( (ADDRA >> 6) & 0x3ff));
    delay(8000);
    lcd_show_int16((int16)( (ADDRB >> 6) & 0x3ff));
    delay(8000);
    lcd_show_int16((int16)( (ADDRC >> 6) & 0x3ff));
  }
  RCX_Reset();
}       
