home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / INTERNET / GIGO0209.ZIP / GUTL0209.ZIP / SHROOM.DOC < prev   
Text File  |  1993-11-14  |  26KB  |  592 lines

  1.  
  2.     shroom.doc    - readme file for Shell Room Utility
  3.  
  4.     Copyright (C) Davis Augustine 1990-1992.  All rights reserved.
  5.  
  6.     Last Modified:    14nov93.  Version 2.4a
  7.  
  8. Files
  9. -----
  10.     SHROOM.COM    - The program.
  11.     SHROOM.DOC    - This documentation file.
  12.  
  13. Description
  14. -----------
  15.     SHROOM is a utility that gives a DOS application's shells more
  16.     room.  It does this by intercepting the shell operation,
  17.     swapping out the application program, freeing up the memory,
  18.     and then performing the shell operation.  It also intercepts
  19.     the exit from the shell, so that it can swap the application
  20.     back in before returning to it.  The program is none the wiser.
  21.  
  22. Features
  23. --------
  24.      o    Easy to use.
  25.      o    Detects swap file overflow (disk full) and asks whether you want
  26.     to abort back to the application or continue with a partial swap.
  27.      o    Detects TSR loading and unloading during the shell.  Frees
  28.     the TSR's resources and puts a warning message.
  29.      o    Small resident size (about 6k).  Frees nearly all of the memory.
  30.      o    Allows you to increase COMMAND.COM's environment size.
  31.      o    Works with all major DOS applications.
  32.      o    Fully user specifiable swap file path.    Ie., you can put
  33.     it on a virtual disk.
  34.      o    Swaps allocated memory only, avoiding unnecessary writes
  35.     and reads of free memory.
  36.      o    Intelligent command line parsing.  Searches DOS's PATH
  37.     for program to load, allows passing of args to the program.
  38.     Automatically tries .COM and .EXE extensions if not
  39.     specified by user.
  40.      o    Verbose mode for inquisitive users.
  41.      o    Quiet mode for apathetic users.
  42.      o    Uses DOS "make temp file" facility to prevent network clashes.
  43.  
  44.  
  45. Installation and Operation
  46. --------------------------
  47.      o    To install, just copy SHROOM.COM into a directory in your PATH
  48.     or the directory from which you will run the application.
  49.      o    For help, use the question mark switch, eg. "shroom -?".
  50.      o    To load, just type the normal command used to invoke the
  51.     application, with "shroom " prepended.  Eg, if the application
  52.     is called "edit", then you would use the command "shroom edit".
  53.     Arguments are passed to the application just as before, so eg.
  54.     you can say "shroom edit letter.doc".
  55.      o    To shell out, use whatever shell command is provided by the
  56.     application.  You will see a message from Shroom saying that it
  57.     is swapping the program out, after which the normal shell prompt
  58.     and actions will appear.  When you exit the shell, you will
  59.     again see the "swapping" message from Shroom and then be
  60.     deposited back into the application as usual.
  61.  
  62.  
  63. Help Screen - Displayed by the "-?" switch:
  64. -------------------------------------------
  65. Usage:  shroom  [Switches]  [@SwitchFile]  Program  [Args]
  66.        -?h : Print this help message.
  67.         -L : Display shareware license.
  68.         -n : Display program notes (more detailed help).
  69.         -p : Proceed (without asking) with partial swap if disk full.
  70.         -q : Quiet mode - display error messages only.
  71.         -v : Verbose mode - provide running commentary.
  72.         -w : Netware workaround - prevent Novell from closing files.
  73.    -c List : Swap if List arg is in command line (-xc: swap if NOT in it).
  74.       -e # : Set ERRORLEVEL returned if unable to load prog (default = 254).
  75.       -m # : Swap a maximum of # kbytes.
  76.    -o File : Specify file to direct Shroom output messages to.
  77.    -s Path : Specify DRIVE:DIR in which to create swap file.
  78.    -t List : Swap if program is in List (-xt: swap if prog is NOT in List).
  79.       -z # : Specify environment size for COMMAND.COM.
  80. SwitchFile can hold switches that don't fit on the DOS command line.
  81. Program and Args are your application and the command line passed to it.
  82.  
  83. Example:   shroom  -p  -e 99  -s E:\  -z 800  wp  letter
  84.  
  85.  
  86. Notes Screen - Displayed by the "-n" switch:
  87. --------------------------------------------
  88.  
  89.           ********** NOTES **********
  90.  
  91. NOTATION:
  92.     'k' is used by Shroom as decimal 1000, not 1024.  E.g., "Swapping 4k"
  93. means swapping 4000 bytes, not 4096 bytes.
  94.  
  95.  
  96. PROGRAM LOADING:
  97.     The application must be a .EXE or .COM file.  You can leave off the
  98. file extension and Shroom will try to find a matching .COM or .EXE file.
  99. Shroom searches for the application program first in the current directory,
  100. then in Shroom's home directory, and finally in the directories of the
  101. PATH environment string.
  102.  
  103.  
  104. SHROOM SWITCHES AND ARGUMENTS:
  105.     All text surrounded by square brackets, as in "[-hnv]", is optional.
  106. Switches can be given in any order, and can be in upper or lower case,
  107. and may be separated by spaces (or not). The space between a switch and
  108. its argument is optional, ie. you can say "-z800" or "-z 800".
  109. Although all our examples use dashes as the switch character, a slash
  110. can also be used: e.g. "Shroom /v /p ...".
  111.  
  112.  
  113. EXTENDING THE COMMAND LINE WITH @SWITCHFILE:
  114.     The DOS command line is normally limited to a paltry 127 characters.
  115. If that's not enough room to say what you want to say, then you can use
  116. the "switch" file to hold additional switches and arguments for Shroom.
  117. Shroom reads the switch file just as if it were part of the command line.
  118.  
  119.     For example,
  120.       If file FOO contains:  -t shell1, shell2 -p
  121.       Then the DOS command:  shroom -v @foo yourprog
  122.           Is equivalent to:  shroom -v -t shell1, shell2 -p yourprog
  123.  
  124.     The switch file can contain multiple lines.  End-of-lines are treated
  125. as space characters.  You can use multiple switch files on the command
  126. line (eg Shroom @sf1 @sf2) but you cannot call one switch file from
  127. within another (ie, no nesting).
  128.  
  129.     Please note: This feature is for extending Shroom's command line, not
  130. your application's.  Unfortunately the application program's command
  131. line is still limited to 127 or so characters (unless it supports its
  132. own method of getting around the limitation).
  133.  
  134.  
  135. NOVELL NETWARE:
  136.     If you are using Novell Netware, then you may also need to use the "-w"
  137. switch with Shroom, as in "shroom -w prog".  Many versions of Netware
  138. seem to close files unexpectedly if they see that there is free memory
  139. where there used to be a program.  When Shroom swaps out the appli-
  140. cation, Netware notices the memory is free and closes the network files
  141. that that application had open.  The "-w" switch causes Shroom to make
  142. a special call to Netware that disables the "file cleanup feature"
  143. during shell operations, thus keeping your network files open.
  144.  
  145.  
  146. ENVIRONMENT SIZE:
  147.     Many people have run into the following problem: you type the command
  148. "SET MYVAR=WHATEVER" and get back the message "Out of environment space."
  149. This occurs when a TSR is loaded or while a .BAT file is running. You get
  150. around this by adding a line like "SHELL=C:\COMMAND.COM /E:2000" to your
  151. CONFIG.SYS file, thus increasing the minimum environment space to 2000
  152. bytes. However, when you shell out from an application and then run a
  153. .BAT file, you find that the environment size has again been restricted
  154. and the CONFIG.SYS line has no effect.
  155.  
  156.     What you need is the amazing new "-z #" switch from Shroom. It causes
  157. Shroom to append the string " /E:#" to COMMAND.COM's command line, thus
  158. setting the desired minimum environment space for the new shell. Note
  159. that in DOS 3.0, # is the size in paragraphs. In later versions it is
  160. in bytes.
  161.  
  162.  
  163. REDIRECTING STDOUT:
  164.     Unless you give the -q switch, Shroom puts out a "Swapping..." message when
  165. shells occur.  If you give the -v switch, Shroom puts out even more lines.
  166. By default, both Shroom's output and the application's will go to the screen.
  167.  
  168.     If you say "Shroom -o File App" then the application's output still goes
  169. to the screen but Shroom sends its output to the specified file.  If you say
  170. "Shroom App > File" then both shroom and the application will send their output
  171. to the specified File.  If you want Shroom's output to go to the screen and
  172. the app's to a file, you can say "Shroom -o CON App > File".
  173.  
  174.     Note: with the "-o File" switch, if the file already exists then Shroom's
  175. output is appended to it.  We do not delete the previous file data.
  176.  
  177.  
  178. EXIT RETURN CODES:
  179.     Shroom exits immediately if it cannot load the application, returning
  180. an ERRORLEVEL of 254, unless you have changed the value with the "-e #"
  181. switch.  If it can load the application, then Shroom exits when the
  182. application does, and returns the application's exit code.
  183.  
  184.  
  185. SWAP FILE:
  186.     Shroom stores the application in a temporary swap file during the
  187. shell.  The swap file always has extension ".OOM".  The main part of
  188. its name is derived from the application name followed by some digits.
  189. E.g., "WP_000.OOM".  When you exit from the shell, Shroom reads the
  190. file back in and then deletes it.  Obviously, you should not delete,
  191. rename or otherwise modify the swap file while you are in the shell.
  192. If you crash the system while in the shell, then the swap file will
  193. still be there after you reboot (unless you were using a ram disk),
  194. and it is a good idea to delete it then.  The file is readonly so
  195. you will need to run attrib -r on it first.
  196.  
  197.     Shroom (among many other programs) looks for the environment variable
  198. TEMP at startup.  If TEMP is defined, then Shroom takes its definition
  199. as the default location of the swap file.  If TEMP is not defined, then
  200. the current directory becomes the default swap file location.  If you
  201. give the -s DRIVE:DIR switch on the command line, then that overrides
  202. the default location.  The swap file location is determined only once,
  203. during Shroom's startup.  Changing your current drive or directory while
  204. in the application or a shell will not affect where the swap file goes.
  205. Finally, if you have a ram disk with enough room, it makes an excellent
  206. home for the Shroom swap file.  It is fast and "self-deleting" if you
  207. crash the PC.
  208.  
  209.  
  210. SWAP FILE SIZE:
  211.     By default Shroom attempts to free up all memory "above" it in the
  212. DOS 640K.  Typical swap file sizes are 200K to 500K.  If the swap file
  213. is too big to fit on the disk, Shroom asks whether you want to perform
  214. the Shell operation anyway or cancel it.  Or you can use the "-p" option
  215. which tells Shroom to proceed with all Shell operations even if it can
  216. only do a partial swap.  If you want to limit the swap file size you
  217. can use the -m N switch.  For example, the command "shroom -m 125 prog"
  218. will limit the swap file size to 125000 bytes.
  219.  
  220.  
  221. TARGET LIST:
  222.     (Most people don't need to worry about this.)  When Shroom notices
  223. that a program is being shelled, it checks the name of that program
  224. against the target list. If it is in the list, then Shroom goes ahead
  225. and does its thing, swapping the application and freeing its memory.
  226. If the shelled program is not in the target list, then Shroom lets the
  227. program load and execute normally without any swapping.
  228.  
  229.     The purpose of the target list is to prevent unwanted swapping.  There
  230. are a few applications which "shell" their own overlays, and if Shroom
  231. swapped them then the overlays wouldn't have anyone to talk to!
  232.  
  233.     The default target list contains just your command shell, as defined
  234. by the COMSPEC environment string.  The -t switch is used to change the
  235. target list.  It takes a list of filenames separated by commas.  The file
  236. names are case independent and should not have drive or directory paths.
  237. The ~ (tilde) string can be used to refer to the COMSPEC definition.
  238. For example, "shroom -t ~, SUBPROG.EXE ..." would cause swappping on
  239. the default shell and when SUBPROG.EXE is spawned.  Typical shells are
  240. COMMAND.COM, 4DOS.COM, NDOS.COM and SH.EXE.
  241.  
  242.     Another special string is * (asterisk).  It is the wildcard target
  243. list, which causes Shroom to spawn on all shell operations.  It should
  244. be the only -t argument, as in: "shroom -p -t * -v ...".
  245.  
  246.     If the -x switch is given, then the target list is used to exclude
  247. rather than to include.  Eg, "shroom -xt myshell.exe myprog" tells
  248. Shroom to swap on all shell programs except myshell.exe.
  249.  
  250.  
  251. COMMAND LINE TARGET:
  252.     This switch is similar to (and even more complicated than) the -t
  253. switch.  It allows you to enable swapping based on the contents of the
  254. shelled program's command line, rather than on the program's name.
  255. When you give Shroom the switch "-c xyz", then swapping will occur only
  256. if the shelled program has the string "xyz" in its command line.  If you
  257. give Shroom the switch "-xc xyz", then swapping will occur only if the
  258. command line does NOT contain the string "xyz".
  259.  
  260.     The purpose of the -c and -xc switches is to handle the case where
  261. your app shells a program by passing it to COMMAND.COM.  For instance
  262. if the app needs to spawn the program CHILD.EXE, it can do it in two ways.
  263. It can spawn CHILD.EXE, or it can spawn COMMAND.COM with the command
  264. line "/c child".  When the latter method is used, there are actually
  265. two shell operations: the app spawns COMMAND.COM, which then spawns
  266. CHILD.EXE.  You can use "-xt child.exe" to prevent swapping on the
  267. second shell, but it won't prevent swapping on the first one.  To do
  268. that, you need to add the "-xc child" switch.  This causes Shroom to
  269. scan the command line of the spawned programs.  It would find "child"
  270. in the command line "/c child" and would thus not swap.
  271.  
  272.     The -c and -xc switches take a list of words as their argument.
  273. For example, "-xc fee,fie,foo" tells Shroom not to swap if the command
  274. line contains any of the strings "fee", "fie" or "foo".  In addition,
  275. the pattern matching of the strings is case independent.  It will also
  276. not swap if the command line contains "Fee", "FIE" or "fOo".
  277.  
  278.     You can see what command lines are being passed to shelled programs
  279. by using Shroom's "-v" switch.  Look for messages like:
  280.           SHROOM:  Execing shell "CL.EXE" with " -c foo.c".
  281.     
  282.  
  283. APPLICATIONS THAT DO "BACKGROUND PROCESSING":
  284.     You may have a communications package which allows you to initiate a
  285. file transfer and then shell out to do other things.  This will probably
  286. not work if the package was Shroom'ed, because the application is actually
  287. unloaded from memory (and from the interrupt vector table) during the
  288. shell.  The background processing code will not be there anymore!
  289.  
  290.  
  291. ENVIRONMENTAL IMPACT:
  292.     Shroom is processor (8086, 286, 386, etc) independent.  It does not do
  293. any floating point.  It doesn't care about or use expanded or extended
  294. memory (a future version will be able to swap to extended mem).  It works
  295. with DOS Extender (e.g. Pharlap) based applications.  It may work in the
  296. Windows, Desqview and other pseudo or real multi-tasking environments, but
  297. you're basically on your own (caveat sharer).
  298.  
  299.  
  300. LOADING TSR'S INSIDE SHELLS:
  301.     In general, it is not safe to load a TSR while shelled out of an
  302. application, unless you delete the TSR before exiting the shell.  A
  303. variety of memory and interrupt handling problems can occur.  This
  304. is true even when you are not using Shroom.  If you are using Shroom,
  305. then any TSR's that were loaded during the shell will be automatically
  306. unloaded when you return to the application.  If a TSR was loaded "high",
  307. then it will stay loaded high but may cause problems if it uses any
  308. interrupts that the application uses.  Shroom displays the message:
  309. "WARNING: Interrupt ## used by application, changed in shell." if that
  310. occurs.
  311.  
  312.  
  313. UNLOADING TSR'S INSIDE SHELLS:
  314.     The sequence in mind is: You Load a TSR, enter an application,
  315. shell out, then unload the TSR.  The main danger in doing this is that
  316. unloading the TSR may restore interrupt vectors that the application
  317. had remapped.  The chain would be changed from TABLE->APP->TSR->SYSTEM
  318. to TABLE->SYSTEM, thus "cutting out" the app.  Fortunately, Shroom is
  319. able to detect when this occurs.  If you see the message "WARNING: 
  320. Interrupt ## used by application, changed in shell", then that is what
  321. happened.  You should probably save your changes to a new temp file if
  322. possible, and exit the application.  You're not guaranteed to be able
  323. to do this, so be sure to hold your breath.
  324.  
  325.     You don't really need to know what interrupts are or understand any
  326. of the above.  The bottom line is: don't play with TSR's when shelled
  327. out of an application.  If you can't resist the urge to, then at least
  328. Shroom will provide some insurance by catching and attempting to deal
  329. with conflicts when they occur.
  330.  
  331.  
  332. REPORTING BUGS:
  333.     If Shroom is not working as advertised for you, please tell me about
  334. it and I'll try to fix it.  Shroom problems are usually due to conflicts
  335. with other software packages.  You should send a problem report via
  336. regular or electronic mail with a description of the malfunction and
  337. a listing of your CONFIG.SYS and AUTOEXEC.BAT files.  Use the switches
  338. "-v -o FILE" to create a log of the malfunctioning session.  You may
  339. also be asked to send a copy of the misbehaving application so that I
  340. can debug with it.  (It usually takes more time to obtain the software
  341. and/or reproduce the bug than it does to fix it.)
  342.  
  343. Shareware License - Displayed by the "-L" switch:
  344. -------------------------------------------------
  345.           ********** SHROOM SHAREWARE LICENSE **********
  346.  
  347.  This is a copyrighted software work which is distributed as shareware.
  348.  Under this license agreement you are granted the right to use Shroom
  349.  on all machines and environments that it supports.  You are also
  350.  free (and encouraged) to pass copies of this shareware on to others
  351.  as long as it is not for payment and not bundled with anything else
  352.  that is for payment.
  353.  
  354.  This copy of Shroom is intended for use with GIGO or WME BBS.  If you
  355.  are a registered user of either of these products, then the price to
  356.  register Shroom is only $15.  Please specify SITENAME, SERIAL NUMBER
  357.  and REGISTRATION NUMBER for GIGO/WME.  Otherwise, the registration fee
  358.  for Shroom is $25.  Please send check or money order to:
  359.  
  360.                Davis Augustine
  361.                P.O. Box 610
  362.                Sausalito, CA. 94966-0610
  363.  
  364.  Please include your name and postal or email address.  Also please mention
  365.  the Shroom version you are registering and how you obtained it.
  366.  
  367.  Commercial distribution licenses, source code and customized versions are
  368.  also available at reasonable rates.  Please write to the above address or
  369.  send me email at CompuServe id 72230,3053.  I would also appreciate any
  370.  comments, questions, suggestions or bug reports.  The latest Shroom release
  371.  can always be found in CompuServe forums IBMSYS, lib 3 and TAPCIS, lib 2.
  372.  
  373.  
  374.         ----------------------
  375.         |  REVISION HISTORY  |
  376.         ----------------------
  377.  
  378.  
  379. Changes in v2.4a (14nov93)
  380. --------------------------
  381.     Add -c and -xc to turn swapping on and off based on the
  382.     contents of the command line being shelled.  (Thanks, user DJ).
  383.  
  384.     Fix a bug where it didn't return CY on failed exec calls.
  385.     Could cause app to think the shell succeeded when it really
  386.     didn't, so it might not try another path.
  387.  
  388.  
  389. Changes in v2.3a (26feb93)
  390. --------------------------
  391.     Add @file switch to allow command line extension.  (Thanks to
  392.     users RTI and ML).
  393.  
  394.     Add -x switch for excluding shell programs from the swap list.
  395.     (Thanks to user ML).
  396.  
  397.     Improve error detection when figuring what to swap (not a bug).
  398.  
  399.  
  400. Changes in v2.1a (30aug92)
  401. --------------------------
  402.     Add help notes on stdout redirection.
  403.  
  404.     Say "swapping in" or "swapping out", not just "swapping".
  405.  
  406.     Have application (rather than Shroom) spawn the shell, if
  407.     possible.  Allows i/o redirection and exit code checking
  408.     by app to work better.
  409.  
  410.  
  411. Changes in v2.0a (24jun92)
  412. --------------------------
  413.     Add -w switch for Novell Netware workaround.  Keeps Novell from
  414.     closing network files that were opened by the swapped application(s).
  415.  
  416.     Add -m N switch to set maximimum swap file size to Nk.  (Thanks
  417.     to user MGZ).
  418.  
  419.     Change 'k' to mean 1000x, not 1024x.
  420.  
  421.     On partial swap, show actual size swapped back in, not the
  422.     attempted size.
  423.  
  424. Changes in v1.9d (26may92)
  425. --------------------------
  426.     Change to new mailing address.  Lower diskette shipping charges
  427.     from $25 to $15.
  428.  
  429. Changes in v1.9c (7mar92)
  430. --------------------------
  431.     Change nonsensical swap file names to app_###.OOM.  (Thanks to
  432.     users ML and RMB).
  433.  
  434.     Make swap file readonly.  (Thanks to users JB, ML, et al).
  435.  
  436.     Show DOS error codes in decimal instead of hex.
  437.  
  438.  
  439. Changes in v1.8k (15dec91)
  440. -------------------------
  441.     Fix shroom's exit code when -v switch used.  Was always exiting
  442.     with ERRORLEVEL 0 when -v was given.  (Thanks to user B).
  443.  
  444.  
  445. Changes in v1.8j (30oct91)
  446. -------------------------
  447.     Allow tilde in target list to indicate COMSPEC file.
  448.  
  449.     Add -o F switch to redirect output to a file.  (Thanks to user RE).
  450.  
  451.  
  452. Changes in v1.8g (14sep91)
  453. -------------------------
  454.     Use TEMP environment string as default swap file location.
  455. Previously we used the current directory.  You still use the "-s PATH"
  456. switch to override the default.  (Thanks to users LC, ML).
  457.  
  458.     Start application with full path name, not just command name
  459. given (eg. C:\BIN\COOLPROG.EXE, not COOLPROG.EXE).  Makes Clipper
  460. work (was giving "overlay not found" error).  (Thanks to user LM).
  461.  
  462.     Make it work better with systems (such as MKS) where / (slash)
  463. is the path separator, instead of backslash.  Wasn't finding app if
  464. it was in same dir as Shroom.
  465.  
  466.     Detect and warn user when interrupts used by the application
  467. have been changed in the Shell, apparently by unloading a TSR.  Improve
  468. TSR detection and deciding when to unload it and when not.
  469.  
  470.     Changes to interrupt handling to work better with PC NFS and
  471. some other software.
  472.  
  473.     Fix application startup so it is not fooled by APPEND.  If a
  474. directory containing app was APPENDED, Shroom would think app was in
  475. the current directory.  (Thanks to user DG).
  476.  
  477.     Add sections on TSR's and reporting bugs to notes.
  478.  
  479.     Make -q suppress startup message, too.  (For user ML).
  480.  
  481.     Show command being passed to app, besides app name (unless -q).
  482.  
  483.     If verbose, show exit codes from shells and from app.  Also
  484. if verbose, show swap file location at startup.
  485.  
  486.  
  487. Changes in v1.7d (14aug91)
  488. --------------------------
  489.     Fix problem with -z # switch when comline is not empty.  Was
  490. overwriting existing comline instead of inserting in front of it.
  491. (Thanks to user LH).
  492.  
  493.  
  494. Changes in v1.7b (6aug91)
  495. --------------------------
  496.     Fix problem with Fortran programs.  Was causing "Floating point
  497. not loaded" error at application load time.  Hey, don't blame me, the
  498. bug is in the Fortran startup code!  (Thanks to users RS and DF).
  499.  
  500.     Disable control-C during swapping.  Would cause system hang and
  501. other strange behavior (especially by the user!).
  502.  
  503.     Bring back group shareware registration, by popular demand.
  504.  
  505.  
  506. Changes in v1.6d (21jul91)
  507. --------------------------
  508.     Fix state saving and restoring to work better with other TSR's.
  509. With a few TSR's, system would reliably hang when you exited the
  510. application back to DOS, if a shroom swap occurred in the application.
  511. (Thanks to user ML)
  512.  
  513.  
  514. Changes in v1.6c (22jun91)
  515. --------------------------
  516.     Get default target list from the COMSPEC environment string. So, if
  517. you use a shell other than COMMAND.COM, Shroom will automatically recognize
  518. it.  (Thanks to user MB)
  519.  
  520.     Fix problem in 1.6b, where swapping may have not been done with
  521. some applications.  Was failing to handle lowercase shell names correctly.
  522.  
  523.  
  524. Changes in v1.6b (14jun91)
  525. --------------------------
  526.     Only swap out specified shell programs.  Default list is COMMAND.COM.
  527. Add -t switch to specify others. (Thanks to user LH)
  528.  
  529.     Add -z switch to allow increasing the environment space of
  530. COMMAND.COM. (Thanks to user DM)
  531.  
  532.     The -v switch as part of its verbosity shows the shell program being
  533. executed and its command line.
  534.  
  535.  
  536. Changes in v1.5d (3may91)
  537. --------------------------
  538.     Search for the application in Shroom's home directory, too.
  539. (Thanks to user CS)
  540.  
  541.  
  542. Changes in v1.5c (26apr91)
  543. --------------------------
  544.     Fix a bug in 1.5b, when checking for unswappable blocks.  Caused
  545. some applications to swap zero bytes.  (Thanks to user JG)
  546.  
  547.     Mention CompuServe home library in license.
  548.  
  549.  
  550. Changes in v1.5b (29mar91)
  551. --------------------------
  552.     Fix a bug in swapping.    Leave alone any high blocks that are
  553. allocated by TSR's.  This caused shells to hang when Shroom was used
  554. with some software (such as QCache).  (Thanks to user RM)
  555.  
  556.  
  557. Changes in v1.5a (24mar91)
  558. --------------------------
  559.     Add -q switch for quiet mode.  Suppresses the "SHROOM: swapping..."
  560. messages but still lets error messages through.
  561.  
  562.     Add -p switch to force partial swaps.  If Shroom is unable to
  563. swap all of the application out, it normally asks you whether you want
  564. to proceed with the shell or return to the application.  With the -p
  565. switch, it always proceeds with the shell without asking you.
  566.  
  567.     Add -e errorlevel switch to allow you to specify the exit value
  568. returned by Shroom if it is unable to load the application.  This allows
  569. you to choose a value which does not conflict with those returned by
  570. your other applications.  This feature is only useful to those who make
  571. serious use of "if ERRORLEVEL..." statements in DOS batch files.
  572. (Thanks to user WB)
  573.  
  574.     Add -n switch to show program notes, and add more information
  575. to the notes.  There is now a help screen (-h), a shareware license
  576. screen (-l) and a notes screen (-n).
  577.  
  578.     Properly delete the temporary swap file when the user aborts
  579. the shell on disk full error (ie. when you pick 'A' to return to the
  580. application).  In previous versions of Shroom, the file was never
  581. deleted, thus leaving temporary files with names like "0A982331" lying
  582. around.
  583.  
  584.  
  585. Changes in v1.4d (14mar91)
  586. --------------------------
  587.     Shroom returns the ERRORLEVEL of the application program which
  588. was executed.  If the application fails to execute, then Shroom returns
  589. an ERRORLEVEL of 2.  Previously, Shroom always returned ERRORLEVEL 0
  590. if the application was successfully executed.
  591.  
  592.