AZI:  Yet Another Z-Interpreter

Welcome to the exciting world of text adventures for the Apple Newton.
Now you can use a cutting edge piece of technology to play games more
than a decade old!

Please note that if you downloaded this from an FTP site or a BBS, it
should be in a non registered form.  Please read the "How to Register"
later in this document for details on how it is crippled.

What is YAZI?

YAZI is a "text adventure engine" which takes "datafiles" as input and
allows you to play them on the Newton.  Strictly speaking, YAZI doesn't
do anything on it's own; it requires a games datafile to run.  The
datafile contains all of the information about specific games.

[For technoweenies: datafiles were implemented as programs for a virtual
machine - the zmachine.  By creating the zmachine for the Newton, all
these games can be played.]

Using YAZI

YAZI is fairly straightforward to use.  After starting the applet, click
on the [i] button to get a list of installed games.  Once you select a
game, YAZI will immediately begin running.  When the prompt appears on
the bottom of the screen (often ">" or "What do you want to do"), you
can write in your command on the input area at the bottom of the screen.
Tap on the "Return" [<-] key to have the action run.

If text scrolls off the top of the screen, use the silkscreen arrows to
scroll back and forward.  The bellybutton moves you to the last page of
text.

If you want to save the game, tap on the [i] and "Save Game".  A window
will pop up where you can enter the name you want to save the game
under.  You can also delete old games.  In addition, the YAZI attempts
to save the exact state of your game when you quit by saving each time
you quit.  This game is automagically restored when you restart YAZI.

To restore a saved game, tap on the [i] and "Restore Game".

To start a different game, tap on the [i] and pick another game.  Note
that this will also end the game you were playing.

If you wish to temporarily pause the game (for instance, to jot down
notes in the notepad), tap on the little lantern icon to minimize the
game.  You will see a wee little lantern in the top middle of your
screen.  Tap on the lantern to restore your game.  It can also be
dragged around the screen so it isn't in the way.


Heap Concerns

This game uses a LOT of heap when it is running.  This means that you
might want to consider putting it on it's own card, or Freezing, or
archiving other programs while it's running.  Running with more than 60k
is advisable, which is tricky, but doable under 1.X Newton, fairly easy
on a MP120 2.0 and trivial on a MP130.


Preferences

Currently the only preference for YAZI is what font to use.

Changing the font of a game is straightforward - simply select the new
font from the prefs and the game will take several seconds to reflow the
text to this new screen size.  Note that you will lose much of your
scrollback - reflowing all of the text would be very time consuming.


Text Entry Short Cuts

YAZI was started back on a set of MP100 running NOS 1.3.  This meant
that a lot of time was spent creating text entry shortcuts to minimize
the amount of writing the game requires.

1.  Tapping on the compass rose will append of the directions to the
text in the input area.

2.  Tapping on U N D X will append Up, Down, eNter, eXit.

3.  Tapping on the little pictures will append Look, Get, Drop,
Inventory, Open, Close and Examine.

4.  Tapping on the diamond on the left of the text input area will pop
up a list of commonly used words.  Tapping on "Edit List" will allow you
to edit and customize this list.

5.  In the output window, hold down the stylus until it squeaks and
highlight the text you want.  Drag that text to the input area.  This is
the standard cut-and-paste routine on the newt.

6.  If you tap on any word in the output window, that word will be
appended to the text in the input area.  If you have a 2.0 unit, the
text will inserted at the caret.

Finally, in most cases doubletapping instead of single tapping will
insert the word and automagically press the "enter" button.  In cases
where that doesn't make sense (get, drop, open, close), it will append a
useful default word, such as "all" or "door".  Also, try tapping and
doubletapping on the compass icon for more useful things.


What Games Can I Play

In particular, games based on the Z-Machine (originally created by
Infocom - now specified in public domain documents) that are version 3
(V3) or earlier can be played.  This turns out to be dozens of games:

Ballyhoo, Cutthroat, Deadline, Enchanter, 4 in 1 sampler I & II,
Hitchhiker's Guide to the Galaxy (Solid Gold is V5), Hollywood Hijinx,
Infidel, Leather Goddess of Phoebes (Solid Gold is V5), Lurking Horror,
MiniZork I, Moonmist, Planetfall (Solid Gold is V5), Plundered Hearts,
Seastalker, Sorcerer, Spellbreaker, Starcross, Stationfall, Suspect,
Suspended, Wishbringer (Solid Gold is V5), Witness, Zork I (Solid Gold
is V5, so is German version), Zork II, Zork III

"Solid Gold is V5" refers to the later versions of these games which
were repackaged and given fancy hints menus.  You can usually find V3
versions of these as well.


How do I get these games onto my Newton?

In order to load games onto the newton, you need to do a few things:

0.  Get the game.
1.  Find the correct datafile.
2.  Convert the datafile into a Newton Package.
3.  Load the Newton Package onto the Newton.

0.  The easiest way to get the games is to contact Activision (who bought
out Infocom).  Their URL is http://www.activision.com.  They still sell
adventure sets suitable for munging onto the newton.  Please don't
pirate this stuff.  If you have a copy on your newton, you should have
the original disks at home.  George and I would rather not have phone
calls from Activision threatening to sue us because of rampant Newton
based piracy.

1.  Datafiles are usually located in a directory called "DATA" on PC
versions of games.  On Macs, datafiles are intermingled with other
files.  The easiest way to determine which files are datafiles is to
look at the size - most datafiles are fairly big: 90+ K.  In general,
it's easiest to get the files from the PC version.

2a.  To convert the datafiles to Newton Packages, use a program in this
archive called "ZStuff", which is designed to do exactly that.  Using
ZStuff is straightforward, simply run the program and give it the
information it needs, mostly a name and a game.  The name you select
will appear on the popup window.

2b.  If you use the Unix or DOS version of ZStuff, it looks mostly the
same, but is less GUI and more CLI.

3.  You should now have a Newton Package file suitable for download.
Fire up your favourite Newton connection utility and download it.


Limitations of the Unregistered Version

YAZI is distributed in an unregistered [if you prefer, crippled] form.
You will always be able to save games, but those that are saved after
playing more than 50 moves will not be able to be restored.  This means
that while you will be able to start most games, and play them for a
while, it will be very hard to finish them, or enjoy them.  After
registration, all of the saved games can be restored.

If all that sounds a bit confusing, it is.  Do yourself a favour and
register YAZI.


Registration

To register this game, send a check for $25 to the following address,
along with your email address.  Also include the exact spelling of your
name on your newton.  If you don't have an email address, you can also
register by using Kagi (see the other help information in the register
applet for information).

YAZI
(c/o Sanjay Vakil)
86 Norfolk St., Apt 4
Cambridge, MA
02139 - 2652

As soon as the check arrives, we'll fire some email off to you detailing
your registration string.  If you don't (!!) have an email address, send
a self-addressed stamped evelope and hope the mail system works (:

Use the "Register" on the [i] button to enter your password.  In case of
problems or bugs, send email to [email protected], and we'll do our best to
answer within the constraints of school, work, and minimal social lives.


Why Should I Register [or: Where does my money go?]

The obvious reason to register is so that you can play with a clear
conscience and without any sort of save-related worries.  In addition,
you'll be helping to support two fledglng Newtonphiles who have a whole
slew of additional applets they want to write!  This is really our first
big project, and we think it turned out pretty well.  Future ones may be
even more exciting.

In addition, newton programming requires a significant upfront
investment we'd like to pay off.  The Newton Toolkit was over $500,
including upgrades.  Once that is paid off, we need to upgrade
computers.  Much of the work for this was done on an LC III, which is so
slow, housework can be done during compiles!  It's time to move to the
PowerPC.


YAZI is a Dorky Name!

This project has gone through a number of different names on the way to
this (rather lame) one: zParse, ZOAN (Z*** on a Newton), zNewt and so
on.  We can code, but we can't seem to come up with a decent name.  So
here's the deal.  The full version of YAZI costs a grand total of $25US.
If you send us a name along with your registration, we'll register you
for only $20 - a savings of 20%.  Even better - if we USE the name you
suggest, we'll rip up the check and you'll have won a free copy as well
as world wide recognition!


Known Bugs:

- after a screen rotation, changing the fonts can do weird things
- changing font can screws things up on a 1.X unit.  open/close to fix
- V3+ games will not work
- heap and memory limitations.  Get a 130 (:


Other Bugs?

In case of problems or bugs, send email to [email protected], or visit
http://web.mit.edu/sanj/www/zparse.html.


Credits:

This program was written by George Madrid and Sanjay Vakil between
December 1994 and June 1996.  That's a long time.  Along the way, David
Fedor gave us much help, from with architectural issues with the Newton,
to user interface tweaks and code pieces as well as for creating the mac/win
code.  We're indebted to him for offering us his time and expertise.

Early beta testers, (who kept losing games as we updated the code)
included Ert Dredge, Julie Newharth, Sally Buta, Craig Fields, Adam
Dershowitz, Craig Fields and Ben Gottlieb.

This program made extensive use of the Specification of the ZMachine
detailed by Graham Nelson, as well as basing the program structure on
Mark Howell's ZIP.

No animals were hurt during the coding, except for some pet rats who
were gently shooed away from Newtons.