Thanks for the great comment! I got the original idea for this when I read the Understanding the Digital World textbook, by Brian Kernighan, where he used a Javascript implementation of a similar "Toy" using assembly. (I shared the Linux prototype of my Toy CPU with Brian. He liked it.)
I tried to balance "fun/easy to use" with "programming in machine language." That's a hard balance to make with machine language. :-) I used the Linux prototype in a 100-level course about "how technology works," for our unit on programming. I showed how to enter a "flash the lights" program, then we watched it run. I had my students write a simple program ("A+B=C") in machine language for the Toy, which I entered for them. They said it was hard to do at first, but they got it. And that made learning the "how it works" of programming much easier. I rewrote the "A+B=C" program in assembly, and in higher level programming languages .. the students were much more engaged and directly connected the "A+B=C" assembly program to machine language, and could see how "A+B=C" as a higher level language (like C) could be translated to assembly (and thus into machine language).
That's as far as we got, since it's not a computer science class. :-)