STEP-6.2 changes: If a file to be read is not found in the current directory, we look for it in one of the directories listed in the environment variable STEP_INPUTS. All words for reading files will follow this convention. Also, all words for reading buffers will first check for a .gz version of the filename (in all of these places). Changed Keys: b Base.directory [absolute-startup-dir]: b set base to startup directory b path set base directory to path This changes the base of the path used for the "d" (describe experiment) and "e" (load experiment) keys only. "base-directory" is stored as an absolute path. d Describe [absolute-last-thing-loaded-dir]: d describe the last dir loaded d path describe base/path Describe is used to change the current directory, and to describe experiments in the new directory. We first cd to the base directory, and then we cd to the indicated subdirectory. We then print the first line of all files in that directory that have the extension ".exp", ordered from oldest to newest. The last file listed becomes the default for the "e" key. e Experiment [last-thing-loaded or described]: e path/filename cd to path (starting at base), then load "filename" e path/ cd to path (starting at base). e path/dir cd to path/dir. If a ".exp" exists there, load it. e reload same thing as last time To change experiments, we first cd to the base directory, then we cd to the indicated path. Thus the path in an "e" command is always relative to the base directory, and specifying a path in an "e" command changes the current directory. If the path starts with a "/", you're giving an absolute path. All other commands (including "load" in Forth) are relative to the current directory, not the base directory. "0e" means rebuild all tables during loading. If no filename is specified and there is more than one ".exp" file in the specified directory, the possibilities will be listed, and none will be loaded (the current directory will be changed). l List.directory [absolute-base-dir]: l base directory listing l . current directory listing l dirname list subdirectory of current directory l path/*.pat.* list path/*.pat.* starting from current This just uses "ls" with the given argument (or the default argument). Normal usage: o start step in a directory containing one subdirectory per experiment. This sets the base directory. o to list available experiments, type "l". This lists the base directory. o to describe the experiment(s) in the "anneal" subdirectory, type "d anneal". This will cd to the anneal directory and print a line of documentation. o to load the experiment in the "anneal" dirctory, type "e anneal". This will cd to "anneal" and then load the ".exp" file from that directory. If you've just described that experiment, you only need to type "e" to load it. o to reload this experiment, type "e". o to rebuilt all tables, type "0e". o to load a pattern from this directory, use "g name.pat". This reads first from the current experiment, then looks in STEP_INPUTS New keys: We introduce the concept of the "base" directory, which is a directory that contains a set of experiment subdirectories. The base directory can be changed or listed using the "d" key: d Directory: A full path name (starting with a /) must be given to change the base directory. Simply hitting return gives a listing of subdirectories of the base directory. Entering a path name containing an "*" gives a listing of matching files within the base directory. The current or active directory will be called the "experiment" directory, and can be changed or listed using the "e" key: e Experiment: A path name containing an "*" gives a listing of matching files within the experiment directory. Simply hitting return is equivalent to entering "*.exp". Whenever the experiment directory is changed to "dirname", the default for the "l" key (load) is changed to "dirname.exp". The rest of the key functions are unchanged. They all save or load files relative to the current experiment directory: l Load.file p Put.pattern g Get.pattern r Read.colormap w Write.colormap but we add deferred words before-get after-get before-put after-put that operate before and after the "get" and "put" keys, to allow for special operations that are needed whenever patterns are saved or loaded. We also let the experiment set default patterns for "put" and "get" using "set-get-default" and "set-put-default". Other changes: We now have the software check memory size whenever you execute "new-experiment", so that 16Meg machines will operate correctly automatically.