Programmers now reset more often, and the DIY ICE is here:http://www.almesberger.net/misc/cy8c2/m8cutils-6.tar.gz
We're not more careful about resetting the target. In particular,
the waspic programmer could loop happily without ever resetting
the target, usually permanently leaving it in programming mode.
Note: fixing this requires a PIC firmware upgrade.
The bulk of the changes is major reshuffling of the programmer
code to turn it into a backend for the simulator, making it a simple
Be warned that the simulator is almost completely untested, lacks
many essential features (such as interrupts, timers, ...), and some
parts of it will certainly undergo massive and user-visible changes.
What the simulator can do is execute all instructions, as long as
they're not an SSC, use the main CPU registers (CPU_F,
IDX_PP, etc.), and set GPIO (*DR and *DM). If invoked in
ICE mode, it will propagate GPIO changes to the target.
A simple LED flashing loop executes internally at about 20 MIPS
on an Athlon64 3200+ (2 GHz). This drops to about 0.0015
MIPS if playing ICE through the admittedly glacially slow waspic
programmer. With a proper programmer, speeds of at least 0.1
MIPS should be possible if doing nothing but I/O.