Microsoft have just published the source code for its Device Emulator!
http://www.microsoft.com/downloads/details.aspx?familyid=faa8c81d-7316-4461-a0ed-6c95b261ddcd&displaylang=en
It inlcudes:
- A CPU emulator that executes the ARM instruction set by JIT-compiling to x86
- An MMU emulator to support virtual memory and page protection
- A motherboard emulator that contains emulated RAM and NOR flash memory
- A collection of peripheral devices attached to the motherboard: serial ports, LCD controller, touchscreen, keyboard, interrupt controller, programmable timers, real-time-clock, network cards, audio, etc.
- A “DMA” interface which allows a Win32 application running outside the emulator to communicate with a WinCE application running inside the emulator, using a simple socket-like programming model.
This is an unexpected gift for anybody who is interested in innerworkings of the Device Emulator and can be used as a research and experimentation platform.