============================================================================
 $VER: Frotz Infocom Game Loader, v3.02 README File (26-Aug-96) by Dotoran!
============================================================================

What Is It?
~~~~~~~~~~~
   Finally, a HELP FILE for setting up those Infocom Interactive Adventure
Games for use with CNet Amiga BBS's!  This archive contains ALL the files
needed to set up Infocom games for use on your bbs.

   Using just ONE LOADER file, your users will be presented with a menu
of all the available Infocom Games on your system. If they had previously
played and saved a game in the past, they'll be asked if they wish to
resume the game, else they can start the game from the beginning. They'll
also be asked to choose the color they wish the game text to appear in.
When they have finished playing, they'll be shown the same menu again, and
could then choose to play and/or resume another game.

   To eliminate "hogging" of the game, the SysOp can specify a Time Limit
to play each game, or better yet, if you've created a "Daily Door Minutes"
setting for each Access Group, the loader will calculate how many of these
minutes they have remaining and use THAT value instead!

   You also have the ability of specifying a "minumum" age a user has to
be in order to play a game(Mainly for "Leather Goddesses of Phobos"), but
possibly for others in the future! :-)

   Lastly, there's even an AutoMaint module that you can run once a week,
or once a month, that will go through and DELETE games older than a certain
number of days.

    Skip to the next section if this is your FIRST time using an Infocom
Game loader by me. (This is the second release of the same package that
used to be called "ZILoader")

How do I upgrade from ZILoader 1.00?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If you're presently using my ZILoader, v1.00, and would like to start
using my Frotz, v3.00 loader, here's what you'll have to do:

 1. It is VERY, VERY important that you NOT copy ANY of these newer files
    into your assigned LTOI: directory yet! That comes LATER!

 2. Included with this archive is a script called "Frotz_Update". It's a
    CNet ARexx script which you should run from within your bbs. It will
    make certain changes to the ZILoader format of doing things, so as to
    conform to the way I'm doing things with the Frotz Interpretor.

 3. Once the script has finished it's work, you'll be ready to complete the
    upgrade by copying all files starting with "Frotz" into the "ltoi"
    directory, which is now called "Infocom/".

 4. Also included in this archive is a "Games/" directory. Check this to
    see if it contains any games which you do NOT currently have available
    on your systems. Chances are there'll be at least ONE you don't have!

 5. You'll now need to refer to the installation steps pertaining to the
    addition of the lines to your BBSMENU file, the creation of the EVENT
    used to run the "Frotz_AMaint" file, as well as the editing of the
    internal variables used in both the "Frotz_AMaint" and "Frotz_Loader"
    files. You may also choose to create a new assign, however this step
    is not absolutely necessary. (Read more about this later)

 6. As mentioned in the update script, the only directories inside the
    "Infocom/" directory which will ever be used are the "Games/" and the
    "data/" directories, so you may want to go into the other directories
    to see if there are other files you wish to keep, and could then DELETE
    these directories if found NOT to contain anything of value.

How do I install it?
~~~~~~~~~~~~~~~~~~~~
   There are numerous steps involved, so take your time and do each step IN
SEQUENCE as listed below:

 1: Copy the "Infocom/" directory found in this archive somewhere into your
    system, preferably somewhere inside your DOORS: directory.

 2: Load the "startup" file where you placed your CNet ASSIGN commands into
    a text editor. This might be "user-startup", "startup-sequence",
    "cnet-startup", or something similar. It should be located somewhere
    in your assigned S: directory. Add the following line BELOW your other
    CNet assigns:

        assign INFOCOM: <path>Infocom/

NOTE1: Where <path> matches the one you chose in Step # 1 above.

NOTE2: You'll have to REBOOT your computer BEFORE attempting to use the
       Frotz_Loader for the FIRST time, unless you also open up a CLI
       Window and type in the above line to create the needed assign.
       If the assign does NOT exist, the program will NOT run!

NOTE3: It is NOT 100% neccessary to have to create the assign. Look at
       Step # 10 below for information on NOT using the assign command.

 3: Add the "Frotz_Loader" file as a multi-use ARexx Door into your system.
    No special settings or arguments are needed, and you no longer have to
    add EACH infocom game into this area separately, as you may have done
    in the past. This one loader takes over the responsibility of loading
    ALL your Infocom games!

 4: Load your BBSMENU file(located in your CNET: directory) into a text
    editor, then add the following line to the end of Menu # 2; Available
    Everywhere menu:

FROTZ, INFOCom, ADVenture  `3- | {#0INFOCOM:Frotz_Loader}
~~^~~  ~~^~~    ~^~         ^    ^
  `------|-------'          |    `--> Replace with a Control-Q character!
         |                  |
         |                  `--> Access Groups that can play Infocoms!
         |
         `--> Make sure these are CAPITALIZED, especially the INFOC one,
              else it will interfere with CNet's INFO command.

NOTE: If you chose NOT to create the assign in Step # 2 above, you'll have
      to include the FULL PATH to the "Frotz_Loader" above, as well as
      including it in the <path> variable in Step # 10 below.

 5: Right below the above line, also add this line, which SysOps can use to
    launch the AutoMaintenance module, if they don't wish to wait for the
    next run of your "Frotz_AMaint" event:

FROTZM, INFOCM, ADVM      `31 | {#0INFOCOM:Frotz_AMaint}
~~~^~~  ~~~^~~  ~~^~       ^    ^
   `-------|------'        |    `--> Replace with a Control-Q character!
           |               |
           |               `--> Groups that can access AutoMaintenance!
           |
           `--> Makes sure ALL letters of these commands are UPPERCASE
                letters, else they may interfere in the operations of
                other CNet commands, not to mention the ones in Step #4!

NOTE: If you chose NOT to create the assign in Step # 2 above, you'll have
      to include the FULL PATH to the "Frotz_AMaint" file above, as well as
      including it in the <path> variable in Step # 10 below.

 6: Save your BBSMENU file, then highlight your CNet Control Panel and press
    RAMIGA - T to reload the BBSMENU file.

 7: Load your CNet CONFIG File, then enter the "Events..." window. Create
    the following NEW Event:

    SysOps Using v4.21 CNet Amiga:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Name: FrotzAMnt                Event Type: RunARexx
             Port(s): 0
        Execute Date: Tommorrow @ 03:00         <Run at 3 AM>
              Invoke: Immediate-UDump
         Repeat Days: 1                         <Run once a day>
        Repeat Hours: 0
         Repeat Mins: 0
          Valid Time: 01:00                     <Try between 3 and 4 AM>
              Status: Ready
       Unloaded Port: Ignore
                Days: Check ALL SEVEN
             Command: INFOCOM:Frotz_AMaint

        NOTE: Remember to hit the ADD button when you're done!

    SysOps Using v3.05c CNet Amiga:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Command: RunARexx
                Args: INFOCOM:Frotz_AMaint
           [port(s)]: 1               (whichever one works for you)
                type: Immediate--force system idle
                Days: Check Sunday    (so it runs every Sunday)
                Time: 300             (Try to run at 3:00 AM each Sunday)
               Valid: 100             (Try to run for 1 hour past 3:00 AM)
            Interval: 0               (No interval needed, only runs once)
             Iterate: 1               (Again, so it only runs once)

    3.xx: Don't forget to hit the ADD button, before hitting the OK button,
    NOTE: else this event will NOT be added to the rest of those defined.

 8: REMEMBER, if you won't be rebooting the system BEFORE trying out the
    Frotz_Loader, you'll have to load up a CLI and type in the command
    given in Step # 2 above to insure the proper assign has been created.

 9: The first time the loader is used, your <INFOCOM:>Games/ directory is
    scanned. It is inside of this directory where you should locate your
    game data files, using the "Inform" method of filenaming, where the
    root filename is the name of the game, and the extension is the proper
    ".z?" suffix, dependent on the Z version of the game data file. After
    this, the file "Frotz_Data" (minus quotes) will be created. This file
    holds the long descriptions, save names, game data filenames, and the
    minimum ages of all Infocom games you have located on your bbs. After
    this initial run, UserID # 1, or any user holding a specified Access
    Group will be given access to(and will be SHOWN) the "SCAN" command
    when using the loader. This command will re-scan your <INFOCOM:>Games/
    directory looking for any NEW games you may have added, so that your
    users can then be able to play them. Non-SysOps will NOT be shown the
    "SCAN" command, and it will NOT function if they attempt to invoke it.

NOTE1: See below for more information on the "...specified Access Group..."
       that I mentioned above.

NOTE2: You should ONLY store the actual "game data" files inside of this
       <INFOCOM:>Games/ directory. Any other files you may have for these
       games, like icon files, sound files, graphics data files, etc, can
       be placed in any other directories you'd like to create in the
       <INFOCOM:> directory you specified above.

NOTE3: The file titled "Frotz_Games" contains information on the 56 games
       I'm presently aware of, 52 of which I'm running at my place, and
       should hopefully contain the info for any games you may obtain. You
       may need to alter the game data filenames in this file if you
       obtained your data files from other sources. The game data filename
       is the THIRD item of data on each line in this file. The FOURTH item
       on each line is the minimum age to use for each game, and can also
       be edited yourself. Right now, all games are set to 1 year old,
       except for LGOP, which is set for 16 years old. The "smiley face"
       character I'm using for parsing purposes can be created by pressing
       CTRL-A on your keyboard.

10: Now load the "Frotz_Loader" file into a text editor, so you can edit
    the numerous variables located near the top of the listing:

    path - [set to INFOCOM: by default] In case you wish NOT to create
           the assign, you could specify, longhand, the exact path to
           which you stored the "FrotzStdIO" file. If you opt NOT to use
           the assign command in Step # 2, then you must make sure this
           path is the SAME one you used in Step # 4 and Step # 5 above.
           Note, ALSO, that you must store the Frotz Command files in this
           path as well. So, in other words, LEAVE EVERYTHING INSIDE the
           "Infocom/" directory, but STORE the "Infocom/" directory
           wherever you'd like!

   color - [set to 0 by default] The Frotz Loader will ask the user what
           color they wish the text in the game to appear in, however this
           variable allows you to specify the DEFAULT color to use, in the
           event a user presses ENTER without specifying a color choice.
           valid values range from 1 to 7, which correspond to the same
           values used in an MCI color command. Using a value of 0 will
           allow the loader to randomly select a color each time.

  access - [set to 31 by default] SysOps have the ability to SCAN the new
           INFOCOM: directory for newly added games. User ID # 1 is ALWAYS
           considered a SysOp, while users with an Access Group equal to
           or higher than the value specified here will ALSO be considered
           a "SysOp", and thus will see(and be able to use) the internal
           Scan command. (Also see the <cheat> variable below!)

  resume - [set to 1 by default] Allows you to choose whether or not the
           Loader will immediately ask the user if they wish to resume a
           game, if it is seen they have "#?.SAV#?" files in their UUCP
           mail directory. If set to 0, they'll be given the main menu of
           games directly, upon which they could choose the "R" command.

    time - [set to 60 minutes by default] The Frotz Interpretor allows you
           to specify the number of minutes a user may play a given game,
           and this variable allows you to specify how long that is. If
           you've created a "Daily Door Minutes" restriction for the Access
           Groups on your BBS, you can alternately specify a -1 value for
           this variable, in which event the Frotz_Loader will calculate
           how much of this limit they have left and will use that value
           for the time limit!

    undo - [set to 5 by default] The Frotz Interpretor allows you to specify
           the number of consecutive times a user can UNDO an action or
           command, while playing a game. Set to 0, and the users will not
           be able to use the UNDO command at all. (The docs for Frotz say
           that the UNDO command is supposed to work in all games, however
           the StdIO version doesn't seem to support UNDO when using a z3
           version data file, so this command will not be available in all
           games[until he adds that feature to the StdIO version!])

   cheat - [set to "-o -O -a -A" by default] The Frotz Interpretor allows
           you to "look behind the scenes" while playing a game. If one
           knows how to use this effectively, it would make mapping one's
           way through a game quite easy, thus you could "cheat". Only a
           user with an Access Group equal to or greater than the one you
           specify for <access> above will be able to use this cheat. The
           loader initially has cheating disabled, but those who have the
           access can type an ! (exclamation point) when asked for the game
           number to enable the cheat. In addition, typing !! will allow
           the user to CUSTOMIZE which of the cheat codes will be used,
           as some of them list gobs and gobs of information, which may,
           or may not be relevant to the goal you have in mind.

                    -o : Lets you monitor object movement.
                    -O : Lets you monitor object locating.
                    -a : Lets you monitor attribute assignment.
                    -A : Lets you monitor attribute testing.

11: Lastly, load the "Frotz_AMaint" file into a text editor. Near the top
    of this file you'll see an <age> variable. This variable lets you
    specify how many days a saved infocom game can be stored in a user's
    mail directory. I've noted that Frotz uses MUCH SMALLER ".SAV" files,
    so you may wish to allow the games to remain available for longer
    periods of times.

12: That's It! I know it's a lot of steps, but FINALLY you have them all
    presented to you IN ONE LOCATION for easy reference ANY time!

Other Things Of Note:
~~~~~~~~~~~~~~~~~~~~~
    The ADVM, INFOCM and FROTZM commands can be used to launch the included
automaintenance module, in the event you wish it run BEFORE your next event
runs. When used, the AMaint module will scan each user's mail directory
looking for files that match the template of "#?.SAV#?" (minus quotes). It
will then compare the AGE of these files to the value set in the <age>
variable you set in Step # 11. If the file is OLDER, it is DELETED, and if
the file is either YOUNGER or EQUAL TO the <age> value, it is left intact.

    Starting with this release of this package, I'm including numerous
publically accessable game data files, so there should be no problems with
copyrighted programs anymore. As mentioned above, I am presently running
over 50 Infocom Games on my system, so there ARE lots of games available,
you just have to FIND them! (I'll share one source with you below...)  :-)

    The Frotz Infocom Interpretor is capable of running v1 through v5, v7,
and v8 games. Only v6(graphical versions) are not supported by Frotz, but
there are only four v6 games: Arthur, Journey, Shogun, and Zork Zero.

    It will be up to you to obtain other games. This package was written
solely as a means of SETTING UP the FROTZ INFOCOM INTERPRETOR into your
bbs's, as I found, while rebuilding my bbs, there wasn't such a beast out
there, and I had forgotten how much of a pain setting them up initially
can be! :-)

    Presently, if a user states they wish to SAVE their game, a file will
be created in their MAIL directories using the name of the game they saved,
followed by the extension ".SAV##" (minus quotes), where ## are digits used
to indicate the "slot" used to save a game. There is no limit to the number
of SAV's a user can create, however the AMaint will curb the number which
actually remain in a user's mail directory. So, for instance, if a user
plays MiniZork1, you might see files "MiniZork1.SAV0", "MiniZork1.SAV1",
etc. in their UUCP Mail Directory. The next time that user enters the
"Frotz_Loader", their UUCP Mail Directory will be scanned for "#?.SAV#?"
files, and if any are found, they will be asked if they wish to "resume"
one of these games. Note, however, that this "resuming" only specifies the
saved game file to use. It is still the USER'S responsibility to use the
RESTORE command once inside the game to actually bring that saved game
back into play. There is also a DELETE command available to the users, so
they can do their OWN house cleaning, if they so wish.

    I took a lot of slack from a couple of you concerning my mandatory
need to rename the game data files to "story.data", so this time, I decided
to go with the more generally accepted mode of <gamename.z?> which is used
by 90 % of the avilable games to date. If you have game data files that use
filenames that do NOT follow this convention, then you may need to modify
that game's entry in the "Frotz_Games" file. (You might even have a game
that I do NOT have, in which case you'll have to create the ENTIRE line in
the "Frotz_Games" file).

    I also decided to do away with all the internal directories, as with
the new naming scheme above, each game data will have a unique name, thus
they can now ALL be stored in the SAME directory(the "Games/" directory).
If you have OTHER files for certain games, you can create multiple other
directories inside the designated <INFOCOM:> directory. The loader now will
only care about the internal "Games/" directory, so another bunch of you
should now be happy! :-)

    If you'd be interested in obtaining the FuLL archive for FROTZ, Inform,
or some more Infocom Text Adventure games, there's a GREAT ftp site you
will want to check out. Point your browsers to:

        ftp.gmd.de:/if-archive/games/infocom
        ftp.gmd.de:/if-archive/infocom/interpretors
        ftp.gmd.de:/if-archive/infocom/programming

Is That It? Is There Nothing More?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    I'm afraid I've run out of things to say! (Gee, that's a first!) :-)
As always, if you run across a problem while using this program, please feel
free to drop me some feedback at one of these addresses:

  ***************
  * NEW ADDRESS *>>  InterNet> dotoran@bluemoon.net
  ***************
                      FidoNet> David Weeks@1:260/121.0

                        CLink> David Weeks@911:6840/2.0

                     CHIPSNet> Dotoran@546:7/1.0

                   Snail Mail> David M. weeks
                               318 Woodside Avenue
                               Buffalo, NY 14220-2015

============================================================================
                       Frontiers BBS (716)/823-9892!
============================================================================
