I also forgot to mention debugging method #4 - "burn and crash" :) >> Byron A Jeff wrote: >> #2 gives you very little in the way of debugging. > > Can you expand upon that? It would seem that hardware breakpoints > would be the ultimate in debugging capability. The ICD/ICD2 give you a hardware breakpoint, but it's an "always" break. If you want "break on data" you need a compare and branch, so it's not transparent like a full featured emulator would be. > usart? I have bit bang serial routines for output. Usually I use Timer2 > because > of it's autoreload feature. Absolutely, any way that's convenient. I have a debugging monitor that I can drop in to a project, with both usart and bit-bashed versions, and also with or without using interrupts. The least intrusive to your code and its timing would be to use the usart, and just drop a byte to it when you need to. You have the right idea with your programmer, I wish I had time to offer some help. Cheerful regards, Bob -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist