http://mentalfloss.com/article/29885/eaten-grue-brief-histor...
http://mentalfloss.com/article/29885/eaten-grue-brief-histor...
Earlier this year I was playing around with recompilation (reading the Emscripten whitepaper) of z-code. The Infocom games used a virtual machine to get their games onto lots of contemporary computers, and also to reasonably implement a virtual memory system to fit the games into the small memory of those computers.
Anyway, it isn't too hard to make a z-machine interpreter (at least version 5 of z-code), so I made one which recompiles the code into javascript: http://tmp.esoteri.casa/zmach/zmach.html
The way z-code works makes it so you can't tell what is code and what is data ahead of time, so it decompiles as you play. "Dump routines" gives you the the code so far (as javascript). Part of the fun is making code which can pause execution to wait for player input. (Turns out the technique is already in some paper from some scheme workshop.)
https://github.com/kmill/zmach is the project.