I have been using an MPLAB-ICE 2000 on a couple of my 16C622 project for about 6 weeks now, so I thought some of you might like to know what I think of it. HARDWARE The hardware comprises the ICE 2000 box, the processor module (PCM16XC0), the device adapter, power supply and parallel port cable. If you are emulating an 18 pin DIL package, the device adapter has an 18 pin female socket, so you need to find an 18 pin male-male adapter. Physically it all seems to be designed OK. It comes with a little tripod stand thing, which makes a good conversation piece, but I found to take up more bench space than the emulator on its own. It would be very useful if the device adapter had slightly longer pins on the back of the pcb to facilitate the connection of scope probes and logic analyser probes on the device pins. INSTALLATION No problems at all, the most time consuming part was finding and adding a second ECP parallel port to my PC. SOFTWARE The MPLAB-ICE uses MPLAB V4.00 as its user interface. Operation is very much like the simulator, but there are a few minor differences, for example, the (MPASM) source code alignment does not work when single-stepping through macros (even worse than the simulator). It is frustrating that source files cannot be opened, closed, edited or saved while the processor is running. It would sometimes be useful if the emulator could be left running stand-alone without being connected to the PC (I don't think it is possible). REAL TIME TRACE The real-time trace, surprisingly, does not have a source-level user interface. The display is tabular, which is convenient for detailed analysis of a few machine cycles, but is frustrating when trying to follow the flow of control through a few thousand cycles. Curiously, the trace display does not completely correct the timing offsets between the instruction and data busses, so the data operands for one instruction are displayed in the table row which contains the next instruction. You get used to it... My overall inpression is that the trace facility is under-developed. COMPLEX TRIGGER FACILITY The real-time trace and breakpoints can be triggered by the complex trigger facility, which allows (among other modes) a sequential trigger on instruct fetch and data access. In basic operation, it works well, but I have have found that in chasing real bugs, it is frustratingly awkward: * It is not possible to set, reset, modify or cancel a trigger while the processor is running. * Stopping and starting the processaor resets the trigger, regardless of whether you want it to. * There is no means to reset the trigger by a system event, so if for example, your system normally has 3 events in sequence A then B then C, you cannot set a trigger to occur on the sequence A,C,B. * There is no repetitive trigger facility, particularly no facility for an output pulse to trigger an oscilloscope on the occurence of a particular address. BUGS I have had the following problems, which have been reported to my local reseller and microchip more than a month ago, but the last I heard was that the Asia support office does not have this model of processor module yet! * The emulator OSC pins appear to be useless, a crystal oscillator will not oscillate, and when using the emulator internal oscillator, there is no oscillator output to drive other logic on the board. * Single stepping across a RETFIE instruction produces an erroneous result: the GIE falg is not set. * The 16C622 RA3 pin cannot be read when the CMCON mode is 5. OVERALL IMPRESSION A good emulator product, but its usefulness to me is halved by the badly designed real time trace facilities (why else do you buy one?). The support is only slightly better than non-existant. regards, Mike Morrin