One minor nit: Orin Eman wrote: > My C version using the previously discussed stop bit scheme: > > void > SendMorseChar(char c) > { > #ifdef DEBUG > ASSERT(c); // For the truly paranoid > #endif Usually this is redundant, because ASSERT is defined something like this: #ifdef DEBUG #define ASSERT(b) if (!b) { complain(); } #else #define ASSERT(b) #endif So you don't need the extra #ifdef around the ASSERT call. On the other hand, some systems use the presence of NDEBUG to turn off ASSERT, instead of the absence of DEBUG. One or the other convention helps avoid clutter. -- Timothy J. Weber http://timothyweber.org -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist