
FROTZ V2.22 - an interpreter for all Infocom games. Complies with standard
0.2 of Graham Nelson's specification. Written by Stefan Jokisch in 1995-97

    This program once started as a re-make of Mark Howell's Zip, but
    it has grown into an utterly new interpreter.

    Frotz is freeware: It may be used and distributed freely provided
    no commercial profit is involved. (c) 1995-1997 Stefan Jokisch.

    Please report bugs to: s.jokisch@avu.de

Acknowledgements:

    Many thanks to Paul D. Doherty for his continuing support of this
    project. Thanks to everyone who sent bug reports, contributions or
    helpful hints (in alphabetical order):

	Thomas Biskup, Ian Carpenter, Graeme Cree, Jason Dyer,
	Carl Edman, Bernhard Fuchs, Joe Hachem, John Kennedy,
	Kirk Klobe, Marnix Klooster, John Mackin, Ambat Sasi Nair,
	Alan Sherrod and Linards Ticmanis.

    Last but not least, thanks to the porters:

	Amiga................................David Kinder
	OS/2........................Christopher J. Madsen
	Unix (curses library).............Galen Hazelwood
	Windows 95..........................Rich Lawrence

    Executables are available from ftp.gmd.de and from

	http://www.geocities.com/SiliconValley/Heights/3222/frotz.html

    which is the Frotz home page maintained by Chris Madsen.

Features:

    - support for V1 to V8 games
    - real-time input ('Border Zone')
    - built-in graphic font ('Beyond Zork', 'Journey')
    - mouse support ('Beyond Zork' and all V6 games)
    - function key support including number pad keys ('Beyond Zork')
    - command line editing and history
    - word completion (similar to "tcsh" under Unix)
    - small save files
    - switches for colour setting
    - switch for setting the Tandy bit
    - sound effects ('The Lurking Horror' and 'Sherlock')
    - cheat functions
    - multiple UNDO (via hot key, even for old V1 to V4 games)
    - input line recording and playback (via hot key)
    - support for European characters ('Zork I German')
    - underlined, reverse and boldface text
    - fast performance without virtual memory

Special keys:

    Alt-D - toggle debugging options (-a, -A, -o, -O)
    Alt-H - help on hot keys
    Alt-N - new game (restart)
    Alt-P - turn on input line playback
    Alt-R - toggle input line recording on/off
    Alt-S - set the random number seed
    Alt-U - multiple undo, works even for old V1 to V4 games
    Alt-X - exit game

    When testing a text adventure it can be difficult to reproduce a
    specific bug. To avoid this problem you should use the Alt-R key
    to record all your inputs in a command file. Later you can press
    Alt-P to feed the command file back into Frotz. In some cases,
    however, you will find that the result is different because many
    games contain random events. Luckily, Frotz provides a hot key
    to control these events. Type Alt-S and you are asked for a seed
    value, i.e. a value in the range from 1 to 32767. Normally, you
    would choose a number >= 1000. Smaller values generate a special
    sequence of random numbers as proposed by Nelson. (For instance,
    the seed value 4 generates 1, 2, 3, 4, 1, 2, 3, 4, 1...). In any
    case, random events become predictable until the next restart.

    See also the command line option -s below.

    When you need to type an unpleasantly long word, try to type the
    first three or four letters then press the tabulator key. If you
    are lucky, Frotz fills in some or all of the missing letters. A
    beep indicates that the word is ambiguous or that it does not
    exist.

Syntax: frotz [options] story-file

    -i	     ignore runtime errors

    Set this switch and Frotz no longer worries about anything the
    game tries to do. This can help you to get around fatal errors.

    -l #     set the left margin
    -r #     set the right margin

    Setting the margins is a matter of taste; Infocom interpreters
    usually set a right margin of one character (-r1).

    -S #     set the width of the transscript file

    By default your transscript files are formatted to a width of 80
    columns per line -- regardless of the current screen width. This
    switch allows you to change this setting. In particular, you can
    try -S 9999 or similar to deactivate automatic line splitting in
    transscript files.

    -c #     set the number of context lines

    When the game prints several pages of text in a row, Frotz stops
    for a more prompt after each page. The first prompt appears when
    your input reaches the top of the window. Further prompts appear
    when the previous page has been scrolled off the window. You can
    use this switch to make the latter more prompts appear earlier.

    -u #     set the number of undo slots for multiple undo

    Frotz tries to allocate as much conventional memory as possible
    for multiple UNDO. If this strategy causes some kind of problem,
    use this switch to set a tighter limit. In particular, you might
    want to turn off the UNDO feature altogether by typing -u0.

    -s #     set the random number seed

    The given seed value is used as the initial seed value on every
    restart. This is helpful for testing games like 'Curses' which
    make random decisions before the first input (such that the hot
    key Alt-S does not really help). The meaning of seed values has
    been explained in the previous section.

    -x       expand abbreviations (g, x, z ==> again, examine, wait)

    This switch was made for old Infocom games that lack the common
    abbreviations introduced in later games. Use it with caution: A
    few games might use "g", "x" or "z" for different purposes.

    -o       watch object movement
    -O       watch object locating
    -a       watch attribute assignment
    -A       watch attribute testing

    Although these switches may be of assistance while debugging new
    games, they are are actually meant to be cheat functions. The -o
    switch, for example, helps to locate the thief in 'Zork 1' and
    the cat in 'Curses'. The other switches produce a lot of obscure
    messages during the game; but some of these messages might give
    you important clues if you watch carefully.

    -t       set the Tandy bit

    Some old Infocom games were sold by the Tandy Corporation. These
    games behave slightly different when you use this option. For
    example, 'The Witness' gets censored: bastards turn into idiots,
    private dicks into private eyes and so on.

Questions and answers:

    Q: What is Frotz?
    A: Frotz runs text adventures which come in so-called story files:
       ZORK1.DAT, TRINITY.DAT, CURSES.Z5, JIGSAW.Z8, ARTHUR.ZIP etc.

    Q: Where can I find story files to use with Frotz?
    A: First, you can use the files from your original Infocom games. It
       is possible to play Atari ST, Amiga, PC or Macintosh games on your
       computer once you manage to transfer the story files. Some people
       even extracted story files from old Atari 800, Apple II and C-64
       disks! Second, there is also an increasing number of new games
       available on the Internet. Check the if-archive at ftp.gmd.de.

    Q: Why does Frotz stop with an error message?
    A: It might have detected a bug in the story file other interpreters
       overlooked. Use the -i switch to run your story file anyway. It's
       also possible that the story file is corrupt; be sure to download
       story files in binary mode.

    Q: What do I need for sound?
    A: You need the original 'Sherlock' or 'Lurking Horror'. Next get the
       SHSOUND.ZIP or LHSOUND.ZIP package from ftp.gmd.de (directory is
       /if-archive/infocom/missing-files). Each package contains a readme
       file, sound files and a tool to update your old story file. Follow
       the instructions in the readme file.

    Q: When exactly should I hear sound?
    A: Here are two examples: In 'Lurking Horror', you can hear chanting
       during your dream in the terminal pool. In 'Sherlock', you should
       play the violin.

    Q: Why doesn't the sound work?
    A: Be sure to use the correct story files: 'Sherlock' release 26 (not
       release 21) or 'Lurking Horror' release 221 (not release 203). The
       release number is shown at the start of the game.

    Q: How can I send transscription to the printer?
    A: Type PRT: as file name.

    Q: Why is it impossible to save or restore?
    A: When your story file is stored on a floppy disk, do not remove the
       disk during save and restore.

List of fatal errors:

    - "Bad stack frame"
    - "Byte swapped story file"
    - "Call to illegal address"
    - "Call to non-routine" [1]
    - "Cannot open story file"
    - "Division by zero"
    - "Error reading save file"
    - "Illegal attribute number"
    - "Illegal object number" [2]
    - "Jump to illegal address"
    - "No such property"
    - "Out of memory"
    - "Print at illegal address"
    - "Stack overflow" [3]
    - "Store out of dynamic memory"
    - "Story file read error"
    - "Text buffer overflow"
    - "Unknown opcode"
    - "Unknown Z-code version"

    [1] The first byte of a routine must be less than 16.
    [2] In V4 and above, object numbers > 2000 are considered illegal.
    [3] This condition is only checked on every call instruction.
