Emulator Logo

Current Version is 1.5.1

This is a Pic Microcontroller emulator. It emulates the PIC16C84 in Java, loading compiled HEX files, dissassembling them and allowing you to run and single step Pic code. The program includes a simple text editor and macro assembler. It can be run as an applet (see the 'Online Version' link below) or downloaded and run as a standalone Java application.

Lastest News (16th January 2001)
Software Downloads, Known Bugs, Versions, Wish list
Online Version Run the Emulator as an Applet
Manual Users Guide, and how to write Plugins
License The Pic Emulator Open License
Links Various Links
Homepage The Pic Emulator Homepage

Plugins

You can write Plugins for the emulator that emulate devices plugged into the Pic chip. These Plugins are written in Java and could emulate anything from an LED to a switch, or even (as shown here) a television.

Performance

The emulator is relatively efficient. On a 200MHz machine with HotSpot (Java 1.3 fast execution), the application will emulate a 16C84 running at about 20MHz. This will change, however, depending on the nature of the code being executed and the number (and type) of plugins that are active. To achieve reasonable speeds, delay loops are optimised to execute 'instantly', but then keep track of the exact number of clock cycles emulated.

Accuracy

The emulator is not yet 100% accurate - some instructions are not perfectly emulated. However, emulation is clock-cycle accurate - instructions keep track of the 'machine time' that they have taken, so devices (Plugins) can behave properly. Some features of the chips are not emulated at all at the moment - in particular, interrupts are not handled.

Source Code

The source code for the emulator is now available under an open license - specifically a variation of the Apache License. The code remains relatively undocumented as I've been working on getting the assembler into a useable state. The next release is likely to feature largely tidier code and more documentation. Email Me if you are confused by the source, or would like to contribute to the project in any way.

More To Come

This is a volunteer project, run in the contributors' free time. As such, the project will benefit the most from feedback from people who use it. If this software is useful to you, or 'not quite there' - let me know by email. All comments are appreciated, and offers of help or support are welcome.