home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / MEM_MAN / XDISK331.ZIP / XDISK.DOC < prev    next >
Text File  |  1992-02-29  |  49KB  |  1,037 lines

  1.  
  2.                       ░░░░░░░▄    ░░░░▄   ░░░░░░░▄   ░░░░▄  ░░░▄
  3.                        ░░█▀▀░░░▄   ░░█▀  ░░█▀▀▀▀░▒▄   ░░█▀ ░░█▀▀
  4.           ░░░▄   ░░░▄  ░░█   ░▒█   ░░█   ░▒█     ▀▀   ░░█ ░▒█▀
  5.             ░░▄ ░▒█▀▀  ░░█   ▒▒█   ░▒█   ░▒█          ░░█▒▒█▀
  6.              ░▒▒▒█▀    ░▒█   ▒▒█   ▒▒█    ▒▒▒▒▒▒▒▄    ░▒▒▒█▀
  7.               ▒▒█▀     ▒▒█   ▒▓█   ▒▒█     ▀▀▀▀▀▒▓▄   ▒▒█▒▓▄
  8.              ▒▒▓▓▄     ▒▒█   ▓▓█   ▒▓█          ▓▓█   ▒▒█ ▓▓▄
  9.             ▓▓█ ▓▓▄    ▒▓█  ▓▓▓█   ▓▓█   ▒▒▄    ▓▓█   ▒▓█  ▓▓▄
  10.           ▓▓▓█▀  ▓▓▓▄ ▓▓▓▓▓▓▓▓█▀  ▓▓▓▓▄   ▓▓▓▓▓▓▓█▀  ▓▓▓▓▄  ▓▓▓▄
  11.            ▀▀▀    ▀▀▀  ▀▀▀▀▀▀▀▀    ▀▀▀▀    ▀▀▀▀▀▀▀    ▀▀▀▀  ▀▀▀▀
  12.                   Version 3.31
  13.  
  14.            Copyright (c) 1989, 1990, 1991, 1992 FM de Monasterio
  15.              Licensed Material - All Rights Reserved
  16.  
  17.   SUMMARY
  18.  
  19.   xDISK generates RAM-disks in expanded memory and permits to vary the amount
  20.   of memory allocated to the disk(s) without rebooting the computer when used
  21.   with expanded memory conforming to the LIM 3.0+ specification (EMS). If DOS
  22.   version 3.xx or higher is used, the RAM-disk can be collapsed completely to
  23.   free all of its EMS to another process (with DOS 2.10, the disk can be made
  24.   as small as 16 kbyte [an EMS page]).  Also, the RAM-disk can be expanded to
  25.   use all of the available EMS or any intermediate size multiple of 16 kbyte,
  26.   sector size and number of root directory entries can be changed, and it can
  27.   be made to show visual clues of its activity.  If disk contents need not be
  28.   preserved, resizing is only limited by the amount of EMS; a more restricted
  29.   resizing is availble if the RAM-disk contents need to be preserved.
  30.  
  31.   Security features include making the disk a Read-Only or Read-Write device,
  32.   locking/unlocking DOS access to the disk, and the enforcing of user-defined
  33.   password checks before the implementation of any command to the disk.
  34.  
  35.   Loading features include installation of the xDISK driver program XDISK.SYS
  36.   in the upper memory area, with or without MS-DOS 5.0, if an extended memory
  37.   manager is present, and the capability of loading this driver directly from
  38.   the DOS command line via the interface program XDISK.EXE (under DOS version
  39.   2.x through 4.x only).
  40.  
  41.   Requires MS-DOS/PC-DOS version 2.1 or later, and expanded memory conforming
  42.   to the LIM EMS 3.0 or later.  The upper-memory selfloading requires DOS 3.0
  43.   or later. It is available in 086+, 286+, 386+, and 486+ microprocessor-type
  44.   optimized versions.
  45.  
  46.                 --------------
  47.  
  48.    REGISTRATION
  49.  
  50.    This software is user-supported; the present release, although lacking the
  51.    options marked by asterisks, is a fully usable program.  You may test this
  52.    release for (in)compatibilities with your system, but after the testing is
  53.    completed you are requested to order a registered copy of the full release
  54.    of the software from the address at the end of this documentation.
  55.  
  56.    If you would rather use this unregistered copy, consider making a donation
  57.    to the Children's Hospital of Washington DC, for indigent children in need
  58.    of medical care.  Every year in the USA, infant mortality claims the lives
  59.    of tens of thousands of children before their first year of life, and most
  60.    of them come from families below poverty level...  Please send to the same
  61.    address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
  62.    the obverse, and marked "For Deposit Only" on the reverse.  Donations will
  63.    be sent to Children's Hospital.  Please identify the program for which you
  64.    are making the donation.
  65.  
  66.    --------------------------------------------------------------------------
  67.       XDISK.REG contains a form needed to register or upgrade the Software
  68.    --------------------------------------------------------------------------
  69.  
  70.    See the final part of this documentation for information on the Licensing,
  71.    Distribution, Warranty, and Limitation of Remedies of this software.
  72.  
  73.                 --------------
  74.  
  75.  
  76.   1.  GENERAL INFORMATION
  77.  
  78.   xDISK is a virtual-device driver system to generate (and modify) RAM-disks in
  79.   expanded memory conforming to Lotus/Intel/Microsoft specification version 3.0
  80.   or higher.  Disk parameters can be modified without having to reboot the CPU.
  81.   The disk contents are lost if the resizing requires reformatting of the disk.
  82.   Under EMS 4 and MS-DOS 3 (or compatible operating system) or higher versions,
  83.   however, a limited, data-safe resizing can be obtained with some switches.
  84.  
  85.   This system consists of two programs: (1) XDISK.SYS, a block device driver to
  86.   be installed via CONFIG.SYS, after an EMS manager has been installed, and (2)
  87.   XDISK.EXE, a utility to communicate with the device driver via DOS and, thus,
  88.   to permit changing of one or more parameters of a specified xDISK RAM-disk.
  89.  
  90.   The XDISK.SYS and XDISK.EXE files of a given version are matched and will not
  91.   work with those of other xDISK versions.  Minimum requirements are: 16 kbytes
  92.   or more of expanded memory, an EMM supporting version 3 or higher of the LIM-
  93.   EMS, and MS-DOS (or compatible operating system) version 2.10 or higher. Some
  94.   program options require higher versions of DOS or EMS, or both (see below).
  95.  
  96.   xDISK RAM-disks are compatible with the CHKDSK utility of DOS as well as with
  97.   other programs that sometimes encounter difficulties with other resizable RAM
  98.   disks. Starting from version 2.50, the boot sector of the xDISK disk complies
  99.   with the MS-DOS 4+ format.
  100.  
  101.  
  102.   CPU VERSIONS
  103.  
  104.    The program is written in assembly language; each version consists of four
  105.    processor-type releases (086, 268, 386 and 486) in which the code has been
  106.    optimized for the CPU types of the Intel iAPX processor family (x86). This
  107.    is needed because such processors differ markedly in instruction execution
  108.    time.  Incorporation of a memory cache in some x86 processors also affects
  109.    this time by influencing the speed of both instruction fetching and memory
  110.    access.
  111.  
  112.    In addition to standard (086) assembly language instructions, the 286, 386
  113.    and 486 releases of the program also use 286-, 386- or 486-specific opcode
  114.    instructions in 'real' mode (which is the native mode for 086 processors).
  115.    The type and degree of code optimization vary with the CPU type, and yield
  116.    usually small variations of the size of the resident code.
  117.  
  118.  
  119.                 --------------
  120.  
  121.  
  122.   2.  USAGE
  123.  
  124.   INSTALLING THE xDISK DRIVER
  125.  
  126.   XDISK.SYS may be installed via the CONFIG.SYS file on the boot disk after the
  127.   LIM-3+ EMS manager has been installed.  The filename of the EMS driver varies
  128.   varies with the manufacturer, but its code must include the string 'EMMXXXX0'
  129.   whose presence can be verified with any file-browsing utility.  The following
  130.   command must be included in the CONFIG.SYS file:
  131.  
  132.             DEVICE=[path]XDISK.SYS [/B/C/D/E/H/K/S]
  133.  
  134.   Alternatively, starting from version 3.10, the driver may also be loaded from
  135.   the command line at the DOS prompt (i.e., after the operating system has been
  136.   booted and configured via CONFIG.SYS) by means of the utility XDISK.EXE, when
  137.   executed under DOS versions 2 through 4.  The DOS command-line loading is not
  138.   implemented yet under MS-DOS version 5.  The following command must be issued
  139.   for the command-line loading:
  140.  
  141.             XDISK /L [path]XDISK.SYS [/B/C/D/E/H/K/S]
  142.  
  143.   If given, <path> represents the complete path specification (including drive)
  144.   for the file XDISK.SYS.  See below for a description of the switches.
  145.  
  146.  
  147.  
  148.   MODIFYING THE xDISK DRIVER
  149.  
  150.   After the xDISK driver has been installed, XDISK.EXE can be used to interface
  151.   with the driver.  This utility allows for the modification of disk parameters
  152.   from the DOS command line:
  153.  
  154.         XDISK [?] [/L] [d: [/A/B/C/D/E/F/G/N/P/Q/R/S/U/V/X/?]]
  155.  
  156.  
  157.   ?   If xDISK is executed with <?> as the only argument (notice the absence of
  158.       a preceding backslash), the program searches all block device drivers for
  159.       the xDISK driver signature, and displays a list of the installed drivers.
  160.  
  161.   d   This is the drive designator letter, followed by <:>, that identifies the
  162.       xDISK drive. The use of letters for non-xDISK drives and for non-existing
  163.       drives generates separate error messages (IOctl error 1 and F). Defaults:
  164.       Null drive, no colon or x=<ASCII 21-40> = Current drive letter.
  165.  
  166.       NOTE: Switch /L does not require a drive designator specification for the
  167.             DOS command-line loading of the xDISK driver.
  168.  
  169.                 --------------
  170.  
  171.   2.1  SWITCHES
  172.  
  173.   The switches are not case sensitive, but must be preceded by a backslash [/].
  174.   If the RAM-disk is being resized (i.e., /Bn/Sn/Dn/C/E), non-resizing switches
  175.   must be specified AFTER the resizing switch(es), except in the case of switch
  176.   /L when the resizing switches apply to the driver to be loaded.
  177.  
  178.    --------------------------------------------------------------------------
  179.     (*) Asterisks mark options available in the registered program copy only
  180.    --------------------------------------------------------------------------
  181.  
  182.   NOTE:  When xDISK is invoked without any switch (or when the switches are not
  183.   preceded by slashes [and thus are ignored]), the status of the xDISK drive is
  184.   displayed on the DOS command line.  Except during the XDISK.SYS installation,
  185.   such a null-switch call does not change any RAM-disk parameters. During xDISK
  186.   installation, however, default values for switches /B, /D, and /S are used if
  187.   the corresponding switch is not specified.
  188.  
  189.  
  190.  
  191.   SWITCH ?
  192.  
  193.       This switch displays the Status/Usage/Help panels, which are described in
  194.       more detail in the section below.  If a VGA or EGA is the active adapter,
  195.       the program saves the contents of the palette registers prior to changing
  196.       the video attributes for its various displays.
  197.  
  198.       When preceded by a valid xDISK designator, ? or /? displays the status of
  199.       the specified RAM-disk.  In the absence of a drive designator, ? displays
  200.       the Status/Usage panel listing any installed RAM-drive, while /? attempts
  201.       to display the status of the default drive.
  202.  
  203.       See section STATUS/USAGE/HELP PANELS below.
  204.  
  205.  
  206.  
  207.   SWITCH A[±]
  208.  
  209.       Provides control of audio feedback during DOS access to the specified RAM
  210.       disk. Use /A+ to enable a brief click each time the driver receives a DOS
  211.       request, and /A- to disable the feedback. The audio feedback ON status is
  212.       indicated by the icon [] in the xDISK reconfiguration status messages.
  213.  
  214.       Default: /A = /A+.
  215.  
  216.  
  217.  
  218.   SWITCH B[[-]n]
  219.  
  220.       Disk size in kilobytes, where <n> is between 16 and 8196 (EMS 3) or 32768
  221.       (EMS 4) in 16-kbyte steps; if <n> is not a 16-kbyte multiple, the size is
  222.       increased to the nearest larger multiple available. The largest disk size
  223.       that is supported is either 8 megabytes (EM maximum of EMS 3) or 32 mega-
  224.       bytes (EM maximum of EMS 4).  Unless switch /Q or /N is enabled, resizing
  225.       changes necessitate confirmation by the user.
  226.  
  227.       Starting with version 3.31, there are two usages for this switch:
  228.  
  229.                (1) If <n> is not a signed number, i.e. not preceded by a - or +
  230.                    sign, the disk size is reset to <n> kbytes or nearest HIGHER
  231.                    16-kbyte multiple (n x 16 x 1024 bytes), and the disk is re-
  232.                    formatted and its contents destroyed.
  233.  
  234.                (2) If <-n> is a negative number, the current or default size is
  235.                    decreased by <n x 16> kbytes.  The contents are preserved if
  236.                    the resulting drive internal parameters can still handle the
  237.                    data without error (see section DISK INTERNALS below). Else,
  238.                    the disk is reformatted and the data destroyed, as otherwise
  239.                    incorrect disk input/output would follow. If switch /N or /Q
  240.                    has not been specified (see below), the user is prompted for
  241.                    a [Y]es or [N]o decision before resizing the disk.
  242.  
  243.                    This second usage is only available when using EMS 4 and MS-
  244.                    DOS (or compatible operating system) 3.0 or higher versions.
  245.  
  246.       Defaults:  In the CONFIG.SYS file, null switch or null <n> = /B64. In the
  247.       command line of DOS, /B = /B64; null switch is ignored.
  248.  
  249.       NOTE
  250.       -------------------------------------------------------------------------
  251.       There is no symmetrical operation to increase the size via switch '/B+n',
  252.       whose use defaults to /B64.  Use /Bn to increase size when drive contents
  253.       need not be preserved; a data-safe, limited expansion may be obtained via
  254.       switch /X+ (see below).
  255.       -------------------------------------------------------------------------
  256.  
  257.  
  258.  
  259.   SWITCH C
  260.  
  261.       Collapses the RAM-disk to a size of 0 kb (DOS ≥3.0) or 16 kb (DOS <3.0).
  262.       Unless switch /Q or /N is enabled, collapse necessitates confirmation by
  263.       the user; a 0-kb collapse does not change the existing /D and /S values,
  264.       but a 16-kb collapse also sets /D=4 and /S=128.
  265.  
  266.       If a 0-kb collapse has occurred for, say, the RAM-disk M, a DOS-mediated
  267.       command to the drive will trigger the folowing error message from MS-DOS
  268.       5 (e.g., 'CHKDSK M:' or 'DIR M:')
  269.  
  270.             Invalid disk change reading drive M
  271.             Please insert volume <xDISK M:>, serial 0000-0000
  272.             Abort, Retry, Fail?
  273.  
  274.       Respond to the "Abort, Retry, Fail?" question of the DOS' critical error
  275.       handler by pressing <A> to return to the DOS prompt. Such a message is a
  276.       remainder that the disk does exist, but has collapsed.  A collapsed disk
  277.       can only be restored with switch /B[n] or /E since formatting is needed;
  278.       data-preserving switches /X± and /B-n are not accepted.
  279.  
  280.       No defaults.
  281.  
  282.  
  283.  
  284.   SWITCH D[n]
  285.  
  286.       Number of allowed entries (files) in the root directory, where <n> is in
  287.       the range between 4 and 512.  If the minimum value of 4 entries has been
  288.       selected, the number of entries is increased to 8 or 16 when a sector of
  289.       size 256 or of 512 bytes is also selected.  Unless switches /Q or /N are
  290.       enabled, this resizing change necessitates confirmation by the user.
  291.  
  292.       Defaults: In the CONFIG.SYS file, null switch or null <n> = /D64. In the
  293.       command line of DOS, /D = /D64; null switch is ignored.
  294.  
  295.       WARNING
  296.       ------------------------------------------------------------------------
  297.       If a sufficient number of entries is NOT available, commands to write to
  298.       the disk will trigger a critical error message of 'File Creation Error.'
  299.       To decrease this possibility, expanding the disk to the maximum EMS size
  300.       via switch /E changes the number of root directory entries to 512.  If a
  301.       smaller number of entries is needed, follow switch /E with /Dn.
  302.       ------------------------------------------------------------------------
  303.  
  304.  
  305.  
  306.   SWITCH E
  307.  
  308.       Expands the disk to the maximum available EMS size. If switch /Dn is not
  309.       also specified, it sets the directory entries to /D512. Unless switch /Q
  310.       or /N is enabled, this expansion necessitates confirmation by the user.
  311.  
  312.       No defaults.
  313.  
  314.  
  315.  
  316.   SWITCH F
  317.  
  318.       Provides control of the audio and visual feedback during the checking of
  319.       the password (see switch /P below) prior to the implementation of a disk
  320.       change. Use /FA to produce a 55-ms beep each time an incorrect character
  321.       is entered, /FV to display a '■' when a correct character is entered, or
  322.       /F- to disable either feedback.
  323.  
  324.       Default: /F = /F+.
  325.  
  326.  
  327.  
  328.   SWITCH G[±]
  329.  
  330.       Provides gate control of DOS access to the specified xDISK disk. Use /G-
  331.       to disable DOS access to the disk, and /G+ to (re)enable such an access.
  332.       The RAM disk data are preserved if the access gate is disabled, and they
  333.       become immediately accessible after the gate is reenabled.
  334.  
  335.       Defaults: /G = /G+.
  336.  
  337.  
  338.  
  339.   SWITCH H[n[!]]
  340.  
  341.       Instructs the program to load its resident in high memory between 640 kb
  342.       and 1024 kb, i.e. below the 1-Mb limit of real-mode memory but above the
  343.       640-kb DOS hardware barrier.   High memory self-loading requires that an
  344.       extended memory manager (XMM) supporting the services of the XMS 2.00 is
  345.       installed and that a free upper memory block (UMB) of a little less than
  346.       2 kb is available. The XMM must support functions 10h (Allocate UMB) and
  347.       11h (Free UMB).  UMB allocation is implemented via calls to DOS, if this
  348.       allocation is controlled by MS-DOS 5.0 (i.e., command DOS=UMB in CONFIG.
  349.       SYS and the drivers HIMEM.SYS and 386EMM.EXE loaded), of by direct calls
  350.       to the XMM, when DOS 5.0 does not control UMB allocation.  Switch /H[n]!
  351.       must be used in the former case, and switch /H[n] in the latter case.
  352.  
  353.       If switch /H[n]! is specified but the memory chain control of MS-DOS 5.0
  354.       has not been extended to the UMA (e.g. DOS=UMB command not implemented),
  355.       self-loading in upper memory will fail.  The user has then the option of
  356.       loading the driver in conventional memory or abort its installation.
  357.  
  358.       A low high-memory limit for the UMB can optionally be specified via <n>,
  359.       a hexadecimal number between A000 (640 kb) and FFFF (1,024 kb), so as to
  360.       select or avoid specific regions of upper memory.
  361.  
  362.       The self-loading into upper memory consumes 64 bytes of the conventional
  363.       memory for each installed xDISK driver.  A few additional bytes are used
  364.       by the XMM or MS-DOS 5 when allocating the UMB.  Unlike the upper-memory
  365.       loading mediated by some memory managers, the self-loading only requires
  366.       a free UMB of the size of the resident driver code (and not of the whole
  367.       code of XDISK.SYS).
  368.  
  369.       Defaults:  Lower-memory installation, if a XMS/DOS error is found during
  370.       the UMB loading; high-memory installation below requested lower limit if
  371.       UMBs are not available above this limit.
  372.  
  373.  
  374.  
  375.   SWITCH K
  376.  
  377.       Do not display the installation banner when loading the driver. Switch K
  378.       is ignored after the driver has been loaded.
  379.  
  380.       No defaults.
  381.  
  382.  
  383.  
  384.   SWITCH L
  385.  
  386.       Load XDISK.SYS from the DOS command line (i.e., after the system has been
  387.       booted, and the drivers installed via the CONFIG.SYS file). The full-path
  388.       specification for XDISK.SYS must be given after switch L along with other
  389.       switches used to configure the driver, as listed above in Usage item 2.0,
  390.       including loading in upper memory. The command-line loading of the driver
  391.       works successfully with MS-DOS or IBM PC-DOS version 2 through 4, but not
  392.       yet with MS-DOS 5.0.
  393.  
  394.       Any previously installed xDISK drive cannot be collapsed for the command-
  395.       line loading to work, since such loading process rebuilds the DOS kernel.
  396.       Command-line loading of the driver adds 256 bytes (the XDISK.EXE program
  397.       segment prefix) to the resident size.
  398.  
  399.       xDISK drives loaded from the command-line either in lower (LMB) or upper
  400.       memory (UMB) can be unloaded from memory via switch /U (see below).
  401.  
  402.       No defaults.
  403.  
  404.       WARNING
  405.       -------------------------------------------------------------------------
  406.       DOS will crash if the memory allocated to the driver is released by means
  407.       of a TSR-removal utility.  A command-line loaded driver can be identified
  408.       in memory maps by the string 'xDISK_<d:>,' where <d> identifies the drive
  409.       letter for the disk.  See section IDENTIFICATION IN MEMORY MAP UTILITIES.
  410.       -------------------------------------------------------------------------
  411.  
  412.  
  413.  
  414.   SWITCH N
  415.  
  416.       Nulls the displaying of disk status, user confirmation request, and error
  417.       messages; errors can still be detected within a batch file with the ERROR
  418.       LEVEL command. Because the disk status display is generated by the driver
  419.       via BIOS calls, the messages cannot be redirected by DOS; use of switch N
  420.       produces the same result as a redirection to the NUL device. The RAM-disk
  421.       configuration parameters are preserved.
  422.  
  423.       No defaults.
  424.  
  425.  
  426.  
  427.   SWITCH P[x][±]
  428.  
  429.       Demand password before implementing changes; password consists of 1 to 15
  430.       lower-case, pure alphanumeric characters followed by <Enter>.  Use /Px to
  431.       (re)define a password, where <x> is 1 to 15 alphanumeric lower-case [0-9,
  432.       a-z] characters followed by a space; use /P- to disable and /P+ to enable
  433.       the password requirement.
  434.  
  435.       Pressing <Esc> or <Break> during password testing returns the user to the
  436.       DOS command line. The typing of an incorrect character during the testing
  437.       vitiates prior accepted (correct) characters, and the entire password has
  438.       to be retyped. Note that warmbooting via <Ctrl-ALt-Del> is not suppressed
  439.       during password testing (rebooting destroys the RAM-disk data).
  440.  
  441.       The password is useful in situations when more than one user has acces to
  442.       the RAM-disk (e.g., a server) and, after copying the common-access files,
  443.       the disk is made Read-Only to protect its contents.
  444.  
  445.       Default: /P = /P+.
  446.  
  447.  
  448.  
  449.   SWITCH Q
  450.  
  451.       Quiet resizing. Disables the default prompt for user's confirmation prior
  452.       to disk resize/format operations that destroy all data on the RAM-disk.
  453.  
  454.       No defaults.
  455.  
  456.  
  457.  
  458.   SWITCH R[±]
  459.  
  460.       Make the disk a Read-Only [+] or Read-Write [-] device; the current write
  461.       status is indicated by [RO] or [RW] icons in the configuration message. A
  462.       Read-Only status does not allow for file changes or resizing of the disk.
  463.       RAM-disk configuration parameters are preserved.
  464.  
  465.       Defaults: /R = /R+.
  466.  
  467.  
  468.  
  469.   SWITCH S[n]
  470.  
  471.       Sector size in bytes, where <n> is 128, 256, or 512. Select a small value
  472.       if storing small files; large values will reduce reading and writing time
  473.       if storing larger files.  Unless switch /Q or /N is enabled, the resizing
  474.       change necessitates confirmation by the user.
  475.  
  476.       Defaults: In the CONFIG.SYS file, null switch or null <n> = /S256. In the
  477.       command line of DOS, /S = /S256; null switch is ignored.
  478.  
  479.  
  480.  
  481.   SWITCH V[±]
  482.  
  483.       Turn ON [+] or OFF [-] the display of a "" on the top-left corner of the
  484.       screen whenever xDISK is active due to a DOS request. The disk parameters
  485.       are preserved. If the display is on, the icon "" is displayed along with
  486.       the drive status in answer to the switch /? or <d:>? (see below).
  487.  
  488.       Defaults: /V = /V+.
  489.  
  490.  
  491.  
  492.   SWITCH U
  493.  
  494.       Uninstall from memory the specified xDISK drive (only command-line loaded
  495.       drives can be uninstalled). The operating system will crash if this drive
  496.       is not the LAST drive in the DOS chain or if the resident code is removed
  497.       with a TSR-removal utility.
  498.  
  499.       No defaults.
  500.  
  501.  
  502.  
  503.   SWITCH X[±]
  504.  
  505.       Permits a limited shrinkage [-] or expansion [+] of the free space of the
  506.       disk while preserving the integrity of its contents.  The resizing is NOT
  507.       implemented if the resulting internal drive parameters would be unable to
  508.       handle the disk data without error (see section DISK INTERNALS below).
  509.  
  510.       Switch /X- shrinks the disk free space to zero or to less than 16 kbytes.
  511.       This is an automatic implementation of switch /B-n to minimize EMS usage,
  512.       where <n> is the disk free space in kbytes to the nearest higher 16-kbyte
  513.       multiple.  If the disk is empty or its free space is less than 16 kbytes,
  514.       the shrinkage is not implemented.  Free-space disk shrinkage is available
  515.       only if EMS 4.0 and MS-DOS (or compatible operating system) 3.1 or higher
  516.       versions are used.
  517.  
  518.       The amount of shrinkage is computed from the value, maintained by MS-DOS,
  519.       of the first cluster from which to start the search for free space during
  520.       disk write operations (such a value is displayed on the Status panel, see
  521.       STATUS/USAGE/HELP PANELS below).  DOS normally uses all of the previously
  522.       unused free space before reusing freed space.  Contents must be compacted
  523.       (i.e. there should be no free gaps between used clusters) for proper disk
  524.       shrinkage. Switch /X- compares the calculated kbytes needed to resize the
  525.       disk with the amount occupied by the data; if the former are smaller than
  526.       the latter, free gaps are assumed (i.e. the free-space cluster value does
  527.       not point to the last cluster in use) and shrinkage is not implemented.
  528.  
  529.       Switch /X+ expands total disk size to the nearest (higher) multiple of 64
  530.       kb provided that the original disk size at the time of formatting was not
  531.       a multiple of 64 kb.  The switch requires EMS 4 and MS-DOS (or compatible
  532.       operating system) 3.0 or higher.  Disks shrunk via /X- can be restored to
  533.       the original size or a larger one via switch /X+.
  534.  
  535.       Defaults: /X =  /X+.
  536.  
  537.       WARNING
  538.       -------------------------------------------------------------------------
  539.       Switch /X- uses an undocumented DOS function supported in versions 3.1 to
  540.       5.0 (revision A and B) of MS-DOS; the function is also supported in other
  541.       compatible operating systems, such as IBM PC-DOS and some versions of DR-
  542.       DOS.  However, there is no assurance that such a function is available in
  543.       systems other than MS-DOS, or that it will remain available in future MS-
  544.       DOS versions or revisions.
  545.       -------------------------------------------------------------------------
  546.  
  547.  
  548.  
  549.   2.2  COMMENTS
  550.  
  551.   Comments may be added in the command after the desired switches. The comments
  552.   (which may be useful in batch files) must be preceded by a semicolon (;), and
  553.   are ignored by xDISK.
  554.  
  555.   Do not use DOS redirection and pipe characters in these comments, as DOS will
  556.   attempt to implement the implied redirection/pipe request.
  557.  
  558.  
  559.                 --------------
  560.  
  561.  
  562.    3.  STATUS/USAGE/HELP PANELS
  563.  
  564.    Executing the program with switch /? selected allows access to the Status/
  565.    Usage and Help panels. (If a Mouse pointing device driver, compatible with
  566.    the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
  567.    of the services provided by these panels can also be activated by pointing
  568.    the mouse to specific regions of the screen and clicking either button.)
  569.  
  570.    The STATUS/USAGE panel, which is shown first, describes status information
  571.    for the resident driver and its drive if an xDISK RAM-drive designator was
  572.    specified, or a list of the installed xDISK RAM-drives if any.  If a valid
  573.    drive designator was specified, the STATUS subpanel also displays the used
  574.    and free kbytes, and the value of the first free-space cluster.  For disks
  575.    that are not write protected, the cluster value can be as small as 2 or as
  576.    large as the disk size; for a write-protected disk, this value is always 0
  577.    (see Switch /X above).
  578.  
  579.    The USAGE subpanel shows a menu for the command switches: To cycle between
  580.    the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
  581.    upon the screen button labelled <Menu>.  If the resident is installed, the
  582.    status of some 'on/off' command switches is displayed by '+' or '-' before
  583.    a given menu entry.
  584.  
  585.    The DIRECTORY subpanel shows the root directory listings for the specified
  586.    (or default) drive, equivalent to the DOS command 'DIR \'.  Press key <F3>
  587.    or <D>, or click the mouse upon the screen button labelled <Dir\> to reach
  588.    this display. Press <PgUp> <PgDn> or <> <> keys, or click the Mouse upon
  589.    the respective screen buttons, to scroll the directory listings; press the
  590.    <Esc> key, or click the mouse upon the <Esc> button, to return to the main
  591.    panel.
  592.  
  593.    The HELP panel provides a summary description of the program and commands,
  594.    and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
  595.    (or if the mouse is clicked upon the screen button labelled <Help>). Press
  596.    the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
  597.    down or up.  Press key <F1> to skip the brief program summary and position
  598.    the text on the Usage section directly.  Press key <Esc> or <F2> to return
  599.    to the Status/Usage panel.
  600.  
  601.    Press key <X> or click the mouse upon the screen button labelled <eXit> to
  602.    return to the DOS-prompt command line from either panel.
  603.  
  604.  
  605.    If the program is waiting for keyboard (or mouse input) during the display
  606.    of the Status/Usage panel, it calls repeatedly the IDLE interrupts of DOS:
  607.    INT 28h and, if MS-DOS 5 is installed, function 1608h of INT 2Fh.  INT 28h
  608.    allows a potential background activation of (some) other residents whereas
  609.    INT 2Fh/1608h allows DOS 5 to suspend the program temporarily and transfer
  610.    control to another program.
  611.  
  612.    NOTE: (EGA users only)  The default IBM palette attributes are restored if
  613.    the EGA BIOS fails to store properly the original data.
  614.  
  615.                 --------------
  616.  
  617.  
  618.   4.  INSTALLATION
  619.  
  620.   The enclosed utility INSTALL.EXE may be used to copy the program files to a
  621.   user-defined drive and directory, and --if so desired-- to add a command in
  622.   the CONFIG.SYS file to load the device driver XDISK.SYS, and to add the new
  623.   directory to the PATH= statememnt in the AUTOEXEC.BAT file.
  624.  
  625.   For manual installation, see section USAGE above.
  626.  
  627.  
  628.  
  629.   INSTALLATION AVOIDANCE
  630.  
  631.   In the registered program copy, the installation of XDISK.SYS can be skipped
  632.   by pressing the <Esc> key before the initialization is completed, e.g. prior
  633.   to the display of the driver installation banner.  <Esc> keypress interrupts
  634.   the loading until the following query is answered by pressing <Y>es or <N>o:
  635.  
  636.         XDISK.SYS: <Esc> pressed ─ Cancel installation? [yn]
  637.  
  638.   This avoidance of installation produces no memory penalty under DOS versions
  639.   3.30 or higher, but uses some 80 bytes of conventional memory in earlier DOS
  640.   versions.
  641.  
  642.   When XDISK.EXE is executed and identification string for the specified drive
  643.   is found, the memory segment where the corresponding xDISK driver was loaded
  644.   is displayed in the Status/Help panel when the keys <F10>+<Alt> are pressed.
  645.   This segment is preceded by the initials 'UMB' if the driver is installed in
  646.   upper memory, and by the initials 'LMB' if installed in conventional memory.
  647.  
  648.  
  649.  
  650.   INSTALLATION ERRORS
  651.  
  652.   The following errors fail the installation of the driver:
  653.  
  654.     A. Invalid CRC - Driver has been corrupted
  655.     B. Invalid CPU type - Needs 286/386 or higher CPU
  656.     C. Invalid DOS version - Needs 2.10 or later
  657.     D. Failure to detect presence of an EMS manager
  658.     E. Expanded memory allocation error (EMS code)
  659.     F. Expanded memory EMM status error (EMS code)
  660.     G. Expanded memory page frame error (EMS code)
  661.  
  662.   See XDISK.MSG for an explanation of driver error messages.
  663.  
  664.                    ---------
  665.  
  666.  
  667.   SELF-INSTALLATION IN HIGH MEMORY
  668.  
  669.     The driver can install itself in the upper memory area (UMA), that is, at
  670.     RAM addresses between 640 kb and 1024 kb of memory, via switch /H (or its
  671.     subfunctions /Hn, /H!, and /Hn!).  Program releases prior to version 3.10
  672.     lack this feature.
  673.  
  674.     The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
  675.     version 2.0 or higher; the XMM must be installed prior to the UMB-loading
  676.     of the resident.  Allocation also requires the remapping of UMA addresses
  677.     by a UMB provider, when such a task is not implemented by the XMM itself.
  678.     XMMs require DOS version 3.0 or later.
  679.  
  680.     HIMEM.SYS is the XMM distributed with MS-DOS 5; installing this XMM along
  681.     with an UMB provider (e.g., a 386-specific memory manager such as EMM386.
  682.     EXE, also distributed with DOS 5), and enabling DOS access to the UMA via
  683.     the 'DOS=UMB' command, allows DOS 5 to control UMB allocation. Other 386-
  684.     specific managers, e.g.,  QEMM386 (Quarterdeck) or 386MAX (Qualitas), are
  685.     able to provide both UMB remapping and XMS support.
  686.  
  687.     Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
  688.     of a minimum upper-memory limit for the UMB to avoid UMA regions having a
  689.     very slow access time (or to preserve regions with a fast access time for
  690.     other utilities that require faster times, such as a disk cache or screen
  691.     accelerator), or to avoid fragmentation of the UMA when UMB allocation is
  692.     not controlled by DOS 5, but by the XMM itself.  Such a fragmentation may
  693.     occur when the XMM allocates blocks on a first-fit basis, i.e., the first
  694.     available UMB having the lowest UMA address is allocated, irrespective of
  695.     whether or not a (smaller) block matching the requested size is available
  696.     at a higher UMA address.  Unless the size of the available UMBs increases
  697.     with increasing memory address, first-fit allocation of a small UMB could
  698.     lead to the breaking of a large UMB into two smaller ones, thus hampering
  699.     the installation of larger residents in the UMA.
  700.  
  701.     When DOS controls the UMB allocation, the program enforces the allocation
  702.     of the resident block on a best-fit basis when <n> is not specified, that
  703.     is, all available blocks are searched (by DOS), and the one matching most
  704.     closely the size requested is allocated.
  705.  
  706.     When DOS controls UMB allocation and <n> is specified, UMBs are allocated
  707.     on a first-fit basis.  While this may contribute to UMA fragmentation, it
  708.     allows for the checking of a minimum memory limit in those cases in which
  709.     the selection or avoidance of a specific UMA region is more important.
  710.  
  711.     Hence, compared to the upper-memory loading provided by the 'DEVICEHIGH='
  712.     command of DOS 5.0, or similar services provided by some memory managers,
  713.     program self-loading into a UMB has several advantages, including: (1) it
  714.     does not require an initial free block of upper memory of the size of the
  715.     entire program (as opposed to the size of its resident only), (2) it does
  716.     allow user control on the selection of the upper-memory block, and (3) it
  717.     can help reduce UMA fragmentation.
  718.  
  719.     NOTE
  720.     -------------------------------------------------------------------------
  721.     The address and size of available UMBs can be obtained with MEM.EXE, when
  722.     DOS controls UMB allocation, or with the memory manager itself, when this
  723.     allocation is controlled by 386-specific memory managers. In either case,
  724.     these data can also be obtained with UMAX.EXE, a UMA mapping utility that
  725.     is distributed by the author.  If memory access time is a critical factor
  726.     in the selection of the UMBs, detailed access timings are provided by the
  727.     the utility TIMEM.EXE, which is also distributed by the author.
  728.     -------------------------------------------------------------------------
  729.  
  730.  
  731.  
  732.     HIGH-LOADING VIA MEMORY MANAGERS OR MS-DOS 5
  733.  
  734.     Of course, the resident can also be installed in the UMA via a 386-memory
  735.     manager or via (UMB-linked) DOS 5.0, provided that there is enough memory
  736.     for the actual size of the entire program, and any additional memory that
  737.     may be needed by the loading utility.
  738.  
  739.     The driver XDISK.SYS is not distributed as a compressed file.
  740.  
  741.  
  742.  
  743.    HIGH-DOS MEMORY UPDATING
  744.  
  745.    Updating the xDISK driver is accomplished either via DOS-mediated requests
  746.    to the driver or via a direct updating of the driver by XDISK.EXE (without
  747.    the intervention of high-DOS memory utilities).
  748.  
  749.                    ---------
  750.  
  751.   DOS ERRORLEVELS
  752.  
  753.   XDISK.EXE passes execution status data to DOS.  These can be tested in batch
  754.   files via the ERRORLEVEL command.  The following are values for version 3.31
  755.   or later:
  756.  
  757.         Value   Condition
  758.         -----   --------------------------------------
  759.           255   Cyclical Redundancy Check failure
  760.           254   286(386) version executed in non-286(386)+ machine
  761.           240   All drives are assigned (reached maximum)
  762.           224   All drives are assigned (increased limit)
  763.           208   Driver initialization error (command-line load)
  764.           192   Driver failed installation (command-line load)
  765.           176   Overlay of driver failed (command-line load)
  766.           160   Driver filename not given (command-line load)
  767.           144   Operating system does not support DOS function 32h
  768.           128   Failed to find NUL driver (command-line load)
  769.           112   Error during XDISK.SYS load (command-line load)
  770.            96   Critical error during load (command-line load)
  771.            80   Error during driver unloading
  772.            64   Not enough memory
  773.            48   Invalid DOS version (1.x, 5.x+, OS/2 DOS 10+)
  774.            32   Unknown/Incompatible video card
  775.            16   Invalid EMS manager/version
  776.             8   /X± switch ignored - Contents cannot be preserved
  777.             4   DOS access to driver has been closed
  778.             2   Invalid character is password string
  779.             1   Resize attempt of Read-Only disk
  780.             0   Succesful execution
  781.  
  782.                 --------------
  783.  
  784.  
  785.   5.  BASIC TECHNICAL INFORMATION
  786.  
  787.  
  788.   DISK INTERNALS
  789.  
  790.   DOS can support several types of disk.  Each disk contains information on its
  791.   capabilities, which is stored on a specific area of the disk.  In addition to
  792.   this information, the disk must contain information necessary to the managing
  793.   of the files and disk space, which is also stored in a reserved disk area.
  794.  
  795.   A DOS-compatible disk consists of 3 reserved areas and a user file area.  The
  796.   reserved areas are the Boot Sector, which contains a table of disk parameters
  797.   used by DOS to manage disk space, and a bootstrap code to start the operating
  798.   system; the File Allocation Table (FAT), containing data on file-space usage;
  799.   and the Root Directory, containing size, location, date, and time information
  800.   about the files on the disk.
  801.  
  802.   The surface of a (physical) disk is laid out as a series of concentric rings,
  803.   called tracks, which are divided radially into sectors.  When storing a file,
  804.   a cluster is the basic unit of disk allocation used by DOS, and consists of a
  805.   group of sectors, whose number varies with the disk type; the file is divided
  806.   among as many sectors as are required to hold it.  Whether just one or all of
  807.   the sectors of a cluster are used, the cluster is marked as in use.
  808.  
  809.   In the FAT there is an entry for each cluster on the disk, containing a value
  810.   that indicates the status of the cluster: reserved for DOS, free, in-use, bad
  811.   and end of cluster chain.  DOS stores cluster information as a cluster chain,
  812.   in which each cluster points to the next cluster in use.  Because the first 2
  813.   entries of the FAT are reserved, the first cluster of available disk space in
  814.   the user file area is cluster number 2.
  815.  
  816.   The length of a FAT entry is either 12 or 16 bits, and it depends on the size
  817.   of the disk in sectors and the cluster size; a 12-bit FAT entry is used until
  818.   cluster numbers cannot be stored as a 12-bit quantity, which is when there is
  819.   more than 4,079 clusters.  The minimum disk size requiring 16-bit FAT entries
  820.   can be calculated from:
  821.  
  822.         (4079 clusters x [sectors/cluster] x [bytes/sector]) = Disk size
  823.  
  824.   Improper FAT length entry due to modification of the above variables produces
  825.   input/output disk errors; switches /X-, /X+ and /B-n monitor the variables to
  826.   verify whether disk contents should be preseverved or not.
  827.  
  828.  
  829.  
  830.   RAM-DISK IDENTIFICATION & DOS VERSION
  831.  
  832.   DOS assigns the first available drive letter to a RAM-disk within the default
  833.   range A to E or, for DOS version 3 or higher, the range A to Z if the command
  834.   <LASTDRIVE=Z> is included in CONFIG.SYS.  Such a letter is shown by XDISK.SYS
  835.   when using DOS 3.0 or higher, but when using earlier MS-DOS versions.
  836.  
  837.   An xDISK RAM-disk can be identified by its volume label and time of creation,
  838.   and by the OEM identification in the boot sector, all of which are determined
  839.   by the program version.  If executed in an 80286 processor or higher CPU, the
  840.   date of creation of the RAM-disk is the current date in the CMOS chip; for an
  841.   8088/8086 CPU, such date is that of the assembly of the xDISK version.
  842.  
  843.  
  844.  
  845.   DIRECT DRIVER COMMUNICATION
  846.  
  847.   Starting from version 2.52, the device header of each XDISK.SYS installed has
  848.   the string:
  849.                   xDISK[0]unit:[0]<d>[-1]
  850.  
  851.   where the ending delimiter byte [-1] contains the hexadecimal value 0FFh, the
  852.   null separator bytes [0] contain 0, and the drive designator <d> is the upper
  853.   case letter assigned to the RAM-disk (MS-DOS 3.0 or higher version) or a null
  854.   byte (MS-DOS versions earlier than 3.0).
  855.  
  856.   The identifying string is used to locate the driver for direct communications
  857.   between XDISK.EXE and XDISK.SYS.  Note that when this string does not contain
  858.   a designator letter (as when using DOS 2.10), switches /A, /G, /P, /R, and /V
  859.   can only be assigned to the first XDISK.SYS driver found in memory.
  860.  
  861.   When XDISK.EXE is executed, the program searches memory for the corresponding
  862.   identifying string.  If the correct drive is not specified, or the driver has
  863.   been installed in the upper memory area, the search may extend as high as the
  864.   first 1 Mb of memory (see below).
  865.  
  866.  
  867.                 --------------
  868.  
  869.  
  870.   6.  IDENTIFICATION IN MEMORY MAP UTILITIES
  871.  
  872.   The fact that the xDISK driver can be loaded either via the CONFIG.SYS file
  873.   or from the DOS command line may lead to some confusion when mapping memory
  874.   usage, since with some MS-DOS versions other than 5.0, an anomalous mapping
  875.   of installed drivers is obtained after a DOS command-line loading.
  876.  
  877.   The following are partial displays obtained with the memory mapping utility
  878.   PMAP.EXE (version 2.10, (c) 1986-1991 by The Cove Software Group) after the
  879.   upper-memory loading of 2 xDISK disks via CONFIG.SYS, followed by a command
  880.   line loading of a third drive in lower memory, using XDISK.SYS version 3.31
  881.   (386+) under COMPAQ DOS 3.31; the access to the UMA was controlled by a 386
  882.   specific memory manager that provided the UMBs and implemented the XMS:
  883.  
  884.  
  885.       Device driver information:
  886.     Name     Address    Size    Strt  Intr  CHR IOC
  887.       --------  ---------  ------  ----  ----  --- ---
  888.       NUL       0070:25D8          1599  159F   *
  889.       L:     0BCF:0000      96  0012  0018       *  <- 2nd xDISK drive L:
  890.       K:     0BCB:0000      96  0012  0018       *  <- 1st xDISK drive K:
  891.  
  892.  
  893.       Device driver information:
  894.     Name     Address    Size    Strt  Intr  CHR IOC
  895.       --------  ---------  ------  ----  ----  --- ---
  896.       NUL       0070:25D8          1599  159F   *
  897.       M:     1165:0000          0038  0044       *  <- 3rd xDISK drive M:
  898.       L:     0BCF:0000   22880  0012  0018       *  <- 2nd xDISK drive L:
  899.       K:     0BCB:0000      96  0012  0018       *  <- 1st xDISK drive K:
  900.  
  901.  
  902.   Notice that after the command-line loading the third disk, the reported size
  903.   of the 2nd disk, which is only 96 bytes in conventional memory, is increased
  904.   to about 22kb.  This result, which can be obtained with other driver mapping
  905.   utilities, is harmless and can be safely ignored.
  906.  
  907.                 ----------------
  908.  
  909.  
  910.   7.  LICENSE INFORMATION
  911.  
  912.   This documentation, programs, and other files distributed in this software
  913.   package (the "Software")  are the copyrighted property of FM de Monasterio
  914.   (the "Author"), who provides the Software and licenses its use. All rights
  915.   are reserved.
  916.  
  917.   The file XDISK.REG contains a form needed to register this Software.
  918.  
  919.   SINGLE USER LICENSE.  Upon registration, you are granted a nontransferable
  920.   license to use this Software in a single computer at a time.  The Software
  921.   may also be transferred to another computer, provided that the Software is
  922.   used only in one (1) computer at any time; under the license, the Software
  923.   may NOT be installed on a network server.
  924.  
  925.   SITE/15-PCs LICENSE.  Upon registration, you are granted a nontransferable
  926.   license to use this Software in a single site, or a set of sites, provided
  927.   this Software is not used in more than fifteen (15) computers at any time,
  928.   and that such computers are located exclusively within the site.  Licenses
  929.   for more machines are available at discounted prices.
  930.  
  931.   SOFTWARE BUNDLING LICENSE.  Please write to the Author.
  932.  
  933.   REFUNDS POLICY.  If a problem notified within ninety (90) days of shipping
  934.   of the registered copy cannot be solved, the registration fee (but not the
  935.   shipping costs) will be refunded upon receiving a written request with the
  936.   original diskette(s) enclosed.
  937.  
  938.   UPGRADE POLICY.  Program upgrades are limited to licensed users.  Upgrades
  939.   within the same major version (e.g. release 4.00 through 4.99) are free of
  940.   charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-kb
  941.   kb diskette is included with the request.  Other upgrades are charged half
  942.   the (single-user/site) registration fee.  See enclosed file XDISK.UPG.
  943.  
  944.   TECHNICAL SUPPORT.  A phone number for technical support is made available
  945.   to site licenses for 100 machines or more; other licensed users must write
  946.   to the Author who will contact them.
  947.  
  948.  
  949.  
  950.   U.S. GOVERNMENT INFORMATION
  951.  
  952.   The use, duplication, or disclosure by the U.S. Government of the Software
  953.   is subject to the restricted rights applicable to commercial software that
  954.   are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
  955.   and Computer Software' clause, document DFARS 52.227-7013. The contractor/
  956.   manufacturer is FM de Monasterio, P.O. Box 219, Cabin John, MD 20818-0219.
  957.  
  958.                 ----------------
  959.  
  960.   DISTRIBUTION
  961.  
  962.   You may distribute this Software via magnetic and/or electronic means, but
  963.   you are specifically prohibited from:
  964.  
  965.   - Charging fees or asking donations in exchange of or payment
  966.     for copies of this Software.
  967.  
  968.   - Distributing this Software with commercial products without
  969.     the written, express permission in advance from the author.
  970.  
  971.   - Distributing this Software via a for-profit organization or
  972.     group, either alone or with other software.
  973.  
  974.   - Modifying any contents of this Software, including, but not
  975.     limited to, the copyright notice and this license.
  976.  
  977.  
  978.   The unauthorized copying, decompiling or disassembling of this Software is
  979.   prohibited.  Any other use of this Software is also prohibited without the
  980.   express, written permission in advance from the author.
  981.  
  982.   Latest program releases may be found at the Information Exchange BBS, 202-
  983.   433-6639 (703-836-0748 after March 1992), as a compressed archive file.
  984.  
  985.                 ----------------
  986.  
  987.   WARRANTY DISCLAIMER
  988.  
  989.   The Author cannot and does not warrant that any functions contained in the
  990.   Software will meet your requirements, or that its operations will be error
  991.   free.  The entire risk as to the Software performance or quality, or both,
  992.   is solely with the user and not the Author.  You assume responsibility for
  993.   the selection of the program to achieve your intended results, and for the
  994.   installation, use, and results obtained from the Software.
  995.  
  996.   The Author makes no warranty, either implied or expressed, including with-
  997.   out limitation any warranty with respect to this Software documented here,
  998.   its quality, performance, or fitness for a particular purpose. In no event
  999.   shall the Author be liable to you for damages, whether direct or indirect,
  1000.   incidental, special, or consequential arising out the use of or any defect
  1001.   in the Software, even if the Author has been advised of the possibility of
  1002.   such damages, or for any claim by any other party.
  1003.  
  1004.   All other warranties of any kind, either express or implied, including but
  1005.   not limited to the implied warranties of merchantability and fitness for a
  1006.   particular purpose, are expressly excluded.
  1007.  
  1008.  
  1009.   LIMITATION OF REMEDIES
  1010.  
  1011.   The information contained in the documentation for the Software is subject
  1012.   to change without notice.
  1013.  
  1014.   The Author's entire liability, and your exclusive remedy shall be: (1) the
  1015.   replacement of an original Software diskette not meeting the above Limited
  1016.   Warranty and which is returned to the Author along with proof of purchase,
  1017.   or (2), if the Author is unable to deliver a replacement diskette which is
  1018.   free of defects, you may terminate the License Agreement by returning this
  1019.   Software and the corresponding license fee will be returned.
  1020.  
  1021.   By using the Software, you acknowledge (1) to have read and understood all
  1022.   parts of this document and (2) to have agreed with and accepted all of its
  1023.   provisions without any reservation.
  1024.  
  1025.                 ----------------
  1026.  
  1027.   Refer all inquiries to:
  1028.                 FM de Monasterio
  1029.                 P.O. Box 219
  1030.                 Cabin John, MD 20818-0219
  1031.                 USA
  1032.  
  1033.     ┌─────────────────────────────────────────────────────────────┐
  1034.     │ Trademarked names are the property of the respective owners │
  1035.     └─────────────────────────────────────────────────────────────┘
  1036.  [END]
  1037.