                    ZMachine 1.0.0

A ZIL Interpreter for the Commodore Amiga Kent Dalton

Ported from the original UNIX version written by leo@marco.UUCP

Amiga Port \begin{matrix}c \\ ◯ \end{matrix}1992 by Kent Dalton

Read “Copying” section of this manual for redistribution information.

Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Copying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 Running ZMachine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

6.1 From Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6.2 From CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

7 Command Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8 Caveats and Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . 6 9 Reporting Bugs, Comments, and Questions . . . . . . . . . . . . . . . . 6

ZMachine 1.0.0 Manual  Amiga Version 5/13/92

1. Introduction

ZMachine is a program which can interpret “Zork Implementation Language” (ZIL) data files. ZIL is the language used by the interactive fiction series of games from Infocom, Inc. (a subsidiary of Activision/MediaGenic). This program does not incorporate any code from Infocom software and is not associated with or a product of Infocom, Inc. All game names mentioned in this document are trademarks of Infocom.

ZMachine can interpret normal interactive fiction data files. It is not compatible with interactive fiction plus (games with graphics, i.e. Beyond Zork, Zork Zero, etc). This program has a number of excellent features not available in the software from Infocom and has some customizations for the Amiga environment also. (For more information see the “Features” section of this document)

This version of ZMachine was ported from a UNIX version. It was ported using a PD termcap library and GCC 2.1. It also requires GCC’s ixemul.library V39 or greater (V39.26 of which is included in the archive). (Many thanks to Markus Wild for porting GCC to the Amiga and writing the ixemul.library! Great Job Markus!).

This program comes with no warranty express or implied. Use at your own risk.

2. Copying

The Amiga version of this program is Copyright \begin{matrix}c \\ ◯ \end{matrix}1992 by Kent Dalton. Noncommercial redistribution of the program is allowed provided all files are included in the distribution in unmodified form. Public Domain and Freely Distributable libraries may change handling, shipping, and copying fee charges to distribute the program provided the above condition is met. I will consider honoring E–Mail requests (see “Bug Reports” section for E–Mail address) for source code for this Amiga version. I will only distribute source to the the Amiga version however, since the original UNIX version is available via anonymous FTP.

3. Features

This program provides a number of features not available in the Infocom ZIL interpreter:

• Support for workbench screens larger than the default NTSC hires (640x200) via the termcap enviroment variable.

• Command history via the arrow keys.

• Emacs-like command line editing.

• Support of the Amiga clip board for cutting and pasting text.

• Support for automatic location of game files for hard disk users

• Ability to use Interactive Fiction files from other computers. For example, I transferred the Atari ST version of Leather Goddesses of Phobos to my machine with MSH and use it on the Amiga. This way, you can track down IBM or ST (maybe mac too) versions of some of the classics that aren’t available in the Lost Treasures collection.

4. System Requirements

ZMachine was ported using an Amiga 3000 with 6Mb RAM and AmigaOS 2.04. I do not know if it works with AmigaOS 1.3. If it does not, no effort will be made to port it to 1.3 (see “Copying” section for info on how to obtain source code.).

All Motorola CPU’s are supported. The amount of memory used is determined by the game being played. The

average seems to be on the order of 256K.

5. Installation

1. Copy termcap file to S: directory.

2. Set TERM environment variable for proper screen type i.e. setenv TERM amigalace. You’ll probably want to add this to your user-startup (or startup-sequence) file. Look at the file ‘termcap’ for the names of the different screen resolutions supported. ( The co# and li# fields tell the number of columns and lines for that terminal type. I edited the amigalace to do 75 columns instead of 80 so zmachine won’t word wrap, you may wish to do the same.) Also, If you have a UNIX box, you might want to do a ‘man 5 termcap’ to get more information on how to set-up your own custom terminal types.

3. Copy ixemul.library from the libs directory to LIBS: if you currently do not have a copy of ixemul.library version 39 (or greater) there already.

4. If you are using a 68000 or 68010 CPU you’ll probably want to copy zmachine.68k over zmachine since ‘zmachine’ is the 68020+ version.

5. If your termcap entry is smaller than 640x400 (amigalace) you’ll also want to edit the dimensions of the WINDOW= tool type for the zmachine.info file (this controls the size of the window popped by zmachine (and the ‘iconified’ window size also.))

Hard Disk Users Note: If you are using a hard disk you may want to assign LTOI: to the directory where your infocom games are located.

ZMachine assumes a directory structure of:

         LTOI: ->GameName1->Story.Data
               ->GameName2->Story.Data
               .
               .
               .
               ->GameNameN->Story.Data

when using this directory structure, ZMachine will be able to automatically locate the main data file for the game you wish to play and automatically place and retrieve game save files from the directory of that specific game as well.

You’ll probably want to rename the Zork 1-3 data files to Story.Data as well. They work properly with ZMachine, Infocom just named them differently.

I recommend copying zmachine and zmachine.info to LTOI: as well.

6. Running ZMachine

6.1. From Workbench

An icon will be opened and zmachine will prompt you for a game name. If you have not assigned LTOI: to adirectory, you must type in the full name of the file you wish to run. If you are you using zmachine with the LTOI: assign and directory structure mentioned in the Hard Disk Installation notes above, you can just type the name of the games directory that you wish to play. For example: if you type ‘moonmist’, ZMachine will attempt to open: LTOI:moonmist/Story.Data as the game file. From then on, the default SAVE/RESTORE path will be LTOI:moonmist, this way, you don’t get a whole bunch of files from different games getting mixed up in your LTOI: directory.

6.2. From CLI

This startup works just like the UNIX version. Here is the usage information from that version straight from the doc file:

Usage: zmachine [ -p protocolfile ] [ -w protocol linewith ]
[ -s storyfile ] [ -r restorefile ] [ <storyfile>.dat ]
[ <restorefile>.sav ]
-p protocolfile     : send output after script command to protocolfile
-w protocol linewith: set protocol linewith to linewith
-s storyfile        : use storyfile (only necessary if storyfile ends
                      not with .dat)
-r restorefile      : restore savefile restorefile before starting game
                      (only necessary if restorefile ends not with .sav)
<storyfile>.dat     : use storyfile.dat
<restorefile>.sav   : restore restorefile.dat
If you call zmachine without arguments, it trys to open the file
Story.Data on the current working directory.

Notice the default file extensions. Zmachine checks and enforces these (casesensitively) when started from CLI. If lots of people are bothered by this, I can change it.

7. Command Editing

Editing Keys:

Cursor left             :       ^B (also Left-Arrow on Amiga)
Cursor right            :       ^F (also Right-Arrow on Amiga)
Up in history           :       ^P (also Up-Arrow on Amiga)
Down in history         :       ^N (also Down-Arrow on Amiga)
Delete left             :       BackSpace (and Del on Amiga)
Delete right            :       ^D
Start of line           :       ^A
End of line             :       ^E
Kill to end of line     :       ^K
Kill to start of line   :       ^X
Program function key    :       ^I (TAB)

Undo                    :       ^Y
Function key 0-9        :       ^X0 -- ^X9

Disclaimer: I have not tried the function key stuff yet.

Using the Clipboard:

1. Select text with mouse

2. Hit Amiga-C to Cut text

3. Hit Amiga-V to paste text at cursor position

8. Caveats and Known Bugs

Lurking Horror will hang when it tries to do the Amiga sound stuff. Do not use this program with the Amiga version of Lurking Horror (you can use it with versions of Lurking Horror from other computers’ versions which do not do sound, I’ve used it with the Atari ST version for example.)

ZMachine save game files are incompatible with game save files created by the Infocom ZIL interpreter and vice versa. ZMachine will give a fatal error (i.e. it stops the game. Zmachine must be restarted) if one is attempted to be read.

9. Reporting Bugs, Comments, and Questions

I have tested this program with most of the non-plus interactive fiction games from Lost Treasures and several others from other computers and they have all worked great so far. Let me know if you find any that do not.

Feel free to send Bug reports, comments, or questions to me via E–Mail:

Kent.Dalton@FtCollinsCO.NCR.com

I will try to respond as time allows.

I hope you enjoy this program! I use it for all of my interactive fiction now!