680x0 JIT Compiler Project
Goal

To create an emulator for the Motorola 680x0 series microprocessors on the 80x86 platform.
The main directive is speed, which will be obtained by use of dynamic recompilation (JIT - "Just-In-Time" compilation) technology rather than interpreting instruction-for-instruction.
Ultimately we would like this emulator to be the core of emulators using 680x0 processors, eg. MAME, PaCifiST, UAE, Executor.
With our 680x0 JIT as the core, such programs should get much better performance, and have more time to emulate the custom hardware, and as a result, get closer to the real thing.

Plans

So far, we only have a rough draft of what we are about to do. The best solution seems to be to program a working 68000 interpreter first, probably in C, possibly with some ASM. Maybird and X-Calibre are currently programming the instruction decoder, which will feed the compiler. ewald is working out 68000 <-> x86 code conversion, so we can design an efficient way to translate.
Once the emulation is accurate, we will optimize the instruction fetch-and-decode routines, and convert the back end from an interpreter to a compiler.
Then some optimizations will be built into the JIT compiler, and the 68000 emulation will be expanded to include more members of the 680x0 family.

The Team

- X-Calibre
- ewald
- Maybird

Mail me if you think you can help with the design and/or implementation of this project.

The Resources

The most important document will be the M68000 Family Programmer's Reference Manual. You can download it here (approx. 1.7 mb), or from http://www.mot-sps.com, under Products->Microprocessors->68000.

I have assembled a test source with some simple routines, using some common instructions. View source here. I assembled it to an AmigaOS file, using DevPac. Download the binary here. The code starts after the header, at offset 64h.

Here are some links to dynamic compilation docs.

Go back to the Computers page