E
Eric K Idema
= Dorothy
Introducing Dorothy a Z-Machine interpreter library. The Z-Machine is the
virtual machine used by many commercial and amateur works of interactive
fiction.
Dorothy is mostly C (taken in part from Frotz) with a Ruby interface. The goal
of the project is to provide the base for writing interpreters and other tools.
You can get the code from Github:
<http://github.com/eki/dorothy/tree/master>
Currently, most of the core instructions are implemented and tested. But, a
sizable number of instructions are still on the todo list. Those related the
the Z-Machine's screen model are mostly missing. As are save, restore, and
restart instructions.
= Demo
It's functioning well enough to power the demo here:
<http://ifrotz.org>
= RubyGems
Sorry, no gem available for this release. Go to Github to get the code.
= Sample IRB Session
eki@indus> irb -r dorothy=> #<Z::Machine:0xb7cd7be0> # filename
# Z::Machine#run executes instructions until the program finishes or until
# it needs input and none is available.
=> nil
# The machine writes output to an array. Each token is the result of one of
# the print instructions.
=> ["MINI-ZORK I: ", "The Great Underground Empire", "\n", "Copyright (c) 1988
Infocom, Inc. All rights reserved.\nZORK is a registered trademark of Infocom,
Inc.\nRelease ", 34, " / Serial number ", "8", "7", "1", "1", "2", "4", "\n",
"\n", "West of House", "\n", "You are standing in an open field west of a white
house, with a boarded front door. ", "You could circle the house to the north
or south.", "\n", "There is a ", "small mailbox", " here", ".", "\n", "\n",
">"]
=> []
# You can feed input into the machine via Z::Machine#keyboard. The machine
# usually wants a full line of input, though sometimes it will try to read
# individual characters. Z::Machine#run will only proceed if there's enough
# input available.
=> nil
=> ["> ", "open mailbox", "\n", "Opening the ", "small mailbox", " reveals ",
"a ", "leaflet", ".\n", "\n", ">"]
Introducing Dorothy a Z-Machine interpreter library. The Z-Machine is the
virtual machine used by many commercial and amateur works of interactive
fiction.
Dorothy is mostly C (taken in part from Frotz) with a Ruby interface. The goal
of the project is to provide the base for writing interpreters and other tools.
You can get the code from Github:
<http://github.com/eki/dorothy/tree/master>
Currently, most of the core instructions are implemented and tested. But, a
sizable number of instructions are still on the todo list. Those related the
the Z-Machine's screen model are mostly missing. As are save, restore, and
restart instructions.
= Demo
It's functioning well enough to power the demo here:
<http://ifrotz.org>
= RubyGems
Sorry, no gem available for this release. Go to Github to get the code.
= Sample IRB Session
eki@indus> irb -r dorothy=> #<Z::Machine:0xb7cd7be0> # filename
# Z::Machine#run executes instructions until the program finishes or until
# it needs input and none is available.
=> nil
# The machine writes output to an array. Each token is the result of one of
# the print instructions.
=> ["MINI-ZORK I: ", "The Great Underground Empire", "\n", "Copyright (c) 1988
Infocom, Inc. All rights reserved.\nZORK is a registered trademark of Infocom,
Inc.\nRelease ", 34, " / Serial number ", "8", "7", "1", "1", "2", "4", "\n",
"\n", "West of House", "\n", "You are standing in an open field west of a white
house, with a boarded front door. ", "You could circle the house to the north
or south.", "\n", "There is a ", "small mailbox", " here", ".", "\n", "\n",
">"]
=> []
# You can feed input into the machine via Z::Machine#keyboard. The machine
# usually wants a full line of input, though sometimes it will try to read
# individual characters. Z::Machine#run will only proceed if there's enough
# input available.
=> nil
=> ["> ", "open mailbox", "\n", "Opening the ", "small mailbox", " reveals ",
"a ", "leaflet", ".\n", "\n", ">"]