Well, I can’t say I’ve had much more luck with the hardware testing, but I did create a second version of my assembler that allows for much more readable, capable code.
A couple of the main features of the assembler that I wanted to touch on were that I included labels and a lot of syntax/error checking. The assembler takes two passes at the code, one for collecting the labels and the addresses they represent, and the other for going through all of the instructions and generating their machine code. While coding this, I was toying with the idea of how to easily include things like subroutines in the assembly code.