Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[OT] Plotz status

8 views
Skip to first unread message

Amir Karger

unread,
Oct 22, 2003, 3:51:53 PM10/22/03
to Parrot Mailing List
(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

Leopold Toetsch

unread,
Oct 22, 2003, 4:14:26 PM10/22/03
to Amir Karger, perl6-i...@perl.org
Amir Karger <amirka...@yahoo.com> wrote:

> ... 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.

Great work and ... hmm not sure 'bout that nanobot stuff, or at least,
I'm waiting for the --secure runmode switch for parrot :)

> -Amir

leo

0 new messages