Just a year after my last status report, I've uploaded Language::Zcode to CPAN. It's a Perl module that lets you work with Z-code files. (For Z-newbies: Z-code is the machine language for the Z-machine, a virtual machine used for the Infocom text adventure games, among others.)
Language::Zcode v0.8 includes a program called plotz, which will translate a Z-code file to another language. (My brother, The Professor, claims that this is technically "compiling".) Current target languages include: - Perl: full (?) z3 support, meaning you can translate and run most of the Infocom games (and some more modern ones) - XML: create an XML tree with XML::Simple. I've started an XSL file to display the Z-code nicely, but really don't know what I'm doing. - PIR (aha!): I just started working on this. Lame support for 25 or so opcodes. But I can get a working Hello, World. Mostly. For those who don't remember, Dan Sugalski started this Fool's Errand (http://www.fools-errand.com/) by suggesting that the Parrot VM could be tricked into thinking it's a Z-machine. When I screamed for help, folks suggested a staged plan: 1. Translate Z-code to Perl 2. Translate Z-code to PIR 2a. Write some Z-code opcodes in C, to be called by the PIR (step 2). 3. Dynamically load a Z-code opcode library (2a) into Parrot, and run a (non-translated, or just a teensy-bit translated) Z-code file as if it's Parrot bytecode. aka the Z-machine running natively on Parrot. 4. Profit? I've made much progress on step 1, and a tiny bit on step 2. Still gibbering with fear about steps 2a & 3. Depending on how brave I am in upcoming months (and how much time my kids give me), I'll be upgrading step #1 or getting serious about #2. If the latter, I'll probably be asking lots of questions about PIR best practices. So be nice. Comments, advice, help will be much appreciated. -Amir Karger _______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com