Writing an emulator for the Apple II has been my hobby horse for several years; I’ve written small versions of one in several languages, mostly as a way to learn said language. I decided I would write an emulator, for real, with graphics and all, and that became erc.
erc is written in C. As someone who has written C programs for a long time, and who has also been immersed in modern software engineering practices with other languages, I thought it’d be a fun challenge to write a C program that adhered to those as much as C could allow. erc endeavors to document all of its functionality, and to achieve a high percentage of unit-test coverage (using the excellent Criterion framework).
erc, finally, tries to be as open and as clean of a code base as it can, if only to allow someone to peek under the hood of an emulator and see plainly how it works. Old computer architectures can be a bit messy.