Friday, May 31, 2013

ZLR extended version support

ZLR is slowly but surely gaining support for more Z-machine versions. The latest code now works, at least partially, with all versions except V6.

The differing screen models are always fun. V3 has a top window that you can't do much with, and the status line is not counted as one of its lines. V4 is pretty much like V5 except the bottom window scrolls from the bottom instead of the top. V6 has an entirely different model that, if I choose to implement it, will stretch the practicality of using a single IZMachineIO interface for all of these -- so far I've only had to add a few new members to support the other versions.

I've also thought about adding some interpreter functionality, in order to (1) make ZLR work on platforms where Reflection.Emit isn't supported, and (2) possibly move toward a tracing JIT. No movement on that yet, though.