home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / util1 / 4dos301.lzh / UPDATE30.DOC < prev    next >
Text File  |  1990-05-22  |  56KB  |  1,335 lines

  1.  
  2.                            4DOS Update Documentation
  3.  
  4.                              Version 3.01, 5/22/90
  5.  
  6.  
  7.    Copyright 1989, 1990, J.P. Software.  All Rights Reserved.  Published by
  8.    J.P. Software, P.O. Box 1470, E. Arlington, MA 02174 USA, (617) 646-
  9.    3975.
  10.  
  11.    This file provides:
  12.  
  13.       * General information on features changed between version 2.2 and
  14.       3.0;
  15.  
  16.       * Details on features changed and bug fixes between versions 3.0 and
  17.       3.01;
  18.  
  19.       * Corrections to the version 3 manual, due to either typographical
  20.       errors or new features added after the manual went to press.
  21.  
  22.    Changes between versions 2 and 3 of 4DOS were so extensive that we can
  23.    only note them here.  Information here about those changes is NOT in-
  24.    tended to be complete documentation on their syntax, operation, or
  25.    usage, but only to introduce them to experienced users.  Read the appro-
  26.    priate part of the manual before using any new feature of 4DOS.
  27.  
  28.    The following marks are used to identify items in this file:
  29.  
  30.       -->     CAUTION:  This change may require modifications to your ex-
  31.               isting batch files, aliases, commands, or common methods of
  32.               using 4DOS.  Check these carefully when replacing an earlier
  33.               version of 4DOS with 4DOS 3.01.
  34.  
  35.       3.01    This item is new or has been modified for version 3.01. 
  36.               Items without this mark explain changes between versions 2.2
  37.               and 3.0.
  38.  
  39.       [p nn]  This item corrects or adds to the information in the version
  40.               3 manual, on page "nn".  Some manual corrections have been
  41.               made since version 3 was released, so some of these changes
  42.               may already be present in later versions of the manual.
  43.  
  44.    We have made every effort to insure that this file is as accurate as
  45.    possible, but we cannot guarantee that every single change is included.
  46.  
  47.    This file is formatted at 58 lines per page, and contains form feeds and
  48.    page footers.  It can be printed properly on most PC printers using the
  49.    command:
  50.  
  51.               copy update30.doc prn
  52.  
  53.    Printing it with a program that formats the pages is not likely to work
  54.    due to the formatting included in the file.
  55.  
  56.  
  57.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 1
  58.  
  59.  
  60.                                Table of Contents
  61.  
  62.  
  63.    Installation and Configuration  . . . . . . . . . . . . . . . . . .    4
  64.       General Enhancements . . . . . . . . . . . . . . . . . . . . . .    4
  65.       Automatic Installation . . . . . . . . . . . . . . . . . . . . .    4
  66.       Command Line Options . . . . . . . . . . . . . . . . . . . . . .    4
  67.  
  68.    Features and Usage  . . . . . . . . . . . . . . . . . . . . . . . .    7
  69.       General Features . . . . . . . . . . . . . . . . . . . . . . . .    7
  70.       Command Line Editing . . . . . . . . . . . . . . . . . . . . . .    8
  71.       Command Parsing  . . . . . . . . . . . . . . . . . . . . . . . .    8
  72.       Aliases  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  73.       Batch Files  . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  74.       I/O Redirection  . . . . . . . . . . . . . . . . . . . . . . . .   10
  75.       Environment Variables  . . . . . . . . . . . . . . . . . . . . .   10
  76.       Technical Information  . . . . . . . . . . . . . . . . . . . . .   12
  77.  
  78.    Commands  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  79.       ALIAS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  80.       ATTRIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  81.       BEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  82.       CD and CDD . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  83.       CLS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  84.       COLOR  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  85.       COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  86.       CTTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  87.       DEL  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  88.       DELAY  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  89.       DESCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  90.       DIR  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  91.       DRAWBOX, DRAWHLINE, DRAWVLINE  . . . . . . . . . . . . . . . . .   15
  92.       ESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   16
  93.       FOR  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   16
  94.       GLOBAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   16
  95.       GOTO and GOSUB . . . . . . . . . . . . . . . . . . . . . . . . .   16
  96.       HELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   16
  97.       HISTORY  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   18
  98.       IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   18
  99.       IFF  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   19
  100.       INKEY:   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   19
  101.       INPUT  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   19
  102.       KEYSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . .   19
  103.       LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   20
  104.       LOADBTM  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   20
  105.       LOG  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21
  106.       MEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21
  107.       MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21
  108.       PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21
  109.       PROMPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21
  110.       PUSHD / POPD . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  111.       QUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  112.       REM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  113.  
  114.  
  115.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 2
  116.  
  117.       REN  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  118.       SCRPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  119.       SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  120.       SET  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22
  121.       SETDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   23
  122.       SWAPPING . . . . . . . . . . . . . . . . . . . . . . . . . . . .   23
  123.       TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   23
  124.       UNSET  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   23
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 3
  174.  
  175.  
  176.    Installation and Configuration
  177.    ------------------------------
  178.  
  179.    This section discusses changes in the way 4DOS is installed and config-
  180.    ured on your system.  It is not an explanation of how to install your
  181.    upgrade to version 3.01 (for that see README.DOC).  For more information
  182.    on new features of version 3.0 see pages 9 - 26 of the manual.
  183.  
  184.  
  185.       General Enhancements:
  186.  
  187.           The 4DOS loader (4DOS.COM) has been completely rewritten.  It now
  188.           takes only 3K of low memory (less than COMMAND.COM!).
  189.  
  190.           4DOS now supports swapping to XMS extended memory.
  191.  
  192.           The resident portion of 4DOS and the master environment can now
  193.           be loaded high if your hardware and software support XMS Upper
  194.           Memory Blocks (UMBs).  If both options are used 4DOS's low-memory
  195.           footprint can be reduced to as little as 256 bytes.
  196.  
  197.           4DOS.COM checks processor types more carefully when loading the
  198.           EXE file.  On NEC V20/V30 systems it will now load 4DOS286.EXE,
  199.           which is compiled to run properly on the V20 and V30.
  200.  
  201.           The loader now displays the size of the swap area in K.
  202.  
  203.    3.01   Disk swapping should no longer cause occasional system hangs if
  204.           the Ctrl-C or Ctrl-Break key is hit while 4DOS is swapping itself
  205.           in from disk (i.e. when exiting an application).
  206.  
  207.    3.01   CLS, LIST, and SELECT are no longer affected by a video BIOS bug
  208.           in old IBM PCs.
  209.  
  210.  
  211.       Automatic Installation:
  212.  
  213.           [p 13] The command to start automatic installation has been
  214.           changed to:
  215.  
  216.                     x:install x y
  217.  
  218.           where "x" is the drive the 4DOS disk is in, and "y" is the drive
  219.           on which you want to install 4DOS.  See README.1ST for more de-
  220.           tailed instructions if you need them.
  221.  
  222.  
  223.       Command Line Options:
  224.  
  225.           All the items below refer to information on pages 21 - 23 of the
  226.           manual.
  227.  
  228.           General changes:
  229.  
  230.  
  231.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 4
  232.  
  233.    -->        The minimum and default values for history and environment
  234.               size have been changed slightly.
  235.  
  236.    3.01       [p 21-23]  Either / or - may be used as the switch character
  237.               on the 4DOS command line (eg SHELL=4DOS -S:E instead of /S:E,
  238.               etc.).
  239.  
  240.           Option files (@filename):
  241.  
  242.               The new @filename option allows you to put 4DOS options into
  243.               a disk file instead of specifying them on the SHELL= line in
  244.               CONFIG.SYS.  This gets around a bug in DOS which limits the
  245.               length of the SHELL= line.
  246.  
  247.               [p 21]  The file specified in the "@filename" option can have
  248.               more than one line, and is limited to a total of 255 charac-
  249.               ters in the file, not 128.  A file invoked with @filename can
  250.               have another @filename inside it.  Wherever @filename occurs,
  251.               all options placed after it are ignored, so it must be the
  252.               last item present.
  253.  
  254.           Alias size (/A):
  255.  
  256.    -->        Aliases are now in a separate block, whose size in bytes is
  257.               defined with the new SHELL and 4DSHELL parameter /A:nnnn. 
  258.               You will need to add this parameter, and probably reduce your
  259.               environment size accordingly.
  260.  
  261.               [p 21]  The /A switch supports the same incremental syntax
  262.               used with /E, i.e. /A+n.  When used in 4DSHELL this allows
  263.               you to guarantee a specified amount of free alias space in
  264.               secondary shells.
  265.  
  266.           Environment size (/E):
  267.  
  268.    -->        4DOS now defaults to a memory-resident master environment
  269.               (formerly selected with the /M command line option).  The /M
  270.               switch is therefore obsolete, but will still be accepted.  It
  271.               is equivalent to /E.
  272.  
  273.               [p 21]  /E:nnnn may also be followed by S (/E:nnnnS) to swap
  274.               the master copy of the environment; this is equivalent to the
  275.               4DOS version 2 /E option.  This will save a small amount of
  276.               low memory, but may not be compatible with all applications,
  277.               and will not work with any application that needs to modify
  278.               the master environment.
  279.  
  280.               /E:nnnn may be followed by U (/E:nnnnU) to load the master
  281.               environment into a UMB in high DOS memory.  This switch is
  282.               subject to the same compatibility restrictions as /U (below).
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 5
  290.  
  291.           Reduced swap size:
  292.  
  293.               [p 22]  4DOS will normally reduce the space used to swap a
  294.               secondary shell by retrieving static information from the
  295.               primary shell's swap area.  This reduces secondary shell swap
  296.               size from 68K or more to about 20K.  This feature will not
  297.               work if the total of your alias, history, and environment
  298.               sizes in the secondary shell is larger than that specified
  299.               for the primary shell, or if the size of DOS memory has been
  300.               reduced when the secondary shell is started (e.g. by a pro-
  301.               gram like DESQView that reserves some memory at the top end
  302.               of DOS memory).  In such cases secondary shells will require
  303.               a full-size swap area.  The size of the swap area is dis-
  304.               played in the "swapping initialized (nnK)" message when 4DOS
  305.               starts.
  306.  
  307.           Disk swapping (/S:D):
  308.  
  309.    3.01       [p 22]  The default location for disk swap files in secondary
  310.    -->        shells is now in the root directory of the drive specified in
  311.               the COMSPEC environment variable (the drive where 4DOS.COM is
  312.               stored).  If you want disk swap files to go to another drive
  313.               or directory, use the "/S:Bd:\path" or "/S:Dd:\path" settings
  314.               in the 4DSHELL environment variable (see page 25 of the manu-
  315.               al).  This should cut down on swap file clutter, yet leave
  316.               you with complete control over swap file location.  
  317.  
  318.           Load high (/U):
  319.  
  320.               The new /U switch requests that 4DOS load its resident por-
  321.               tion into an Upper Memory Block (UMB) at the high end of DOS
  322.               memory, reducing low memory usage to 256 bytes.  
  323.  
  324.    3.01       [p 23]  The /U switch requires 386MAX, QRAM, or QEMM 5.0 or
  325.               above.  It may not be compatible with all other software
  326.               products.  See COMPAT.DOC for full details on compatibility.
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 6
  348.  
  349.  
  350.    Features and Usage
  351.    ------------------
  352.  
  353.    This section discusses changes in 4DOS features and usage which are not
  354.    specific to a particular command and which are not related to installa-
  355.    tion and boot.
  356.  
  357.  
  358.       General Features:
  359.  
  360.    -->    Commands that accept multiple arguments (COPY, MOVE, DEL, etc.)
  361.           no longer abort on an error - they continue processing the re-
  362.           mainder of the arguments, then return an error.  For example, DEL
  363.           *.BAK will continue when a read-only file exists among the .BAK
  364.           files and cannot be deleted.
  365.  
  366.           The ctrl-C / ctrl-Break handler has been cleaned up and should be
  367.           more reliable.
  368.  
  369.    -->    4DOS supports the DOS 4.0 DOSSHELL command without the use of
  370.           special batch files, COMMAND.COM, etc.
  371.  
  372.           The program name passed to DOS for external programs is now set
  373.           to upper case.  This should reduce errors from application pro-
  374.           grams trying to find their files and other similar problems.
  375.  
  376.    -->    The date, time, and thousands separator characters are now set by
  377.           the default country definition (in DOS 3+).  Previously the coun-
  378.           try definition only affected the date and time format.
  379.  
  380.           [p 29]  The command history is now automatically passed to sec-
  381.           ondary shells.  It is passed in one direction only, i.e. addi-
  382.           tional commands entered in the secondary shell will not be passed
  383.           back to the primary shell.  To disable this option, place a HIS-
  384.           TORY /F command in your 4START file.
  385.  
  386.    3.01   4DOS now has better support for non-English characters in file-
  387.           names, environment variables, and aliases.
  388.  
  389.    3.01   Most of the changes in version 3.0 to allow shareable file access
  390.    -->    on networks have been removed, because some networks and a few
  391.           popular programs (e.g. SHARE and FASTOPEN) couldn't handle them
  392.           properly.  SHARE/LAN support is now provided where possible, but
  393.           is avoided in many places where it has been found to cause trou-
  394.           ble.  This change should eliminate most or all I/O redirection
  395.           problems on networks.
  396.  
  397.    3.01   A number of changes have been made to increase 4DOS's execution
  398.           speed, and reduce its size slightly.  Speed improvements are
  399.           primarily in the areas of file access (particularly .BAT files),
  400.           and environment variable and alias expansion.  They may not be
  401.           noticeable on higher-speed systems.
  402.  
  403.  
  404.  
  405.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 7
  406.  
  407.    3.01   4DOS can now correctly handle text files (.BAT or .BTM files,
  408.           files to be LISTed or TYPEd, etc.) which have CR/LF, CR only, or
  409.           LF only at the end of each line.  Previously not all of these
  410.           line terminators worked correctly.
  411.  
  412.  
  413.       Command Line Editing:
  414.  
  415.           The ^D (delete) command now displays the previous history command
  416.           after deleting the current one.
  417.  
  418.           A new command, ^E (end), moves to the last entry in the history
  419.           list and displays it.
  420.  
  421.           Filename completion (F9 / F10 keys) has two changes:
  422.  
  423.               * The F8 key will now return the previous matching filename
  424.               if you go past the filename you want in the list.
  425.  
  426.    -->        * When scanning the directory for filename completion 4DOS
  427.               now starts with the name you type (if any) and appends a
  428.               "*.*" if no extension is given (as it used to), or a "*" if
  429.               an extension is given (that's the new part).  This makes
  430.               names like "FILE.E" expand as "FILE.E*".
  431.  
  432.    3.01   [p 28]  You can now enter characters that would normally be in-
  433.           terpreted by the line editor as a command (e.g., Ctrl-D or Ctrl-
  434.           K).  To do so precede the character with an ASCII 255 (hold down
  435.           the ALT key and enter 255 on the numeric keypad, then release the
  436.           ALT key).  To enter the ASCII 255 itself into the line, you must
  437.           enter it twice.
  438.  
  439.    3.01   The cursor shape will now be changed properly when you hit the
  440.           Ins key to switch editing modes.  Previously if SETDOS specified
  441.           a block cursor in the default mode it would not be changed to an
  442.           underline when Ins was hit.
  443.  
  444.  
  445.       Command Parsing:
  446.  
  447.           The command line parser has been completely rewritten.  (The
  448.           parser is the part of 4DOS that reads your commands and analyzes
  449.           them for aliases, environment variables, program names, switches,
  450.           etc.).  It now supports multiple commands and redirection more
  451.           gracefully.  Specific changes are listed below:
  452.  
  453.    -->        * When entering multiple commands on the line, each command
  454.               is parsed just before it is executed.  Previously all com-
  455.               mands on the line were parsed before any of them were execut-
  456.               ed.  
  457.  
  458.    -->        * As a result, environment variable and alias changes made in
  459.               one command now take effect immediately, and will affect the
  460.               parsing of commands later on the same line.  Previously these
  461.  
  462.  
  463.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 8
  464.  
  465.               changes did not take effect until the entire line had been
  466.               parsed.
  467.  
  468.    -->        * EXCEPT, FOR, GLOBAL, IF, and SELECT now accept aliases as
  469.               the command argument.
  470.  
  471.           Filename parsing has been modified to allow a forward slash ("/")
  472.           as a path separator in most places.  However commands which use
  473.           "/" for switches may still get confused if you use this con-
  474.           struct.
  475.  
  476.    -->    "Whitespace" (delimiter) characters (;=,) following the command
  477.           name are no longer skipped for the first command line argument.
  478.           This allows commands like "XYZ,,,,," to pass white space charac-
  479.           ters like the comma correctly to an external program.
  480.  
  481.           You can disable the saving of a specific command to the history
  482.           list by prefacing the command with "@".
  483.  
  484.    -->    Filenames ending with a "\" are now assumed to be directory
  485.           names, i.e., "C:\4DOS\" is equivalent to "C:\4DOS\*.*".  This
  486.           allows you to force 4DOS to consider something to be a directory
  487.           name rather than a file name if there may be ambiguity.
  488.  
  489.    -->    Alias expansion will now take place even when the first item on
  490.           the line is an environment variable.  Previously executing "%var"
  491.           as a command would not work when the variable contained an alias
  492.           name.
  493.  
  494.           ECHOing of the command line now occurs before piping.  This al-
  495.           lows commands like "echo y | del *.*" to work when ECHO is on.  
  496.  
  497.  
  498.       Aliases:
  499.  
  500.    -->    Alias expansion has been changed slightly.  Previously, if you
  501.           had variables in an alias (%1, %2, ...) then once variable sub-
  502.           stitution was complete 4DOS would discard the remainder of the
  503.           command line.  Now, 4DOS discards the command line up to and
  504.           including the highest referenced variable, and appends the rest
  505.           of the line to the end of the expanded command.
  506.  
  507.    3.01   Fixed a bug in alias expansion which occurred when a "%" was the
  508.           last character on the line.
  509.  
  510.  
  511.       Batch Files:
  512.  
  513.           A new extension to support "in memory batch files" has been added
  514.           (.BTM = "batch to memory").  See pages 33 - 34 of the manual for
  515.           details.
  516.  
  517.           4START can now be a .BAT or .BTM file.
  518.  
  519.  
  520.  
  521.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                        page 9
  522.  
  523.    -->    Batch file variable %0 now returns the batch file name as it was
  524.           entered on the command line, in upper case, just like
  525.           COMMAND.COM.  This should fix compatibility problems with some
  526.           installation batch files.
  527.  
  528.           The %# variable has been added to batch files.  It returns the
  529.           number of command line arguments (%1 - %n).
  530.  
  531.    3.01   See the commands section below for information on the new LOADBTM
  532.           command, which allows any batch file to work as a BTM file some
  533.           or all of the time.
  534.  
  535.    3.01   [p 33-34]  Batch files can now be nested 6 levels deep (the
  536.    -->    previous limit was 4).
  537.  
  538.  
  539.       I/O Redirection:
  540.  
  541.    -->    [p 43-44]  Redirection is now fully nestable.  For example, in-
  542.           voking a batch file XYZ with "XYZ > OUT.DAT" will redirect all
  543.           output from the batch file to OUT.DAT unless additional redirec-
  544.           tion is encountered within the batch file.
  545.  
  546.    -->    The EXCEPT, FOR, GLOBAL, and SELECT commands now handle I/O redi-
  547.           rection when processing begins for the second command (previously
  548.           it was handled when the EXCEPT, FOR, GLOBAL, or SELECT was pro-
  549.           cessed).  In FOR, this allows you to redirect output to a file
  550.           whose name depends on the FOR variable, for example:
  551.  
  552.                     for %i in (s1 s2 s3) dir \%i\*.* > %i.lst
  553.  
  554.           Redirection of STDERR only has been added.
  555.  
  556.    3.01   4DOS now checks for duplicate redirection (i.e., "DIR > 1.DAT >
  557.           2.DAT").  Previously duplicate redirection could hang the system.
  558.  
  559.    3.01   The system will no longer hang if a command specifies input redi-
  560.           rection after output redirection.
  561.  
  562.  
  563.       Environment Variables:
  564.  
  565.    -->    VERY IMPORTANT:  The 4DOS internal variables (CWD, CWDS, DOSVER,
  566.           etc.) are now prefixed with an underscore (_).  This should re-
  567.           duce conflicts with your own environment variables of the same
  568.           name.  You must modify any batch files or aliases which use these
  569.           variables or they will not work properly with 4DOS 3.0.  The only
  570.           variables 4DOS uses which are NOT prefixed with an underscore are
  571.           the ones which are actually inserted in the environment:  PATH,
  572.           COMSPEC, 4DSHELL, TMP, etc.
  573.  
  574.           The new syntax %[varname] will accept any sequence of characters
  575.           as a valid environment variable name for expansion.  This will
  576.           override both the assumption that a variable is a batch or alias
  577.  
  578.  
  579.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 10
  580.  
  581.           argument if it starts with a digit, and the restrictions on what
  582.           characters are normally considered part of a variable name.
  583.  
  584.           The '$' character has been added to the valid variable name char-
  585.           acter list.
  586.  
  587.    3.01   [p 40]  In order to support subtraction in the new %@EVAL func-
  588.    -->    tion (see below) 4DOS will no longer accept a "-" in the name of
  589.           an environment variable to be expanded, unless the name is en-
  590.           closed in brackets [].
  591.  
  592.    -->    Many new internal variables have been added.  An up to date list
  593.           of all variables includes those listed in the manual, plus those
  594.           listed below.
  595.  
  596.    3.01   [p 41]  Three new internal variables have been added:
  597.  
  598.                     %_dow          The day of the week as a string (Mon,
  599.                                    Tue, etc.)
  600.                     %_rows         The height of the screen
  601.                     %_columns      The width of the screen
  602.  
  603.    -->    Variables you insert into the environment with SET or in any
  604.           other way now override 4DOS internal variables of the same name
  605.           (%_CWD, %_DATE, etc.).
  606.  
  607.           [p 42]  A new internal "function variable" type has been added. 
  608.           These functions allow you to parse strings, perform arithmetic,
  609.           etc.  See the manual and items below for full details.  There are
  610.           a few minor errors or points which are not clear in the list of
  611.           variable functions in some versions of the manual:
  612.  
  613.               * When using variable functions they must be preceded (and
  614.               optionally followed) by a percent sign, like all other envi-
  615.               ronment variables.  For example the "ext" function is refer-
  616.               enced as %@ext[filename] or as %@ext[filename]%.
  617.  
  618.               * The correct spelling for the string length function is
  619.               "%@len", not "%@length".
  620.  
  621.               * The %@line function is missing from early copies of the
  622.               manual.  This function returns the nth line of a file.  The
  623.               first line of the file is numbered 0.
  624.  
  625.               * In the %@substr function, the first character is numbered
  626.               0, and the correct syntax is "%@substr[string,start,length]"
  627.               not "%@substr[string,start,end]".
  628.  
  629.    3.01   [p 42]  A new function, %@eval, has been added.  The syntax is:
  630.  
  631.                     %@eval[expression]
  632.  
  633.           Where "expression" is any arithmetic expression.  The expression
  634.           can include any of the following elements:
  635.  
  636.  
  637.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 11
  638.  
  639.               parentheses, which may be nested
  640.               unary + or - operators
  641.               multiplication and division operators:  *, /, and %% (modulo)
  642.               addition and subtraction operators:  + and -
  643.               environment variables, variable functions, and constants
  644.  
  645.           The elements of an expression are processed with the precedence
  646.           shown above.  For example, 5*3+2 is treated as (5*3)+2 rather
  647.           than 5*(3+2).  Examples of the use of %@eval are:
  648.  
  649.               Increment a variable:  set a=%@eval[%a+1]
  650.  
  651.               Perform environment variable arithmetic:
  652.                     set c=%@eval[(%a*2) + (%@len[%b]-5)*7]
  653.  
  654.               Evaluate expressions in IF:
  655.  
  656.                     if %@eval[%@substr[%_time,0,2] %% 12] == 0 echo 12:00!
  657.  
  658.               Set up a simple command line calculator:
  659.  
  660.                     alias calc `echo The answer is:  %@eval[%&]`
  661.  
  662.    3.01   [p 42]  Another new function, %@INDEX[string1,string2] returns
  663.           the position of string2 within string1 (string2 can be as small
  664.           as a single character).  The first position in string1 is num-
  665.           bered 0.  If there is no match, the function returns -1.
  666.  
  667.    3.01   [p 42]  When expanding environment variables 4DOS will display a
  668.           "Variable loop" error if you nest variable functions too deep, or
  669.           define variables which refer back to themselves.
  670.  
  671.  
  672.       Technical Information:
  673.  
  674.           (All items here go with the technical information on page 149 of
  675.           the manual.)
  676.  
  677.           4DOS.COM has been modified to set the PSP memory size, rather
  678.           than relying on DOS to do it properly.  This allows 4DOS's swap-
  679.           ping mode to work properly in the OS/2 compatibility box.
  680.  
  681.           The critical error and ctrl-C / ctrl-break handlers are now in
  682.           low memory all the time.  This should solve some compatibility
  683.           problems with programs that wanted these handlers to be in low
  684.           memory and/or to have their addresses fixed, rather than changing
  685.           each time an application was run.  
  686.  
  687.           4DOS now hooks interrupt 2E (in the primary shell only).  Some
  688.           programs use this to find the root command processor and/or glob-
  689.           al master environment.  Note 4DOS does NOT process INT 2E in any
  690.           way, it just returns.  But it does hook it.
  691.  
  692.  
  693.  
  694.  
  695.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 12
  696.  
  697.    3.01   4DOS.COM now closes file handles 5 - 29 when it starts.  This
  698.           should solve problems with programs that pass open file handles
  699.           to a secondary shell.
  700.  
  701.    3.01   4DOS now generates two different INT 2F calls to allow TSRs to
  702.           tell when 4DOS is back at the prompt.  These calls have AX =
  703.           D44Eh.  The first occurs immediately before displaying the
  704.           prompt, with BX = 0; the second occurs after displaying the
  705.           prompt and immediately before accepting keyboard input, with BX =
  706.           1.  Any routine intercepting these calls should preserve at least
  707.           the SI, DI, BP, SP, DS, ES, and SS registers.
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 13
  754.  
  755.  
  756.    Commands
  757.    --------
  758.  
  759.    This section describes the changes made to specific commands.  Note that
  760.    some commands are also affected by the general changes in the "features
  761.    and usage" section above.
  762.  
  763.           ALIAS:  Lines beginning with a colon (":") are now ignored in
  764.           ALIAS /R files; this allows you to add comments to the files.
  765.  
  766.    3.01   ALIAS:  ALIAS /R can now read multiple files, for example:
  767.  
  768.                     alias /r alias1 alias2 alias3
  769.  
  770.    -->    ATTRIB:  No longer changes subdirectory attributes unless the new
  771.           /D(irectory) switch is used.
  772.  
  773.           BEEP:  Now uses the default duration of 2/18 second if no dura-
  774.           tion is specified.  Will no longer hang with the speaker on when
  775.           a task switch occurs in a multitasking system (DESQView, VM/386,
  776.           etc.).
  777.  
  778.           CD and CDD:  Added support for Netware-like arguments "..." to
  779.           change to the directory two levels up, "...." to go three levels
  780.           up, etc.
  781.  
  782.    3.01   [p 57-58]  CD and CDD:  Modified to allow forward slashes (/) in
  783.           path names.
  784.  
  785.           CLS:  Now allows color specification if an ANSI driver (ANSI.SYS
  786.           or equivalent) is installed, e.g. CLS BRIGHT WHITE ON BLUE.
  787.  
  788.           COLOR:  This is a new command to set the screen colors.  You must
  789.           have an ANSI driver (ANSI.SYS or equivalent) loaded.
  790.  
  791.    -->    COPY:  Three switches have been added:  /Q(uiet) to turn off the
  792.           display of files copied, /R(eplace) to prompt before overwriting
  793.           an existing file, and /U(pdate) to copy the file only if the
  794.           target doesn't exist or is older than the source.  Also /A and /B
  795.           are now COMMAND.COM-compatible; see the manual for exact details.
  796.  
  797.    3.01   [p 62-64]  COPY:  There are several changes:
  798.  
  799.               Problems with appending files in binary mode have been fixed.
  800.  
  801.               The way that COPY accesses files has been modified to mini-
  802.               mize or eliminate problems with the MS-DOS APPEND command.
  803.  
  804.               The /R and /U switches are now ignored if the target is a
  805.               device.
  806.  
  807.               A ^Z (end of file mark) is now properly added to the target
  808.               file when it is in ASCII mode.
  809.  
  810.  
  811.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 14
  812.  
  813.    -->    CTTY:  Now uses the DOS get line call (INT 21h function 0Ah) to
  814.           get input.  This should permit crude line editing with the back-
  815.           space and ESC keys.
  816.  
  817.           DEL:  Two switches have been added.  /Q(uiet) turns off the dis-
  818.           play of files deleted.  /Y(es) skips the "Are you sure" prompt
  819.           for commands like "DEL *.*" -- use it with caution!.
  820.  
  821.    3.01   [p 66]  DEL:  Speed has been improved somewhat, especially on
  822.           non-cached disks.
  823.  
  824.           DELAY:  This is a new command.  It waits specified number of
  825.           seconds and then continues; it can be used to delay for an exter-
  826.           nal event in a batch file.
  827.  
  828.    -->    DESCRIBE:  This command now lists only normal and read-only files
  829.           and directories, and does not list hidden / system files.
  830.  
  831.    3.01   DESCRIBE:  4DOS description files will no longer get mixed up
  832.           between directories when running reasonably-behaved data pathing
  833.           utilities like DPATH.
  834.  
  835.           DIR:  There are many changes:
  836.  
  837.               /4 is a new switch to give a 4-column directory display.
  838.  
  839.    -->        /A(ttrib) display format has been changed to use standard 1-
  840.               column format.
  841.  
  842.    -->        /V(ertical) sort now creates newspaper-style columns when
  843.               invoked along with /2, /4, or /W and /P(ause).  Previously
  844.               DIR /2VP (for example) would create two long columns, not
  845.               divided by page.
  846.  
  847.               DIR now has an "include list" format, e.g. DIR *.WKS+*.DAT to
  848.               display all specified files in one list.
  849.  
  850.               The number of files DIR can handle is now limited only by
  851.               available memory.  The previous limit was just over 1000
  852.               files.
  853.  
  854.    -->        If the file time is exactly 00:00:00 no time is displayed,
  855.               just like under COMMAND.COM.
  856.  
  857.    3.01   DIR:  Changed to display directory totals even when the "File not
  858.           found" message is displayed.  Changed the /F and /H switches so
  859.           they don't conflict with each other.
  860.  
  861.           DRAWBOX, DRAWHLINE, DRAWVLINE:  These new commands draw boxes and
  862.           lines on the display.  Color control is included, and connectors
  863.           are generated automatically when two lines intersect.
  864.  
  865.    3.01   DRAWBOX:  Styles 3 and 4 now work properly.
  866.  
  867.  
  868.  
  869.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 15
  870.  
  871.           ESET:  When editing aliases with truncated names (i.e. those with
  872.           a "*" in the name) the whole alias is now displayed.
  873.  
  874.           FOR:  There are several changes:
  875.  
  876.    -->        Single-character FOR variables will now work properly with
  877.               text appended to the variable name (e.g. FOR %%X IN (A B C)
  878.               DO COPY %%Xfile D:).  This more accurately emulates
  879.               COMMAND.COM, which only allows FOR variables to be 1 charac-
  880.               ter long.
  881.  
  882.               The DO in the FOR syntax is now optional.
  883.  
  884.               FOR variables may now be specified either as %%var or %var,
  885.               whether the command is issued at the prompt or from a batch
  886.               file.
  887.  
  888.    3.01   FOR:  Now aborts when a nested batch file CANCELs.  Also, fixed a
  889.           bug that was causing FOR variables to be ignored inside double
  890.           quotes.
  891.  
  892.    3.01   [p 83]  GLOBAL:  Added a /Q(uiet) switch to disable the display
  893.           of "GLOBAL: pathname".
  894.  
  895.    -->    GOTO and GOSUB:  These commands now take effect immediately when
  896.           there are multiple commands on a single line.
  897.  
  898.    3.01   [p 85]  GOTO inside an IFF statement now cancels all IFF parsing,
  899.    -->    and assumes you've branched completely outside the IFF construct. 
  900.           If you haven't, you will get "Unknown command" errors on subse-
  901.           quent ELSE, ELSEIFF, and ENDIFF statements (see examples below). 
  902.           Also fixed a bug which prevented GOTO from branching to the end
  903.           of the file from within a GOSUB subroutine.
  904.  
  905.               iff "%1"=="Y"
  906.               :test
  907.                 copy file1 a:
  908.                 goto done               <--- Legal - branches outside the
  909.               else                           IFF block
  910.                 copy file2 b:
  911.                 goto test               <--- Illegal - branches within IFF
  912.               endiff                         block
  913.               [do some other work here]
  914.               :done
  915.  
  916.           [p 86]  HELP:  The HELPCFG.EXE program, provided with 4DOS, can
  917.           be used to configure the help system display colors.  To use it,
  918.           change to the directory HELP.EXE is in, be sure HELPCFG.EXE is in
  919.           the same directory, and enter the command:
  920.  
  921.                     HELPCFG
  922.  
  923.           HELPCFG allows you to set the colors for several different por-
  924.           tions of the help display.  Use the vertical arrows to select
  925.  
  926.  
  927.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 16
  928.  
  929.           which type of display color you wish to adjust.  Hit <cr> and you
  930.           will be able to move a box in the left-hand window to select the
  931.           color.  Hit <cr> again to select the color, or Esc to return to
  932.           the right hand window without changing the color.  Another Esc
  933.           will save the new colors and return you to DOS.
  934.  
  935.    3.01   [p 86]  HELP:  There are several changes to HELP:
  936.  
  937.               * There are many corrections and additions to the text, in-
  938.               cluding a complete ASCII table.
  939.  
  940.               * A new "soft pagination" capability enables many commands to
  941.               be displayed completely on one screen if using more than 25
  942.               lines, but paginates in a logical spot if using a 25-line
  943.               screen.
  944.  
  945.               * HELP is now DESQView-aware and should run properly in a
  946.               less than full screen DESQView window.
  947.  
  948.               * HELP now accepts up to 16 pages per topic and 32 cross-
  949.               references per topic, to allow 4MAKE users to install longer
  950.               topics inside the help file.
  951.  
  952.               * Three new environment variables have been added to give you
  953.               better control over HELP:
  954.  
  955.                     4HELP     Specifies the full path and file name for the
  956.                               help program to be loaded when F1 is pressed. 
  957.                               If not used, 4DOS will look for HELP.EXE in
  958.                               the current directory and then on the PATH. 
  959.                               4HELP affects only F1, NOT the HELP command;
  960.                               if you need to change how the HELP command
  961.                               works as well, use an alias (see example
  962.                               below).
  963.  
  964.                     4HELPF    Specifies the full path and file name for the
  965.                               help text file.  If not used, HELP will
  966.                               search for DOS.HLP in the directory specified
  967.                               in 4HELP (if any), then in the current direc-
  968.                               tory and on the path.
  969.  
  970.                     4HELPC    Specifies control switches for HELP.EXE.  At
  971.                               present the only switch is /R, which disables
  972.                               dynamic window resizing and forces all text
  973.                               screens to be displayed at the full screen
  974.                               height.
  975.  
  976.               For example, the following commands load HELP.EXE (which has
  977.               been renamed to 4DHELP.EXE) from directory D:\4DOS when F1 is
  978.               pressed, set up an alias to load this same program when the
  979.               HELP command is used, load the help text file from RAMdisk
  980.               drive I:\, and disable dynamic window resizing:
  981.  
  982.                     set 4help=d:\4dos\4dhelp.exe
  983.  
  984.  
  985.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 17
  986.  
  987.                     alias help d:\4dos\4dhelp.exe
  988.                     rem The above could also use "alias help %[4help]"
  989.                     set 4helpf=i:\dos.hlp
  990.                     set 4helpc=/r
  991.  
  992.           HISTORY:  A new switch, /R(ead) allows you to read the history
  993.           from a file (for example, one created with HISTORY > filename).
  994.  
  995.           IF:  There are many new IF conditions; see the manual for de-
  996.           tails.
  997.  
  998.    3.01   [p 88-90]  IF:  There are several corrections to the description
  999.           in the manual.  Some of these errors are present only in early
  1000.           copies of the manual:
  1001.  
  1002.               * The DOS memory size option is named DOSMEM, not DOSFREE.
  1003.  
  1004.               * The tests which check a numeric value (EMS, DOSMEM, etc.)
  1005.               use the same relational operators as the string tests, as
  1006.               shown in the examples.  For example, the syntax for EMS
  1007.               should read:
  1008.  
  1009.                     EMS relop n[K|M]
  1010.  
  1011.               where "relop" means EQ, GE, GT, etc.  The "relop" is optional
  1012.               for ERRORLEVEL, but required for all other numeric tests.
  1013.  
  1014.               * The MONITOR and VIDEO tests also require a relational oper-
  1015.               ator (==, EQ, or NE) as described above for numeric tests.
  1016.  
  1017.               * The IF ATTRIB test has an additional option:  "N" tests for
  1018.               no attributes set (i.e. all of the other attributes are off). 
  1019.  
  1020.               * IF ATTRIB volname V will only work if the volume name re-
  1021.               fers to the root directory, and if there is a period after
  1022.               the eighth character in volume names of nine characters or
  1023.               more (e.g. to test for volume "MYFILES0107" in drive A:, use
  1024.               IF ATTRIB A:\MYFILES0.107 V ...).
  1025.  
  1026.               * Two tests are missing from some copies of the manual:
  1027.  
  1028.                     IF DISKFREE relop n
  1029.                          Tests the disk free space on the current drive. 
  1030.                          Cannot be used to test other drives.
  1031.  
  1032.                     IF FILESIZE filename relop n
  1033.                          Tests the size of the specified file.
  1034.  
  1035.                     For example:
  1036.  
  1037.                          if diskfree gt 40M echo Plenty of room
  1038.                          if filesize myfile.dat gt 360K echo It won't fit!
  1039.  
  1040.  
  1041.  
  1042.  
  1043.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 18
  1044.  
  1045.    3.01   [p 88-90]  IF:  String comparisons will now be done numerically
  1046.           if both values being compared begin with a digit.  This allows
  1047.           you to do true arithmetic tests.  For example:
  1048.  
  1049.               set aa=027
  1050.               set bb=20
  1051.               if %aa gt %bb ...         This test will succeed because it
  1052.                                         will compare the numeric values 27
  1053.                                         and 20.
  1054.               if "%aa" gt "%bb" ...     This test will fail because it will
  1055.                                         compare the alphanumeric values
  1056.                                         "027" and "20", and the "02" will
  1057.                                         appear 'smaller' (alphanumerically)
  1058.                                         than "20".
  1059.  
  1060.    3.01   IF:  The ATTRIB test for a volume label has been changed to get
  1061.           around a bug in DOS, and should now recognize labels correctly.
  1062.  
  1063.           IFF:  This is probably the single most powerful new feature of
  1064.           version 3.0.  It is a block-structured command allowing IFF /
  1065.           THEN / ELSE / ELSEIFF structures in batch files and aliases.  The
  1066.           syntax is straightforward:
  1067.  
  1068.                     IFF condition then
  1069.                       command(s)
  1070.                     ELSE[IFF]
  1071.                       command(s)
  1072.                     ...
  1073.                     ENDIFF
  1074.  
  1075.           See the manual for further details.
  1076.  
  1077.    3.01   IFF:  ELSE and ENDIFF will now be recognized properly even if
  1078.           they are not followed with whitespace.
  1079.  
  1080.           INKEY:  A new switch has been added, /Wn (wait), to wait up to n
  1081.           seconds for a reply.
  1082.  
  1083.           INPUT:  A /W has switch has been added as for INKEY.
  1084.  
  1085.    3.01   INPUT:  Fixed a bug with very long variable names and/or input
  1086.           text.
  1087.  
  1088.           KEYSTACK:  A longstanding bug has been fixed.  KEYSTACK was ran-
  1089.           domly trashing a word somewhere in memory.  This fix may help
  1090.           with some rare compatibility problems.
  1091.  
  1092.    3.01   [p 94]  KEYSTACK:  There are two changes:
  1093.  
  1094.               * KEYSTACK now supports a new symbol, !, to clear keystrokes
  1095.               from the typeahead buffer, as well as anything in the
  1096.               KEYSTACK buffer.  For example:
  1097.  
  1098.                     keystack ! @59
  1099.  
  1100.  
  1101.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 19
  1102.  
  1103.               will clear the typeahead buffer before stacking the @59 (F1)
  1104.               keystroke.
  1105.  
  1106.               * Some programs will not interpret stacked keystrokes proper-
  1107.               ly unless they contain both the correct ASCII value and the
  1108.               correct keyboard "scan code".  For example, if you attempt to
  1109.               KEYSTACK an "Enter" using ASCII code 13 (carriage return) and
  1110.               see a small musical note instead, the program you are running
  1111.               probably needs the scan code to interpret the keystroke prop-
  1112.               erly.
  1113.  
  1114.               KEYSTACK now supports the entry of scan codes for standard
  1115.               ASCII keys.  To enter the scan code, multiply it by 256 and
  1116.               add it to the ASCII code.  Using the same example, the scan
  1117.               code for the Enter key is 28, so the full value for this key
  1118.               would be 28*256+13 = 7181.  With some programs you will find
  1119.               that KEYSTACK 7181 works when KEYSTACK 13 does not (or vice
  1120.               versa).  Experimentation is required to get the correct val-
  1121.               ue.  A full discussion and table of scan codes is beyond the
  1122.               scope of this document, but is available in many basic PC
  1123.               books.
  1124.  
  1125.           LIST:  There are several changes:
  1126.  
  1127.               There are two new switches.  /S gets input from standard
  1128.               input instead of a file.  /W wraps all lines at the right
  1129.               side of the screen, for viewing non-text files.
  1130.  
  1131.               EGA and VGA display speed has been increased.
  1132.  
  1133.               The Ctrl-Right Arrow and Ctrl-Left Arrow keys can now be used
  1134.               to shift left or right 40 columns at a time.
  1135.  
  1136.    3.01   [p 95]  LIST:  There are several changes:
  1137.  
  1138.    -->        Changed the search and print keys to use letters instead of
  1139.               function keys:  F(ind), N(ext), and P(rint).  This avoids
  1140.               conflicts when you wish to redefine the function keys for
  1141.               other purposes.
  1142.  
  1143.               Added a new switch, /H, to strip the high bit of each charac-
  1144.               ter, for displaying WordStar documents and other similar
  1145.               files.
  1146.  
  1147.    3.01   [p 96]  LOADBTM:  This is a new command.  It will switch the
  1148.           current batch file to and from .BTM mode.  The syntax is:
  1149.  
  1150.                     LOADBTM [ON | OFF]
  1151.  
  1152.           LOADBTM ON loads the entire file into memory and processes the
  1153.           following lines as a .BTM file.  LOADBTM OFF unloads the file
  1154.           from memory and processes the following lines one by one like a
  1155.           .BAT file.  Both commands can be used regardless of the file's
  1156.           original extension.  
  1157.  
  1158.  
  1159.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 20
  1160.  
  1161.           LOADBTM will allow you to have a single batch file for both
  1162.           COMMAND.COM and 4DOS, and select .BTM mode via a statement like:
  1163.  
  1164.                     if "%@eval[2+2]" == "4" loadbtm on
  1165.  
  1166.           Since the %@eval function does not exist under COMMAND.COM, the
  1167.           IF test will fail there and the rest of the line will be ignored. 
  1168.           Under 4DOS where %@eval exists, the LOADBTM ON will be executed.
  1169.  
  1170.           LOADBTM will also allow you to load TSRs from a .BTM file by
  1171.           switching it into .BAT mode, loading the TSRs, and switching back
  1172.           to .BTM mode.  However note that, depending on what the file
  1173.           does, such mode switching can erase much of the speed gained by
  1174.           using a .BTM file in the first place.
  1175.  
  1176.  
  1177.           LOG:  This is a new command which allows you to log all commands
  1178.           entered at the prompt to log file, with date and time stamps. 
  1179.           You can enable or disable logging, write text to the log file,
  1180.           and set its name.
  1181.  
  1182.    3.01   LOG:  Fixed a problem which caused a ^C to occasionally hang the
  1183.           system when LOG was ON.  Also changed LOG to automatically switch
  1184.           LOG OFF if it couldn't open the log file.
  1185.  
  1186.           MEMORY:  The display includes several new items; see the manual
  1187.           for details.
  1188.  
  1189.           MOVE:  There are two new switches:  /Q(uiet) turns off the dis-
  1190.           play of files moved; /R(eplace) prompts before overwriting an
  1191.           existing file.
  1192.  
  1193.    3.01   MOVE:  Now returns an "Access denied" error if you try to move
  1194.           files to a character device.  Also the way that MOVE accesses
  1195.           files has been modified to minimize or eliminate problems with
  1196.           the MS-DOS APPEND command.
  1197.  
  1198.           PATH:  The path is now saved in upper case to work around a No-
  1199.           vell Netware bug.
  1200.  
  1201.           PROMPT:  Now checks for a null current directory to prevent dis-
  1202.           playing garbage when the current drive is changed to a drive that
  1203.           isn't ready.  Also there are some changes to the "$" strings:
  1204.  
  1205.    -->        $a (ampersand) has been removed to avoid a problem with
  1206.               ProComm.  If you need an ampersand in your prompt, just use
  1207.               the "&" character instead of $a.
  1208.  
  1209.               $xd: is a new function which displays the current directory
  1210.               for the specified drive.  For example, to display the current
  1211.               directory on drive E:, include $xe: in the prompt string. 
  1212.               $Xd: is the same, but in upper case.
  1213.  
  1214.  
  1215.  
  1216.  
  1217.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 21
  1218.  
  1219.               $z is a new function which displays the 4DOS shell nesting
  1220.               level (0 for the primary shell, 99 for memory-resident copies
  1221.               of 4DOS).
  1222.  
  1223.    -->    PUSHD / POPD:  The directory stack now discards the oldest en-
  1224.           tries when full and "wraps around" -- previously an error was
  1225.           generated if the directory stack overflowed.  Also, PUSHD now
  1226.           supports Netware-like args "..." etc., as in CD and CDD.
  1227.  
  1228.    3.01   QUIT:  Fixed a bug which kept 4DOS from QUITting within a GOSUB
  1229.           subroutine.
  1230.  
  1231.    -->    REM:  Remarks are now parsed before alias and variable expansion,
  1232.           so you can have unmatched quotes in the REM statement without an
  1233.           error message.
  1234.  
  1235.    3.01   REM:  Will now be echoed if ECHO is ON.
  1236.  
  1237.           REN:  The new /Q(uiet) switch turns off the display of the files
  1238.           renamed.
  1239.  
  1240.           SCRPUT:  This new command to writes text directly to the screen,
  1241.           and includes color control and cursor positioning.
  1242.  
  1243.           SELECT:  There are several changes:
  1244.  
  1245.    -->        Files can now be marked with the spacebar, and pressing the
  1246.               spacebar or "+" on a marked file will unmark it.  The F1 key
  1247.               will call up 4DOS HELP from inside SELECT.
  1248.  
  1249.               SELECT now has an "include list" format, e.g. SELECT COPY
  1250.               (*.WKS+*.DAT) A: to display all specified files in one list. 
  1251.  
  1252.    -->        The SELECT header has been redesigned.  The full command is
  1253.               now displayed on the second line (if you have more than about
  1254.               64 characters in the command the display will be truncated). 
  1255.               The header also shows the length of the command line; this is
  1256.               especially useful when using SELECT with [] as it is easy to
  1257.               get the command line too long for external commands (126-
  1258.               character limit) or internal commands (255 characters).
  1259.  
  1260.               It is now possible to use SELECT with only one parameter,
  1261.               e.g. SELECT (*.BAT) to choose a batch file to run.
  1262.  
  1263.               The system should no longer hang if the SELECT command line
  1264.               gets too long.
  1265.  
  1266.    3.01   SELECT:  Fixed a bug that was causing SELECT COPY to copy from
  1267.           the wrong directory when the argument was a directory name with
  1268.           no trailing backslash.
  1269.  
  1270.           SET has two new switches:  /P(ause) pauses after each page of
  1271.           display; "/R filename" reads the environment variables from a
  1272.           file (similar to ALIAS /R).
  1273.  
  1274.  
  1275.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 22
  1276.  
  1277.    3.01   SET:  SET /R can now read multiple files, for example:
  1278.  
  1279.                     set /r env1 env2 env3
  1280.  
  1281.           SETDOS:  There are four new switches: 
  1282.  
  1283.               /A(NSI) forces 4DOS to assume ANSI.SYS is installed.
  1284.  
  1285.               /I(nternal) disables or re-enables a 4DOS internal command.
  1286.  
  1287.               /L(ine input) forces 4DOS to read input one line at a time,
  1288.               instead of the usual one character at a time.  This may be
  1289.               necessary for compatibility with some programs; see
  1290.               COMPAT.DOC for details.
  1291.  
  1292.               /U(pper) forces 4DOS to display all filenames in upper case.
  1293.  
  1294.    3.01   SETDOS:  There are two changes:
  1295.  
  1296.               /S now resets the cursor shape immediately, so it can be used
  1297.               to hide the cursor while in a batch file.
  1298.  
  1299.               /U1 should now properly return uppercase filenames in all
  1300.               instances.
  1301.  
  1302.           SWAPPING:  This is a new command which turns swapping ON or OFF. 
  1303.           See the manual for details.
  1304.  
  1305.           TIME:  Now supports the COMMAND.COM "AM / PM" syntax as well as
  1306.           24-hour time syntax.  Also a bug was fixed which caused the hun-
  1307.           dredths of a second to be set to random values.
  1308.  
  1309.           UNSET:  This new command removes environment variables (like
  1310.           UNALIAS does for aliases).  See the manual for details.
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.    4DOS 3.01  [5-22-90]          UPDATE30.DOC                       page 23
  1334.  
  1335.