/*------------------------------------------------------------------------------
HELLO.C

Copyright 1995-1999 Keil Software, Inc.
------------------------------------------------------------------------------*/

#include <REG52.H>                /* special function register declarations   */
                                  /* for the intended 8051 derivative         */
#include <stdio.h>
/*------------------------------------------------
The main C function.  Program execution starts
here after stack initialization.
------------------------------------------------*/
char Getkey ();
char GetChar ();

#ifdef AAAAAAAA

void main (void) 
{
	xdata char c;
	int j;
	int i = 0;
	char a[30];
	
	
	SCON  = 0x50;		        /* SCON: mode 1, 8-bit UART, enable rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */
	
    P1 = 0;
    c = Getkey();
    i = c;
	/*do
	{
		P1 = 0;
		c = Getkey();
		if(c != -1)
			a[i ++] = c+1;
		else
			printf("b");
		
	}while(c != -1);*/
	for(j = 0;j < i;j ++)
	{
		c = Getkey();
		a[j] = c;
	}
//	printf("AAA");
	for(j = 0;j < i;j ++)
	{
		P1 = 1;
		putchar(a[j]);
	}
	while(1);
}

#endif

int leng;

void main()
{
	unsigned char c;
	int l = 62;
	int flag = 0;
		
	SCON  = 0x50;		        /* SCON: mode 1, 8-bit UART, enable rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */
    
    /*c = l & 0xff;
   	putchar(c);
	//printf("%d ",xx & 0xff);
	c = (l >> 8) &0xff;
	putchar(c);*/
	while(1)
	{
		int i;
		P1 = 0;
		c = GetChar();
		l = leng;
		for(i = 0;i < l;i ++)
		{
			c = GetChar();
			//putchar(c);
		}
		P1 = 1;
		if(flag)
			printf("Length : %d\n",l);
		if(l == 60)
			flag = 1;
			
	}
}

char Getkey ()  {
  char c;

  while (!RI);
  c = SBUF;
  RI = 0;
  return (c);
}

char GetChar ()
{
	char c[4];
	int l;
	int j;
	int i = 0;
	char cc;
	do
	{
		c[i ++] = Getkey();
	}while(c[i-1] != ' ');
	l = 0;
	for(j = 0;j < i-1;j ++)
	{
		int ll = c[j] & 0xff - '0';
		l = l * 10 + ll;
	}
	cc = l & 0xff;
	leng = l;
	return cc;
}

