(There's a bit about Parrot at the end.) Recently seen on Amir's monitor (pardon the Windows-ness):
============================================= C:\Amir\Perl\Parrot\ParrotZ>perl plotz.pl story\minizork.z3 Unimplemented opcode read at 15520 Unimplemented opcode restart at 22205 Unimplemented opcode restore at 22217 Unimplemented opcode save at 22367 Unimplemented opcode input_stream at 22821 Unimplemented opcode output_stream at 22859 C:\Amir\Perl\Parrot\ParrotZ>perl story\minizork.pl MINI-ZORK I: The Great Underground Empire Copyright (c) 1988 Infocom, Inc. All rights reserved. ZORK is a registered trademark of Infocom, Inc. Release 34 / Serial number 871124 West of House You are standing in an open field west of a white house, with a boarded front do or. You could circle the house to the north or south. There is a small mailbox here. >Undefined subroutine &main::unimplemented_read called at story\minizork.pl line 513. ============================================= !!! The point here is that: (1) I'm able to translate a Z-code file into a Perl file (2) I'm able to implement enough stuff to get minizork (a smaller, publicly released Zork I) started, (almost) correctly printing out some stuff, up until the famed '>' prompt. (3) There's still a few crucial opcodes I haven't implemented, like the one that reads in and parses a command. I'm excited enough about #1 and #2 that #3 doesn't depress me too much. As you can see from the plotz.pl printout, what I still have left to do is game state and I/O. Which unfortunately happen to be the hard parts, but it turns out I can steal a lot of them from Games::Rezrov. I've implemented some 70 opcodes. Another 6 opcodes gets me minizork. Four more gets me two-thirds of all released Infocom games. Neat! Btw, a quick search on Google Groups tells me I haven't yet mentioned what plotz stands for: Pol(l)y-Lingual Opcode Translation for the Z-machine plotz parses Z-files. It then (in theory) has hooks that allow a coder to write a module that'll output a translation in (almost) whatever language she wants. The plan is that once I get minizork working (which I believe will take me another n weeks, where n is a nybble), I'll start working on PIR output from plotz (which will take another N months, where N is an (unsigned) byte). Then of course I get to start working on the original project behind all of this, which is getting Parrot to run Z-code natively. Of course, by that time, Parrot will probably be running on nanobots in our red blood cells, so you'll be able to run Z-code REALLY natively. -Amir __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com