 tags, here is the code with tags.

ES and EA are there because i started working on interrupt driven code but as that was not working i strip down the code.

<PRE>
#include <stdio.h>
#include "P89LPC952.h"
	
void Uart_Init(void)
{
	P1M1 = 0xFE;                    // Configure P1.0 (TxD) as Output (UART0)
  	
	BRGR0_0  = 0x70;                // 9600 baud, 8 bit, no parity, 1 stop bit
	BRGR1_0  = 0x01;
	BRGCON_0 = 0x03;
	S0CON    = 0x52;                // initialize UART 0
}

static void ua_outchar(unsigned char c)
{
	while(!TI_0);
	S0BUF = c;
	TI_0 = 0;
}
  
void PrintString(const unsigned char *s)
{
	while (*s)
	{
		if (*s == '\n')
			ua_outchar('\r');
		ua_outchar(*s);
		s++;
	}
}

void main(void)
{
	// SYSTEM CLOCK = 3.6864 MHz
	DIVM  =  0x01;
	TRIM  &= ~0x04;  
	AUXR1 |= 0x80;

	Uart_Init();             //Initialize UART 0
	ES = 1;
	EA = 1;

	ua_outchar(0x61);
//	PrintString("Hello World\n");
	while(1);
}