Parsing opcodes was more difficult than I thought of, but that part is now completed.
Opcodes are, in general, defined as 24 bit words where, for parallel move instructions, the eight LSBs define the ALU operation while the 16 MSBs define the move instruction that is executed in parallel.
Non-parallel instructions instead use the full 24 bit range for the opcode/operand definition.
I still didn’t find out how to distinguish between a parallel instruction and a non-parallel instruction easily. So at the moment, the first instructions that are tested are the non-parallel ones.
Any suggestions for speeding this up are always welcome.