todo content, the project is at github
In 2013, my friend Jukka Pirinen published his c64dslj, a project very similar to this. As I had just started learning 6502, in order to learn to make some SID sounds, I got immediately interested, and Jukka's tool helped me to get started.
Gradually I started making some facade code around c64dslj. First I wanted strongly typed labels, instead of raw strings, to shield against typos. Later I developed unsigned-byte, a library for easy handling of bytes (Java bytes are horribly difficult when trying to keep them unsigned!). That led to the possibility of using overloading of opcode methods: the type of the operand no more had to be defined in the method name. Instead of Strings and ints, the operands were now Labels, RawAddresses or UnsignedBytes, so the method name could be simply the opcode name for all addressing modes.
Finally, I started developing a simulator of a 6502 processor and RAM, to make it possible to use TDD to develop my SID routines. At that point I was already so deep in the details of the instruction set that generating the machine code became so trivial that I no more had any need for c64dslj.
So: the mockodore codebase is not directly based on c64dslj, but it was heavily inspired by it and probabaly wouldn't exist without it. Thank you, Jukka.
mockodore.fluentjava.org
- maintained since 2019 by Ville Oikarinen