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

Reply via email to