
                Portable Infocom Datafile Interpreter
                -------------------------------------

This package is a public-domain implementation of a Zork Interpretive
Program (ZIP).  No Infocom Inc. proprietary or otherwise protected
code was used to create this program.

Note that only standard series Infocom games can be actually played
with this interpreter although it can print informational text about
any Infocom game.

Although this interpreter is free, the data files needed to use it are
are still very much covered under copyright.  See the man page for
more details.

This interpreter is based on an early revision of the InfoTaskForce
interpreter.  It has been extensively modified separately from ongoing
work by the ITF.  The current ITF interpreter version is 4.01 and
supports all Z-Code versions except 6 (Graphical).  However, I feel
that this version is less buggy, easier to extend, and contains
more features than 4.01 (IMHO, of course :).  I suggest you use this
version for playing Z-Code v.3 games, and ITF 4.01 for v.4 and v.5
games.


FEATURES
--------

The following features are supported by the interpreter for all
Infocom games:

  - Display of game header information, including release/serial
    number info, interpretations of various flags, and offset info.

  - Display of complete vocabulary (includes support for alternate
    character sets, needed in Shogun for example).

  - Display of all objects, their attributes and link information.

  - Display of all objects in a "contained" tree format.

  - Verifying the data file is not corrupted

Additionally, the following features are supported for playing all
Standard Series (Z-Code version 3) games:

  - Save/Restore (restore accepted from the command line as well)
  - Paging long output
  - Different screen sizes
  - Script generation to a printer (if available) or a text file
  - In-game modification of most command-line options

The following additional features are supported for playing Standard
series games on UNIX systems:

  - Support for termcap or terminfo
  - Support for termio, termios, or stty line discipline control
  - Optional support for GNU readline command line editing and history
      - Line editing
      - History and history file storage
      - User-defined command completion
      - Filename completion
  - Status line printing
  - Fixed windows (used in _Seastalker_) for terminals supporting
    scrolling regions (e.g., vt100)

The following additional features are supported for playing Standard
series games on Amiga systems:

  - Status line printing
  - Sound support
  - Proportional font support
  - Fixed windows (used in _Seastalker_)
  - Support for command line editing and history
  - Function key command assignment
  - Support for Kickstart 1.2 and 1.3
  - Executable saved game files, w/ all options stored
  - Advanced features for Kickstart 2.04 and above:
      - Pull-down menus
      - Point & click interface for saving and restoring
        games and scripting
      - Games can be restored by dropping their icons on
        the interpreter window
      - Selecting the `About' menu item will display
        information on the current game

The following additional features are supported for playing Standard
series games on MS-DOS systems:

  - Status line printing
  - Support for color monitors
  - Fixed window support (used in _Seastalker_)


Compiling
---------

To compile have a look at the Makefile and set the make variables in
the initial section to what you wish, then run make.

If your system does not have a supported terminal interface, your only
choice currently is to use TERMTYPE=stream and get simple stream-based
I/O: this means only traditional C stdio routines are used for output,
so you don't get fancy things like a status line.

If your system is not supported and you would like to *make* it
supported, you can always write a terminal interface yourself!  If you
would like to write a new interface *please* contact the current
maintainer first, to avoid duplication of effort.

Hopefully the terminal interface is now fairly stable.  See the
pinfo_ti(3) man page (or pinfo_ti.txt in the distribution), and
examine the current interfaces for some hints and ideas.  Since
stream.c is the simplest interface, start there.  If you have comments
on the clarity and/or details of the man page or comments, please let
me know.


Systems
-------

This version of the portable Infocom interpreter has been tested on:

    DG AViiON               DG/UX (4.32, 5.4.1, 5.4.2)
    Sun                     SunOS (4.1, 4.1.1, 4.1.2)
    MIPS                    BSD 4.2
    NeXT
    Amiga
    IBM & compatibles       MS-DOS, BSDI-386


ACKNOWLEDGMENTS
---------------

  - The original version of this code was written by the
    InfoTaskForce.  The source of this code is ITF version REV_C (see
    the _history.txt_ file in the ITF distribution for more info).

  - All updates and enhancements to this code were made by Paul D.
    Smith <paul_smith@dg.com>, except as listed below.

  - The MS-DOS terminal interface was written and contributed by Mike
    Threepoint <linhart@remus.rutgers.edu>.

  - The Amiga terminal interface was written and contributed by Olaf
    Barthel <olsen@sourcery.mxm.sub.org>.

  - The original idea/code for the GNU Readline command-completion stuff
    was contributed by Daniel Sharpe <dpsharpe@eos.ncsu.edu>.

  - Special mention for tons of info on Z-Code, game versions, etc., plus
    many suggestions for interpreter enhancements to Paul David Doherty
    <h0106kdb@rz.hu-berlin.de>.

  - Also thanks to Mark Howell <howell_ma@movies.enet.dec.com> for his
    Z-Code disassemblers; they were quite helpful.

  - Thanks to my beta-testers for their patience, especially (in
    alphabetical order :) --

      Olaf Barthel
      Paul Close
      Doug DeJulio
      Paul David Doherty
      Glenn Geers
      Tom Phelps
      Daniel Sharpe
      Mike Threepoint
      Luis Torres
      Mike Wiese


This code was written using information gleaned from the following
articles:

  - IEEE Computer, Apr 1979, "Zork: A computerized fantasy simulation
    game", by David Lebling, Marc Blank, and T. Anderson.

  - Creative Computing, Jul 1980, "How to fit a large program into a
    small machine", by Marc Blank and Stu Galley.

  - Byte, Dec 1980, "Zork and the future of Computerized Fantasy
    Simulations", by David Lebling

Also consulted were the following programs:

  - zorkword v7, by Mike Threepoint <linhart@remus.rutgers.edu>, for
    information on alternate alphabets and the structure of the object
    info list for Z machine versions 4, 5, and 6 data files.

  - zmachine v2.24, by Matthias Pfaller <leo@marco.de>, for
    information on setting/resetting the terminal mode under TERMCAP.


Disclaimer
----------

This package was updated and modified solely by the persons listed
above, in their spare time.  In particular, Data General Corporation
has no association with or knowledge of this package whatsoever.  See
the file COPYING for warrantee and copyright information.


Local Variables:
mode:   Text
End:
