For the author's challenge about injecting code: I was able to get it to execute arbitrary code by making the compiled code longer than 128 bytes. When that happens, execution runs right into your data memory, which you can populate with the opcodes you want.