Hi good job with the emulator, just one thing though when you are describing the op-code length and encoding in the 3rd paragraph of 'Architecture' you say:
" The first two bits of an instruction are the "class", selecting the type of instruction (arithmetic, flag, or branch). The next 5 bits select the specific instruction opcode. The final five bits select the mask and constant."
But shouldn't the mask and constant bits equal 4 as is demonstrated in the diagram?