/***********************************************************************/
/*                                                                     */
/*  SERIAL.C:  Low Level Serial Routines                               */
/*                                                                     */
/***********************************************************************/

#include <aduc7020.H>                      /* ADuC7024 definitions          */

#include "defs.h"

static void wchar(int ch)
{
GP0DAT |= 0x00100000;
    COMTX = ch;
	while(!(COMSTA0 & 0x040));
GP0DAT &= 0xFFEFFFFF;
}

int putchar(int ch)
{
	if (ch == '\n')  
		wchar('\r');
	wchar(ch);
	return ch;
}

#if 0
int putchar(int ch)  {                   /* Write character to Serial Port  */
	if (ch == '\n')  {
    while(!(0x020==(COMSTA0 & 0x020))) {}
		COMTX = '\r';
	}
  while(!(0x020==(COMSTA0 & 0x020))) {}
 
 	return (COMTX = ch);
}
#endif

int getchar (void)
{                      /* Read character from Serial Port */
 	while(!(0x01==(COMSTA0 & 0x01))) {}
 	return (COMRX);
}

int write (int file, char * ptr, int len)
{
  int i;

  for (i = 0; i < len; i++)
    if (*ptr)
      putchar (*ptr++);
		else
		  break;
  return i;
}

