James Nick Sears wrote: > First you will need to get the PICs USART enabled and properly > configured. Check the USART chapter of the datasheet and everything > is pretty well documented. This consists of selecting a baud rate, > enabling receive and send, etc using configuration registers. For a complete example of this, see my QQQ_UART.ASPIC module at http://www.embedinc.com/pic. Note that all the baud rate setup is calculated in the UART_BAUD macro in STD.INS.ASPIC. This may still be useful even if you decide to roll your own routine. > Then you need to enable interrupts on the PIC (GIE bit) and then > enable the serial receive interrupt (RCIE). The interrupt setup and interrupt routine is in the QQQ_INTR.ASPIC template module. > To create the ISR at 0x0004 and not have it run when you start you can > simply start your program like this: > > org 0x0 ; start address = 0000h Bad idea. Don't do this. The proper way is to use relocatable code. See my QQQ_STRT.ASPIC and QQQ_INTR.ASPIC modules for complete examples of how to place the startup and interrupt code at their fixed locations. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.