HXEmu - Epson HX-20 Emulator


HXEmu is a free, open-source Epson HX-20 emulator written in C++ for Windows, Linux and Mac OS X. Although it's not fully functional, you can still grab the source code and try it out.

This project is not only about making an emulator though. I'm also writing documentation, updating the HX-20 Wikipedia article, doing proper scans of schematics and documentation and archiving software.

Currently I'm fixing various bugs and details so I can get BASIC running. This means going over documentation and schematics to make sure I've implemented all the important things properly. A big thing that needs fixing is timing in general, because at the moment it screws up for example the keyboard repeat rate. I'm also hoping to be able to implement a real slave CPU now that I have the mask ROM, in which case proper timing will be critical.


BASIC is functional

After some bug fixes in the I/O controller, BASIC can now be launched (after performing a device initialization of course)!

UI widgets, C++11 required

A basic UI widget system has been added to allow for controls (reset, power off, debugger, chip configuration, ...). With this addition, HXEmu now requires the compiler to support the C++11 standard as it uses std::function and std::bind for setting up callbacks. The compilation script has been updated to check if C++11 is supported.

Keyboard is now working, somewhat

Finally managed to get the keyboard input working, although it's a bit buggy at the moment. Also, trying to start BASIC causes it to overwrite large parts of the memory space with garbage and then trap on an illegal instruction.