The InfoTaskForce Infocom Interpreter Version 4.01 ================================================== Amiga Infocom 1.65 by David Kinder ================================== Fed up of the rather crude official Infocom interpreters? Annoyed that "The Lost Treasures of Infocom II" wasn't released for the Amiga? Then read on... There have been several ports of Infocom interpreters to the Amiga, but none of this program. The interpreter supports v1, v2, v3 (Zork1 to Stationfall), v4 (Trinity, Bureaucracy, etc.) and v5 (Sherlock, Beyond Zork, etc.) games. With this interpreter you can play ALL the games in the 3.5" disk LToI2 package for the IBM PC, by copying the datafiles with CrossDOS or similar, then just running this interpreter. This program requires AmigaDOS 2.04 or higher to run. As of 1.40, this interpreter supports all the features of Infocom data files relevant to the Amiga, including the "Undo" command (in such games as choose to implement it). Infocom Startup =============== Infocom can be started with a game file by clicking on the Infocom icon and then shift double clicking on the game file icon. Alternatively, if the game file's default tool has been set to where Infocom is, double clicking on the game file icon will load Infocom and run the game. The following can be added to the ToolTypes field of the Infocom icon (not game file icons): ATTRIBUTES - equivalent to the -a command line switch PRELOAD - equivalent to the -l command line switch NOPAGING - equivalent to the -p command line switch TRANSFER - equivalent to the -t command line switch BZCOLOURS - use "Beyond Zork" colour scheme with the graphics file. The synonym "BZCOLORS" is also accepted. Equivalent to the -z command line switch. If the Infocom icon is double clicked (i.e. no game file selected), Infocom scans the assignment INFOCOM: (and its sub-directories) for valid Infocom game files. To speed up scanning, files are ignored unless their name matches the AmigaDOS pattern (~(#?.#?)|#?.(dat#?|z?)). This means that only files with no extension, or files ending with .data (Amiga story files) or .dat (PC story files) or .z3 or .z5 (files produced by the Infocom format compiler Inform) are scanned. Using the InfoPrefs editor (see below), further directories to be searched can be defined, and also directories to be ignored if the scan reaches them. If Infocom cannot find one of the further directories specified, the directory will not be searched and no "Please Insert Volume..." requester will appear. Whether INFOCOM: is searched at all before these other directories or not, and whether or not a "Please Insert Volume..." requester appears if INFOCOM: cannot be found can be defined in InfoPrefs. After searching is complete, a list of all the games found will appear. The action taken by Infocom on finding multiple copies of the same game can be altered in InfoPrefs. The default action is to display all games that have been found. If more than one version of the game is found, the serial number will be displayed in brackets after the game name. Other available actions are to only display different versions or only to display the first found version of each game. Click on the game you want to play and it will load and run. If you click on a game while holding down the shift key a requester will appear indicating the name of the game, its release and serial numbers, and the full path to the game file. At the bottom of this list is a "Select with File Requester" gadget. Clicking on this gadget opens a file requester with which you can select the game to play. This list can also be made to appear by starting Infocom from the Shell with the -w switch. Note that this must be the only argument, i.e. Infocom -w is the only valid use of this switch. The "Infocom" Display ===================== If Infocom opens on its own screen, the screen clones the Workbench screen to use its size, resolution and fonts (unless selections have been made for these in InfoPrefs). If possible, the Infocom screen is public, with the name "Infocom". Pressing the Help key gives the game currently playing, its author and difficulty level (where available), and the screen type (public, private, etc.). Version 3 games can be played using a proportional font (specified in InfoPrefs). If no version 3 font is specified, the fixed width window font will be used. Left and right margins can be used (set in InfoPrefs) so that the text is not flush with the screen border. This can be useful to make the text more readable if you are using a program to give screens black borders. The status line of most Infocom games will extend across the screen regardless of the margin settings. The current line can be edited using backspace, delete, and the left and right cursor keys. The shifted cursor keys move the cursor to the beginning and end of the current line, respectively. Input lines have a history buffer. Use cursor up and down to scroll through the buffer, and shift cursor up and down to go to the top and bottom of the buffer, respectively. Holding down the right mouse button accesses the Project menu, which contains two items; About, which opens the help requester (the same as that obtained by pressing the Help key), and Quit, which can be used to exit the game without going through the usual "Are you sure?" prompts. File Operations =============== If asl.library is available, Infocom uses the file requester to prompt for any file names required. For Save and Restore operations, the default name is the name of data file, minus any extensions and with ".Save" appended. If the project icon Icon.Data is present in the same directory as Infocom, saved game files have this icon when Infocom is started from Workbench. The Script command causes a window to open. In the window the user can choose the file to which the script should be sent by either typing it into the string gadget, or click on the "Req" gadget, which causes a file requester to open. This allows the script to be sent to a device that does not appear in the file requester, e.g. PRT:. Support for Specific Games ========================== 1) "The Lurking Horror" Sound files are supported, as distributed with the Amiga release. Copy all the sound files to the subdirectory Sound in the directory containing the Lurking Horror data file, e.g. DataFiles/LurkingHorror <- data file DataFiles/Sound/s#?.dat <- sound files DataFiles/Sound/s#?.mid 2) "Border Zone" "Border Zone" implements an internal clock which is constantly running, regardless of whether you type in commands or not. Thus events take place without the user doing anything. 3) "Beyond Zork" Infocom can use the graphics file "Graphics.data", which was part of the original Amiga release of "Beyond Zork", and was also included in the Amiga version of "The Lost Treasures of Infocom I". Copy the file to where the "Beyond Zork" data file is kept. The file may be renamed to "BeyondZork.gfx". Use of the graphics file requires that the window text is an 8×8 non-proportional font. If the font does not match these characteristics, then topaz/8 will be used instead. If the graphics file is present, the interpreter can use the "Beyond Zork" colour scheme. This feature is activated by the -z command line switch or the "BZCOLOUR" icon tooltype, or by InfoPrefs. The colour scheme can then be changed in the game with the "color" command. The arrow keys can be used to select items in the startup menus. The function keys are preloaded with commands, which can be changed from within the game with the "define" command. The numeric keypad and the mouse can be used to select a direction. To use the mouse, click in the map to indicate the direction you wish to move in. Special Commands ================ The debugging commands present in some games are supported. These are #record, #unrecord and #command (#reco, #unre and #comm in version 3 games). #record prompts for a file name, to which all user input is sent until the command #unrecord is issued. This recording of the user's actions can be replayed with #command, which prompts for a file name to play back. Also, the command "Undo" (present in some version 5 games), which takes back the player's last move, is supported. The "Infocom.games" File ======================== The list of games recognized by Infocom can be extended using the "Infocom.games" file, which can be either in the startup directory or in S:. The format of this file is e.g. [Zork I: The Great Underground Empire] <- The game name enclosed in []. Author=Marc Blank & Dave Lebling <- The game's author, optional. 25 / 820515 <- A list of the release and 28 / 821013 serial numbers for each version 30 / 830330 of the game (Which can be found 75 / 830929 for any game file using the -h 76 / 840509 option.) as the release number, 88 / 840726 followed by a / and then the 52 / 871125 serial number. [Zork II: The Wizard of Frobozz] ... and so on. Now any game included in this file will appear in the initial game list (provided the game is present) and it's name and author will appear in the Help key requester. Standard I/O Option =================== Infocom uses standard input/output if the -c switch is specified at the Shell. This allows Infocom to e.g. take input from a file, or to be used over a network. In the latter case, the output terminal must support ANSI 3.64 character sequences. Infocom will exit in this mode if it receives a CTRL-C break. The default size of the window and colour of the text can be changed by specifying the with, height and pen number after "-c", each separated by a forward slash, e.g. Infocom -c70/20/2 Zork1 starts "Zork I" in a character window of width 70 and height 20, with all text using pen 2. Note that the values are the size of the window Infocom expects - the actual output window of your terminal or Shell must be at least as big as these values. If one or more of the values are not specified, the appropriate default is used, so e.g. Infocom -c70/20 Zork1 or Infocom -c//2 Zork1 is valid. If you use a CON: window for input, then you will notice functions which use an individual key press (e.g. scrolling up and down the list of hints in "Sherlock") behave slightly differently. CON: windows only pass input to the program after return is pressed, so if the program is expecting single key presses, entering 'q' and pressing return causes the program to see a 'q' character followed by a return character. If, say, you wish the program to see two 'q' characters in a row, to e.g. quit out of a hint screen after reading a hint, enter 'qq' followed by return. For use over e.g. a network, Infocom can restrict the user's actions. This is done by specifying a filename to be used for loading and saving games, in conjunction with the -c option. The name of the file to use for loading and saving should be given as the third argument, e.g. Infocom -c Zork1 Saved:Zork1.Save This also disables any file writing functions other than the loading and saving of games, and also stops CTRL-C exiting Infocom. Futhermore, the -m switch can be used with in this situation to set a time limit for any user playing a game. The format for -m is the time allowed in minutes, optionally followed by one or two times at which the user should be warned of the time remaining, e.g. Infocom -c/70/20m60/5/1 Zork1 Saved:Zork1.Save allows the user to play Zork1 for sixty minutes, with warnings when there are five minutes and one minute left. Both warnings are optional, so both Infocom -cm60 Zork1 Saved:Zork1.Save Infocom -cm60/5 Zork1 Saved:Zork1.Save are valid. If you wish CTRL-C to exit Infocom in all of the above circumstances, use the -b switch. This does not affect anything else. "InfoPrefs" - The Infocom Preferences Editor ============================================ Many options in the interpreter can be defined using the external configuration editor, InfoPrefs, which requires that either asl.library v38 or higher or reqtools.library v38 or higher is in LIBS:. By default, reqtools.library is only used if asl.library v38+ is not available, but this can be over-ridden with the icon tooltype REQTOOLS, or by the Shell option of the same name (i.e. 1> InfoPrefs REQTOOLS). The configuration is stored in the environment variable "Infocom.prefs", which is read in by Infocom at startup. InfoPrefs allows you to change: Beyond Zork Colours - If checked, "Beyond Zork" uses its custom colour scheme. Preload Data Files - If checked, the whole data file is loaded at the start, rather than only needed sections being loaded. Use Workbench Screen - If checked, the interpreter opens a Workbench window rather than its own screen. Custom Window Size - If checked, and if "Use Workbench Screen" checked, then the Workbench window size is taken from the values entered below rather than chosen by the program. Window Sizing Gadget - If checked, then if Infocom is running in a Workbench window, a sizing gadget appears to allow changing of the height of the window during play. Note that reducing the window size may cause some games to become confused. Left Edge, Top Edge, - Determine the dimensions (in pixels) of the Width, Height Workbench window used by Infocom if both the above gadgets are checked. L. Margin, R. Margin - The size (in characters) of the left and right margins to be used. StdIO Width, Height - The default size (in characters) of the character window to be used in StdIO mode (-c command line option). Screen Font - Opens a font requester from which to choose the screen font to use. Screen Colours - Opens a palette requester with which to choose the screen colours. This option requires reqtools.library to work. Screen Mode - The mode and depth of the screen Infocom is to open. Window Fonts - There are two window fonts - one is a fixed width font used for version 4 and higher games, and the second is used for version 3 or lower games. The second font may be proportional. Games List - This causes a new window to open, containing parameters affecting the list of games displayed at startup. The available options are: File to be displayed - Choose whether Infocom displays all games found, only different versions of a game, or only the first version of each game. Ask for INFOCOM: - If selected, and the INFOCOM: assignment cannot be resolved, a "Please Insert Volume..." requester will appear. If this is not selected, no such requester will appear. Search INFOCOM: - If selected (this is the default), the assignment INFOCOM: is searched before any directories specified below. If this is not selected, INFOCOM: will not be searched, so that only games in directories specified in the Search ListView will appear in the startup list. Search directories - Allows the selection of directories other than INFOCOM: to be searched for game files. Select "Add" to add a new entry, which can then be edited in the string gadget. Current entries can be edited by clicking on them in the list. The "Del" gadget deletes the current entry, and the "Req" gadget changes the current entry to the directory selected in the file requester which appears. Exclude directories - As above, but allows the selection of directories that are not to be searched. If, in searching directories and sub-directories, Infocom finds a directory named in this list, the directory is not searched. For this reason, entries in this list should not contain device names, i.e. Games:Zork1 and not e.g. DF0:Zork1 Finally ======= If you wish to contact me, write to (email if possible): Internet Email: kinder@teaching.physics.ox.ac.uk or david.kinder@physics.ox.ac.uk Postal mail: David Kinder, 2, Clwtt Cottages, Bangor Road, Gyfelia, Nr. Wrexham, Clywd. LL13 0YL More information and programs relating to Infocom games and text adventures generally can be found on the Internet via anonymous ftp from ftp.gmd.de, in the directory /if-archive. Text adventures are also discussed in the Usenet groups rec.games.int-fiction and rec.arts.int-fiction. History ======= 1.00 * First release. 1.10 * Added support for icon tooltypes. * If Workbench screen is larger than physical display, Infocom screen is kept to size of physical display. * Saved games can have icons if "Icon.Data" icon present. * A "Strike any key to exit." prompt appears if there is text to be read before the game quits. * Public screen opened if possible. * Save/Restore uses asl.library if available. * Better error reporting from Workbench. * Scripting in "AMFV" fixed. * Initial game list ignores files with ".#?" extensions except ".data". List now also looks in sub-directories of INFOCOM: for game files. * Initial game list has gadget to allow file requester to be used to select the game file to load. * Lines of text longer than the screen are handled better. * Fixed problems with a Workbench output window appearing if ConMan was running. * Input text is printed in a different colour to output. * Arrow keys now work (as used in "Beyond Zork"). 1.20 * Graphics in "Beyond Zork" supported. * Input line history buffer. * Better input line editing. * Output routines buffered - text printing is now *much* faster. 1.30 * Scripting should now work in all "AMFV" versions. * Debugging commands #record, #unrecord and #command implemented. * Problems with scripting and line editing fixed. * Options read from "ENV:Infocom.prefs", which can be edited using the InfoPrefs program. * "Beyond Zork" now has support for different colour schemes, if the graphics data file is available. Also, the "color" command works correctly. * The function keys in "Beyond Zork" are now fully supported. The commands on the function keys can be changed in the game with the "define" command. 1.40 * Scanning through input line history is much faster. * The -h option prints more information on version 5 games. * Updated documentation on version 5 header and data flags. * The numeric keypad and mouse now work in "Beyond Zork". * The interpreter can now run in a Workbench window. * InfoPrefs options extended. * "Border Zone" internal clock implemented - the game time progresses even without the intervention of the player. * Improved handling of lines of text longer than the screen. 1.45 * Problem of a "Lurking Horror" data file being incorrectly recognised is now fixed. * Switched compilers from GNU C 2.2.2 to DICE 2.07.56R. The code is now significantly shorter. * Added standard input/output routines. * Text can be offset from the screen edges by margins. * Default screen colours can be set in InfoPrefs. * New command line switch "-w" to display game files in INFOCOM:. 1.50 * Removed miscellaneous bugs. * Option to define saved game file with -c switch. * Colour of stdio text can be changed with -c option. * Defaults accepted in -c argument string. * Version 3 games can now use proportional fonts for output. * The version 3 status line extends across the display regardless of any margins set. 1.55 * Status line extends across the display for any Infocom game. * Shift-clicking on a game in the initial list opens a requester with information about the game file. * The option of defining a saved game name with -c also disables CTRL-C. * "Infocom.games" file can be used to specify games that Infocom should recognize. * New options controlling the initial game list, which can be altered from the new "Games List" window in InfoPrefs: * Other directories to be searched can be defined. * Directories to be ignored can be defined. * List can display all games found, only different versions, or only different games. * If INFOCOM: is not found, whether or not a "Please Insert Volume..." requester appears can be controlled. * Fixed some minor problems with version 5 games produced with the Infocom format compiler "Inform". 1.60 * Fixed size of ListView gadgets in InfoPrefs under V40. * Added "Search INFOCOM:" preferences option. * New command line switch "-m" to be used with -c to set a limit on the length of time spent playing a game. * Debugging commands (#record, etc.) now use file requester. * Scripting has a window into which script file can be entered, or the file requester can be used. 1.65 * Fixed scripting in "AMFV" (again). * Removed an Enforcer hit. * Tidied up InfoPrefs and added a new option to allow a sizing gadget when Infocom is running in a Workbench window. * When using a proportional font, the cursor adjusts to the size of the character it is over. * The script window now remembers the file previously entered. * Added a Project menu with two items; About and Quit. * New command line switch "-b" to enable CTRL-C when using stdio, regardless of the "-c" options. * Added the 2nd Infocom sampler (released in 1987) to the list in the "Infocom.games" file.