On Wed, 28 Apr 1999, Hamish Seaton wrote: > I was wondering if anyone had some details on the ICD capabilities of > the new 16F87X family. Can't seem to find much on the microchip web > site. Will this feature eventually make emulators redundant? No. The ICD will not replace the functionality of an emulator. The ICD is a nice product, and is no doubt a valuable debugging tool when it comes to debugging 16f87x code - but is still not as good as an emulator. The ICD's first shortcoming is the fact that it is significantly slower than an emulator. While it is true that the ICD executes code at real time, it takes longer to download the registers and selected ram components to the PC debugging program (mplab) at the breakpoint or between single-stepping. This is simply a limitation of the serial transmission speed. If you are debugging some code and only care to see a few registers, then it is very fast. However, if you want to watch all of your available file registers change as you single-step through your code, then it is very slow. Basically, the more variables you want to watch, the slower the ICD runs. The second shortcoming if the ICD is the fact that program execution 'skids' past the selected breakpoint by one instruction. This is an effect of the instruction fetching that the ICD does while it is executing the previous instruction (which may be the breakpoint!). This is not a bad drawback, simply place your breakpoint ust before the desired instruction. On the bright side, Microchip plans to include the ICD protocol in future flash parts. I would assume that the ICD unit would support these upcoming devices. -Chris Cole cole@coledd.com