Hulatt, Jon wrote: > void putrsUSART(const rom char *data) > { > do > { // Transmit a byte > while(BusyUSART()); > putcUSART(*data); > } while( *data++ ); > } This is a bug if for no other reason than it always emits at least one byte. I also don't like the busy wait. Stuff like *DATA++ reminds me of why C is so evil in the first place. It's bad enough that the language allows you to put three separate things into one statement, but even worse when someone writes code like that. No optimizations would have been lost by writing this as two lines: data++; //advance to next character in string } while (*data); //back to handle next character C has encouraged a whole generation of programmers to write cutesy obtuse code. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist