home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / MEM_MAN / DOSMAX17.ZIP / DOSMAX.DOC < prev    next >
Text File  |  1992-07-23  |  34KB  |  703 lines

  1.  
  2. ================================================================================
  3.        DOSMAX.EXE :  Ver. 1.7, Copyright (1992) by Philip B. Gardner
  4.        DOSM86.EXE (8086):  Ver. 1.7, Copyright (1992) by Philip B. Gardner
  5. ================================================================================
  6.  
  7.   DOSMAX.EXE is a device driver which will maximize the use of low memory
  8.   by moving MS-DOS 3.1 and above system data to upper memory blocks provided
  9.   by your upper memory manager.  It is not necessary to use any other
  10.   programs to create upper memory data types like FILES, BUFFERS, FCBS,
  11.   or LASTDRIV from Quarterdeck's QEMM386.  These data types are referred
  12.   to as "sub-segments" in the rest of this document.
  13.  
  14.   In addition, if you are a DOS 5.0 user and are loading DOS high, then
  15.   DOSMAX can prevent DOS from loading into the HMA and move the DOS kernel
  16.   to an upper memory block.  This improves performance and allows programs
  17.   which use the HMA more efficiently to utilize the HMA instead.  Such 
  18.   programs include Microsoft WINDOWS and Quarterdeck's DESQVIEW.  DOSMAX
  19.   can also move a portion of COMMAND.COM into an upper memory block instead
  20.   of the HMA.  This feature recovers space in low memory which is available
  21.   when DOS is in the HMA.
  22.  
  23.   Support is automatically provided for Microsoft WINDOWS 3.0 so that all
  24.   FILES in your CONFIG.SYS can be loaded high.  Normally this would prevent
  25.   WINDOWS from running, but the problem is circumvented.
  26.  
  27.   Support is provided for:
  28.  
  29.     * allowing DOS the HMA, but still moving the sub-segment data types
  30.     * forcing DOS low, sub-segments still moveable
  31.     * moving only the DOS SYSTEM code block into upper memory
  32.     * providing only WINDOWS high file support
  33.     * moving a portion of COMMAND.COM into high memory instead of the HMA
  34.     * moving the primary COMMAND.COM's environment (master environment)
  35.     * DOS Versions 3.1 - 3.31, DOS 4.x, and DOS 5.x (or better?)
  36.  
  37.   DOSMAX automatically moves all the data that can be moved dependent only
  38.   upon the availability of upper memory.  It will automatically stop moving
  39.   data when it determines that memory would be fragmented if the move was
  40.   completed.
  41.  
  42.   Finally, a command line mode is provided to move the Master Environment,
  43.   control Windows support, and check and report on the status of the high
  44.   memory area reserved for COMMAND.COM.
  45.  
  46. ================================================================================
  47.  
  48. (Requirements)::
  49.  
  50.         * 186 processor or better
  51.           (DOSM86.EXE now included to support 8086/8088 processors)
  52.         * Requires MS-DOS Version 3.10 or better
  53.  
  54. ================================================================================
  55.  
  56. (Installation)::
  57.  
  58.         (CONFIG.SYS)::
  59.  
  60.         Installation of DOSMAX.EXE requires modifying the contents of
  61.         your CONFIG.SYS file.
  62.  
  63. (Generic Configuration)::
  64.  
  65.         This configuration should work and be the most efficient in 95%
  66.         of all configurations.  For a few real world examples see
  67.         EXAMPLES.DOC
  68.        
  69.         DOS=HIGH[,UMB]                    (DOS 5.0 only)
  70.         DEVICE=STOPMAX.SYS [options]      (Stops kernel from loading in HMA)
  71.         DEVICE=(xms/umb memory manager)
  72.         DEVICE=DOSMAX.EXE [options]       (DOSMAX loads high automatically)
  73.         SHELL=COMMAND.COM /P
  74.         BUFFERS=20
  75.         FILES=40
  76.         LASTDRIVE=Z
  77.  
  78.         DOS 5.0 users should configure DOS to load high into the HMA.  The
  79.         UMB parameter is optional, since both DOS 5.0 upper memory management
  80.         and XMS upper memory blocks are supported.
  81.  
  82.         DOS=HIGH[,[UMB][NOUMB]] (Both DOS 5.0 UMB's and XMS UMB's supported)
  83.  
  84.         Insert a DEVICE= line for DOSMAX.EXE in your config.sys.  Version 1.5
  85.         of DOSMAX recommended that DOSMAX be loaded before the XMS and UMB
  86.         memory manager, but DOSMAX should now be loaded after the XMS manager
  87.         (DOSMAX will automatically load itself high if UMB's are available
  88.         or you may use your memory manager's device loader).  Version 1.7
  89.         provides another way to ensure that the DOS 5.0 kernel is moved into
  90.         a UMB by DOSMAX.  The driver STOPMAX.SYS is inserted "before" the
  91.         XMS manager and DOSMAX is inserted "after" the XMS manager (see
  92.         STOPMAX.DOC).
  93.  
  94.         HIMEM.SYS from Microsoft always puts the DOS 5.0 kernel into the
  95.         HMA before it is through initializing and then puts its own code
  96.         into the HMA.  If you are able to load HIMEM.SYS high (using some
  97.         upper memory providers, not EMM386.EXE), you can now use the /I+
  98.         switch or /B+ switch to stop HIMEM from loading the DOS kernel into
  99.         the HMA, and DOSMAX will put it into a UMB instead.  The /B+ switch
  100.         is the default for STOPMAX because it requires no resident memory.
  101.         If you use only DOS 5.0 memory management, meaning HIMEM.SYS and
  102.         EMM386.EXE, you should not load the DOS kernel into a UMB (see /I+
  103.         switch), but use /H+ to maximize low memory.
  104.  
  105.         The /A0 option disables high memory support for COMMAND.COM.  This
  106.         switch should be used if the primary shell is not COMMAND.COM (for
  107.         DOS 5.0 and above).  You should also use /A0 if you are using
  108.         SHELLMAX.COM to load COMMAND.COM high, unless you elect to allow
  109.         DOS into the HMA (/H+), in which case, /A0 is automatic.
  110.  
  111.         DEVICE=STOPMAX.SYS [options]
  112.         DEVICE=(Memory Manager)
  113.         DEVICE=DOSMAX.EXE [/A0][other options]
  114.  
  115.         One advantage of using DOSMAX.EXE, is that the STACKS=, BUFFERS=,
  116.         FCBS=, FILES=, and LASTDRIVE= parameters may be configured normally.
  117.  
  118.         STACKS=9,256            (or =0,0 or default 9,128...etc...)
  119.         BUFFERS=XX[,YY]         (XX = # of buffers, YY = lookahead cache)
  120.         FCBS=XX,YY              (XX = # of FCBS, YY = # of protected FCBS)
  121.         FILES=NN                (NN = # of system files)
  122.         LASTDRIVE=Z             ( Z = Last reserved drive)
  123.  
  124.         Remove all INSTALL= lines from your CONFIG.SYS, or the sub-segment
  125.         data types will not be moveable.  This action is not necessary if
  126.         the program leaves no resident portion of itself in lower memory.
  127.  
  128.         REM INSTALL=(TSR)       (Remove to maximize memory)
  129.  
  130.         By default, DOSMAX.EXE will generate a message for each successful
  131.         operation or event.  The display then pauses to allow you to
  132.         read the report.  After you are satisfied with the configuration
  133.         and you want to disable the REPORT and PAUSE feature, use:
  134.  
  135.         DEVICE=DOSMAX.EXE /R- /P- 
  136.  
  137.         (AUTOEXEC.BAT)::
  138.  
  139.         It is not necessary to modify the contents of AUTOEXEC.BAT, but
  140.         since DOS data creators like FILES and BUFFERS are no longer
  141.         required, it is recommended that these lines be removed
  142.  
  143.         REM BUFFERS=XX          (Remove FILE and BUFFER creator TSR's)
  144.         REM FILES=NN
  145.  
  146.         In addition, the AUTOEXEC may be modified to automatically move
  147.         the master enviroment to high memory.  This feature will only
  148.         work with COMMAND.COM and is unlikely to work with other primary
  149.         shells like 4DOS from J.P. Software.  4DOS already has a feature
  150.         to move most of the primary shell and the master environment high.
  151.         Use the /E- switch to disable the master environment move.
  152.  
  153.         DOSMAX.EXE [/E-]        (Add a command line invocation of DOSMAX)
  154.  
  155.         By default, DOSMAX.EXE, invoked from the command line, will generate
  156.         a message for each successful operation or event.  The display will
  157.         not pause in the command line mode unless the /P+ switch is used.
  158.         After you are satisfied with the configuration and you want to disable
  159.         the REPORT feature, use:
  160.  
  161.         DOSMAX.EXE /R- [/E-]
  162.  
  163.         All switch options and possible messages for DOSMAX are detailed
  164.         below:
  165.  
  166. (Loading DOSMAX High)::
  167.  
  168.         You may load DOSMAX high with your high memory loader, or DOSMAX
  169.         will now load itself high if upper memory is available.  If you
  170.         want DOSMAX to move the DOS 5.0 kernel to a UMB, then DOS must
  171.         not be in the HMA already when DOSMAX loads.  DOSMAX will report
  172.         that "DOS is HIGH already" and abort if this condition is true.
  173.         Use STOPMAX.SYS to stop the kernel from moving into the HMA.
  174.         STOPMAX must be loaded before the xms/umb memory manager, so that
  175.         the DOS kernel is not high when DOSMAX initializes.  If DOS is
  176.         already in the HMA (not using STOPMAX), then you must use the
  177.         /H+ switch to optimize low memory correctly.
  178.  
  179. ================================================================================
  180.  
  181. (Syntax)::
  182.  
  183.         The only thing to remember about syntax for the command line is
  184.         that just about anything works.  What this means is that you
  185.         should be able to type in the options on the command line the
  186.         way they make sense to you.
  187.  
  188.         To illustrate this point, the following command line example
  189.         is mutated several different ways.
  190.  
  191.         DEVICE=DOSMAX.EXE /H+ /R- /P- /A0
  192.         DEVICE=DOSMAX.EXE -H+ -R- -P- -A0
  193.         DEVICE=DOSMAX.EXE H R- P- A0
  194.         DEVICE=DOSMAX.EXE HR-P-A
  195.         DEVICE=DOSMAX.EXE -H+-R-P-A
  196.  
  197.         ... and so on.
  198.  
  199. (Switch Options)::
  200.  
  201.         (REPORT)::      R[+ or -]        (toggle:  default +)
  202.  
  203.         Use /R- to disable the report after you are satisfied
  204.         with the configuration of DOSMAX.EXE
  205.  
  206.         (PAUSE)::       P[+ or -]        (toggle:  default +)
  207.  
  208.         Use /P- to disable the pause after the report as long
  209.         as there are no errors or warnings.
  210.  
  211.         (WINDOWS)::     W[+ or -]        (toggle:  default -)
  212.  
  213.         Use /W+ to enable the old Windows high file support.  This
  214.         switch is mainly provided for diagnostic purposes, but can
  215.         be used if the new method does not work with your configuration.
  216.         The new method uses 2 system file handles and cannot not be enabled
  217.         or disabled from the command line.  This switch will not
  218.         work from the command line unless /W+ was used in the device
  219.         line or /Y- (disable new method) was used in the device line.
  220.         This switch is also not possible if DOSMAX.EXE is loaded into
  221.         upper memory.
  222.  
  223.         (NEW WINDOWS):: Y[+ or -]        (toggle:  default +)
  224.  
  225.         Use /Y- to disable the new windows support added in Version 1.7
  226.         of DOSMAX.  This switch is for non-windows users who wish to
  227.         recover the 2 system file handles used by this method, but no
  228.         low memory.  The new method automatically supercedes /W+ if DOSMAX
  229.         is loaded into upper memory, otherwise using /W+ overrides this
  230.         method automatically.  The new method cannot be enabled or disabled
  231.         from the command line.  If you disable both methods, you may still
  232.         start Windows with FW4&5.BAT for DOS Versions 4.x and 5.x, or
  233.         with FW3.BAT for the rare user who has a Version of DOS 3.x higher
  234.         than 3.31.
  235.  
  236.         (SKIPSUBS)::    S[+ or -]        (toggle:  default -)
  237.  
  238.         Use /S+ to tell DOSMAX to not move sub-segments data types.
  239.         The switch is provided mainly for diagnostic purposes, but
  240.         may be useful when not enough high memory is available to
  241.         move both the DOS code block and the sub-segments, or if
  242.         you find this feature does not work in your configuration.
  243.  
  244.         (LOW)::         L[+ or -]        (toggle:  default -)
  245.  
  246.         Use /L+ to allocate DOS code block in low memory.  As
  247.         long as DOS=HIGH is still in your CONFIG.SYS, the
  248.         sub-segments should be moveable.  This switch may be useful
  249.         if there is not enough high memory to load both the DOS code
  250.         block and the sub-segment data types into High Memory and a
  251.         free HMA is desired.
  252.  
  253.         (HIGH)::        H[+ or -]        (toggle:  default -)
  254.  
  255.         Use /H+ to allow DOS to load into the HMA anyway.  This
  256.         switch may also be used with DOS=LOW, since DOSMAX simply
  257.         ignores whether DOS is HIGH or LOW when it initializes
  258.         and checks later to see if it is safe to move sub-segments.
  259.         There is a problem which will be encountered by DOS 5.0
  260.         HIMEM.SYS users, DOSMAX will be unable to prevent DOS from
  261.         going into the HMA, because HIMEM automatically puts itself
  262.         in the HMA when initializing and before any other program can
  263.         reserve the HMA.  The sub-segments will be moved anyway, but
  264.         the space will still be reserved in low memory.  Use /H+ to
  265.         change the timing of the sub-segment moves so that this low
  266.         space is freed, or use an alternative XMS manager like QEXT.SYS
  267.         from Quarterdeck.  DOSMAX 1.7 adds the /I switch to inhibit
  268.         this behavior of HIMEM.SYS (see /I+ below).
  269.  
  270.         (INHIBIT HIMEM) I[+ or -]        (toggle:  default -)
  271.  
  272.         Use /I+ to stop HIMEM.SYS from loading DOS HIGH.  This switch
  273.         is intended for users who load HIMEM.SYS from Microsoft high
  274.         after their UMB provider.  This option is not very useful if
  275.         HIMEM.SYS is not loaded high because HIMEM will grow to about
  276.         30k in size.  If you still want to inhibit HIMEM, then load it
  277.         last, to minimize the "growth."  The reason HIMEM "grows" is
  278.         because the code which normally goes to the HMA is fixed at
  279.         offset 0A000, so if HIMEM is loaded below 0A00h, the size of
  280.         HIMEM grows to 0A00h + the size of the HMA code + the size of
  281.         the XMS handle table.  This option affects the size of DOSMAX
  282.         and adds 32 bytes.
  283.  
  284.         (NOPAUSE)::     N[+ or -]        (toggle:  default -)
  285.  
  286.         Use /N+ to never pause after the report, even if there
  287.         are errors.  This switch can be used if your configuration
  288.         generates a warning or error message which you choose to ignore.
  289.  
  290.         (VDISKHDR)::    V[+ or -]        (toggle:  default -)
  291.  
  292.         Use /V+ to use an alternate method of stopping DOS from
  293.         allocating the HMA.  This switch is only necessary if
  294.         DOSMAX reports that the DOS version is incompatible, and
  295.         it will only work with memory managers which can detect a
  296.         VDISK Header in the HMA when the memory manager initializes
  297.         and mark's it as allocated.
  298.  
  299.         (FILE SIZE)::   Fnn                (value:  nn = 59 )
  300.  
  301.         Use /Fnn to set the System File Size:  The upper limit of nn
  302.         is 61 in device mode, and 82 in command line mode.  The lower
  303.         limit is 40.  Values other than the MS-DOS 4.0 - 5.0 System 
  304.         File Size of 59 are only allowed if the true MS-DOS version is
  305.         greater than 5.0.  The /Fnn switch is only necessary if DOSMAX.EXE
  306.         can't determine the System File Size automatically.
  307.  
  308.         (ALLOCATION SIZE)::     Annnnn    (value:  nnnnn = 2080)
  309.  
  310.         Use /Annnnn to set the number of bytes reserved in upper memory
  311.         for COMMAND.COM and other DOS 5.0 and above programs which have
  312.         the capability of moving a portion of themselves into the HMA.
  313.         These programs use INT 2Fh Function 4Ah to allocate a fixed number
  314.         of bytes from the HMA.  DOSMAX has the capability of emulating
  315.         this function in high memory.  By default, DOSMAX reserves 2080
  316.         bytes, which is the space needed to shrink COMMAND.COM.  To
  317.         reserve more memory, increase this value.
  318.  
  319.         The command line mode of DOSMAX reports the size and allocation
  320.         status of this area.  If the amount allocated or requested is not
  321.         equal to the amount reserved, DOSMAX will report what the proper
  322.         value should be.  Users of replacement shells like 4DOS.COM from
  323.         J.P. Software, should disable this option with /A0. Disabling the
  324.         option or using the report feature of the command line mode to
  325.         set the exact amount of memory required, is recommended since
  326.         INT 21h 3306h (Get True Ver.), which is also hooked by DOSMAX,
  327.         must return with a bit set which indicates that DOS is in the HMA
  328.         until the amount of memory reserved is completely exhausted.
  329.  
  330.         (ENVIRONMENT)::         E[+ or -]       (toggle:  default +)     
  331.  
  332.         Use /E- to disable finding and moving the master environment to
  333.         upper memory.  This feature is for COMMAND.COM users, so, the
  334.         option should be disabled for other shells such as 4DOS from
  335.         J.P. Software which have their own option to move the environment
  336.         to upper memory.  DOSMAX does not support the master environment
  337.         for these alternative shells independently and the feature is
  338.         unlikely to function with these alternative shells.
  339.  
  340.         (TEST ENVIRONMENT)::    T[+ or -]       (toggle:  default -)
  341.  
  342.         Use /T+ to enable a master environment move with a special test
  343.         mode enabled.  This feature implements an extra level of security.
  344.         The algorithum verifies that the master environment is both found
  345.         and that it is moveable, by testing with a shell command which
  346.         affects the master environment through the INT 2Eh interface.  It
  347.         is recommended that this switch not be used in a batch file.  When
  348.         the shell processes an INT 2Eh command, it first completes the
  349.         current batch file, then performs the INT 2Eh command.  This
  350.         means that if DOSMAX.EXE is run from the AUTOEXEC.BAT file to move
  351.         the master environment and the /T+ option is set, then its command
  352.         line always appears to be the last line of the batch file.  Do not
  353.         execute DOSMAX.EXE from a nested batch file with the /T+ option.
  354.  
  355.         (MEMORY STRATEGY)::     Mn              (value:  n = 0)   
  356.  
  357.         Use /Mn to control the memory allocation strategy which DOSMAX
  358.         uses to allocate upper memory blocks.  The default strategy is
  359.         is First Fit (/M0).  This means that DOSMAX will use the
  360.         first upper memory block returned by the XMS manager.  The other
  361.         available options are Best Fit (/M1) and Last Fit (/M2).  Best Fit
  362.         uses the block which most closely matches the size needed, and
  363.         Last Fit uses the last block big enough to handle the request.
  364.         Values other than 0, 1, or 2 are ignored and the previous setting
  365.         of this option is used.
  366.  
  367.         (LOAD HIGH)::           X[+ or -]       (toggle:  default +)
  368.  
  369.         Use /X- to stop DOSMAX.EXE from loading itself high if upper
  370.         memory is available.  This switch is intended for diagnostic
  371.         purposes only, since if you use your memory manager to load
  372.         DOSMAX.EXE high this condition is detected and no second upper
  373.         memory block will be allocated.
  374.  
  375.         (STOP DOS)::            B[+ or -]       (toggle:  default -)
  376.  
  377.         Use /B+ to stop DOS from loading in the HMA using a method
  378.         which patches the copy of DOS 5.0 initialization code in memory
  379.         when DOSMAX initializes.  This method will search and "patch out"
  380.         the DOS to HMA code.  This option was developed and tested under
  381.         MSDOS 5.0 and is not guaranteed to work with DOS versions later
  382.         than 5.0, but then many of the algorithums in DOSMAX depend upon
  383.         "undocumented" features of DOS which are always subject to change
  384.         anyway.  The advantage of this method is that it works no matter
  385.         which memory manager is used or how it is configured.
  386.  
  387.         (UNHOOK INT)::          Unn            (value:  default none)
  388.  
  389.         Use /Unn to tell DOSMAX that INT nn is to be "unhooked" from
  390.         DOS STACKS when the STACKS are moved high.  This switch is useful
  391.         for controlling which hardware interrupts are routed through the
  392.         DOS STACKS mechanism.  Microsoft's EMM386 may cold-boot or lock-up
  393.         if STACKS are present and moved to high memory, CTRL-ALT-DEL is
  394.         pressed (warm-boot), and INT 09h is hooked by DOS STACKS.  The
  395.         DOSMAX option /U09 maybe used to work-around this problem.  The
  396.         interrupt number is in Hex-Notation and the valid values are
  397.         the hardware interrupts 02, 08, 09, 0A, 0B, 0C, 0D, 0E, 70, 72,
  398.         73, 74, 76, & 77.  Invalid interrupt numbers are ignored.  Multiple
  399.         invocations of this switch are permissable.
  400.         
  401.         *  everything in square brackets "[]" is optional
  402.  
  403. (CONFIG.SYS Line)::
  404.  
  405.         DEVICE=DOSMAX.EXE [/-][R-P-W-Y-X-L+H+I+N+V+B+FnnAnnnnMnUnn]
  406.  
  407.         device default: /R+/P+/Y+/N-/X+/A2080/M0     (E & T ignored)
  408.  
  409.         *  Report status messages
  410.         *  Pause after report
  411.         *  Enable New Windows Support
  412.         *  Pause on errors or warnings
  413.         *  Reserve 2080 bytes for INT 2Fh Function 4Ah (COMMAND.COM)
  414.         *  Use the First Fit memory allocation strategy
  415.         *  Load DOSMAX high if upper memory available
  416.  
  417. (Command Line Mode)::
  418.  
  419.        C:\> DOSMAX.EXE [/-][R+P+W-N+E+T-Fnn]
  420.  
  421.         command line default: /R+/P-/W+/N+/E+/T-/Mn (ignore Y,S,L,H,I,V,A,X,B,U)
  422.  
  423.         *  Report status messages
  424.         *  Don't pause after report
  425.         *  Enable Windows Support
  426.            (only if /Y- or /W+ is on the device line)
  427.         *  Never Pause even on errors or warnings
  428.         *  Find and move the master environment
  429.         *  No special environment test
  430.         *  Use Allocation Strategy set in device
  431.            (can be overridden with /Mn)
  432.  
  433. ================================================================================
  434.  
  435. (Report Format)::
  436.  
  437.         DOSMAX.EXE :  Ver. 1.7, Copyright (1992) by Philip B. Gardner
  438.              ERROR :  (Error Messages)
  439.            WARNING :  (Warning Messages)
  440.             ADVICE :  (Advisory Messages)
  441.                    :  (Report Messages)
  442.                    :  (Allocation Status)
  443.              PAUSE :  Press any key to continue... 
  444.  
  445. ================================================================================
  446.  
  447. (Error Messages)::
  448.  
  449.         MS-DOS version 3.10 or above is required
  450.         Can't load in High Memory
  451.         DOS version is not compatible
  452.         An 80186 processor or better is required
  453.         Include DOS=HIGH in CONFIG.SYS
  454.         Couldn't write VDISK Header
  455.         Device not found, or version mismatch
  456.         Stop DOS to HMA patch not successful
  457.  
  458. ================================================================================
  459.  
  460. (Warning Messages)::
  461.  
  462.         Unknown option in command line
  463.         Extra characters on command line
  464.         DOS is HIGH already
  465.         Unable to free HMA
  466.         A20 Not Disabled
  467.         INT 00h is not pointing into STACKS
  468.         DOS Sub-Segment list is unmoveable
  469.         System File Size not determined or out of range
  470.         Unable to validate System Data area
  471.         Couldn't size System File Table
  472.         Couldn't size System FCB Table
  473.         Couldn't trace Buffer Chain
  474.         Couldn't find Lastdrive Array
  475.         Master Environment is not moveable$
  476.  
  477. ================================================================================
  478.  
  479. (Advisory Messages)::
  480.  
  481.         Should be the first DEVICE= in CONFIG.SYS
  482.         Set STACKS=0,0 in CONFIG.SYS
  483.         Possible INSTALL= in CONFIG.SYS
  484.         Try using /Fnn switch
  485.         Try using /H+ switch (forced)
  486.         Try using /V+ switch
  487.         Try using /B+ switch
  488.         For maximum efficiency use /A00000
  489.  
  490. ================================================================================
  491.  
  492. (Report Messages)::
  493.  
  494.         HMA was reserved, but is now free
  495.         A20 Disabled
  496.         DOS System forced low
  497.         DOS System in HMA
  498.         DOS System not in HMA
  499.         DOS Sub-Segments skipped
  500.         Old Windows support enabled
  501.         Old Windows support disabled
  502.         Windows support enabled
  503.         Windows support method may have failed
  504.         System File Size set to 00
  505.         Unhooked DOS STACKS INT 00h
  506.         Found 00000 bytes allocated of 00000 bytes
  507.  
  508. ================================================================================
  509.  
  510. (Allocation Status)::
  511.  
  512.         SYSTEM   moved to 0000
  513.         Not enough Hi Memory for SYSTEM  
  514.         STACKS   moved to 0000
  515.         Not enough Hi Memory for STACKS
  516.         LASTDRIV moved to 0000
  517.         Not enough Hi Memory for LASTDRIV
  518.         BUFFERS  moved to 0000
  519.         Not enough Hi Memory for BUFFERS 
  520.         WKBUFFER moved to 0000
  521.         Not enough Hi Memory for WKBUFFER
  522.         FCBS     moved to 0000
  523.         Not enough Hi Memory for FCBS    
  524.         FILES    moved to 0000
  525.         Not enough Hi Memory for FILES   
  526.         COMMAND  space at 0000
  527.         Not enough Hi Memory for COMMAND
  528.         DOSMAX moved to 0000
  529.         Not enough Hi Memory for DOSMAX
  530.  
  531. ================================================================================
  532.  
  533. (Sub-Segment List)::
  534.  
  535.         The Sub-Segment List is searched from bottom to top for a block
  536.         of moveable sub-segments, then moved in reverse order.  The
  537.         termination of the list must be the MCB of the PSP of DOSMAX.EXE.
  538.         This prevents fragmentation of memory.  This means INSTALL=
  539.         should not be used in CONFIG.SYS or else the sub-segments will
  540.         not be moveable.
  541.  
  542.         The following chart attempts to show what can and cannot be moved
  543.         with DOSMAX.EXE
  544.  
  545.                         Sub-Segment Type                Not Moved  Moved
  546.         ----------------------------------------------- ---------  -----
  547.         "D"        DEVICE DRIVER                            x 
  548.         "E"        DEVICE DRIVER APPENDAGE                  x
  549.         "I"        IFS (Installable File System) DRIVER     x
  550.         "F"        FILES=                                            x
  551.         "X"        FCBS=                                             x
  552.         "C"        BUFFERS /X Option (EMS workspace area)            x
  553.         "B"        BUFFERS=                                          x
  554.         "L"        LASTDRIVE=                                        x
  555.         "S"        STACKS=                                           x
  556.         "T"        INSTALL=                                 x (ignored)
  557.  
  558. ================================================================================
  559.  
  560. (Changes)::
  561.  
  562.     (Version 1.1)::
  563.  
  564.     (1) Fixed problem not cleaning up properly, when DOS goes to HMA
  565.         anyway, (only /V+ switch, and some XMS Managers).
  566.  
  567.     (2) Fixed problem that occurred if no XMS UMB's available, and DOS 5
  568.         UMB's tried, and if no DOS UMB's available either (not just not
  569.         enough), memory was allocated from low memory, even though
  570.         allocation strategy was set to try UMB's only.  Made sure UMB
  571.         Link state was set properly.
  572.  
  573.     (3) Added support for DOS Versions 3.10 - 3.31 and DOS Version 4.x
  574.  
  575.     (4) Improved File Size determination algorithum
  576.  
  577.     (Version 1.2)::
  578.  
  579.     (1) Improved detection of DOS=LOW, and reduced the possibility of
  580.         an errant "Should be the first DEVICE= in CONFIG.SYS" message.
  581.  
  582.     (Version 1.3)::
  583.  
  584.     (1) Added support for INT 2Fh, Function 4Ah, so that COMMAND.COM
  585.         (and others??) can move a portion of their code to high memory
  586.         too.  For COMMAND.COM users with DOS 5.0, this saves 2.1k of
  587.         low memory.  Added the /Annnn switch to support this feature,
  588.         plus an allocation status check for the command line mode.
  589.         4DOS users should disable this feature with option /A0.
  590.  
  591.     (Version 1.4)::
  592.  
  593.     (1) Added capability to find and move the master environment for
  594.         COMMAND.COM users.  Also implemented a special test mode with
  595.         the /T+ option, which verifies that the master environment
  596.         has been found and that it is moveable.  This test mode should
  597.         only be necessary for diagnostic purposes.
  598.  
  599.     (Version 1.5)::
  600.  
  601.     (1) Added base 10 number display for /A parameter and changed
  602.         System File Size message to base 10.
  603.  
  604.     (Version 1.6)::
  605.  
  606.     (1) Added /Mn option, to allow general control of memory allocation
  607.         strategy.  First Fit = 0, Best Fit = 1, and Last Fit = 2 were
  608.         implemented for both DOS 5 UMB's, and XMS UMB's.
  609.  
  610.     (2) Added check for a 186 processor or better (allows V20/V30).
  611.  
  612.     (3) DOSMAX will now move STACKS, so setting STACKS=0,0 is not
  613.         necessary.  In most cases though, STACKS=0,0 is still a good
  614.         idea.  Windows 3.1 supposed requirement for STACKS=9,256 is
  615.         not really necessary in most cases.
  616.  
  617.     (4) Removed the check for an XMS manager and a check for extended
  618.         memory.  This allows machines without extended memory to use
  619.         UMB providers, which do not require extended memory, with DOSMAX.
  620.         These checks were redundant since if DOS is in the HMA when
  621.         DOSMAX loads, the message "DOS is HIGH already" is reported.
  622.         It is still possible to use DOSMAX, but the /H switch must be
  623.         used if DOS is HIGH first.
  624.  
  625.     (5) Added /I option which inhibits HIMEM.SYS from loading DOS HIGH.
  626.         This switch is not very useful if HIMEM.SYS is not loaded high,
  627.         since HIMEM will be about 30k in size.  This switch is intended
  628.         for users who load HIMEM high after their UMB provider is installed.
  629.  
  630.     (6) Changed default WINDOWS high file support method to a new method
  631.         which uses 2 system file handles, but no low memory, so it works
  632.         when DOSMAX is loaded high.  The new method may be disabled with
  633.         /Y-, or /W+ (/W+ enables the old method since it was proven to work
  634.         and the code was already written).  The new method cannot be
  635.         enabled or disabled from the command line.
  636.  
  637.     (7) Now supporting separate program DOSM86.EXE.  This program is 
  638.         functionally identical to DOSMAX.EXE, but is compiled to work
  639.         on 8086/8088 processors also.  I have learned that there are
  640.         8086/8088 machines which can be configured with High Memory
  641.         using some High Memory Managers, and this variation will make
  642.         it possible for those users to put DOS in a UMB even though
  643.         there is no HMA.  DOSM86.EXE requires 32 more bytes of memory.
  644.  
  645.     (8) Fixed high loading so it really works...Also added an automatic
  646.         move to high memory of DOSMAX, if UMB's are available via DOS
  647.         or the XMS manager.  If there is some reason you don't want
  648.         DOSMAX loaded high when loaded after UMB's are available then
  649.         use /X- to stop it.  If DOSMAX is high, then it takes 272 bytes,
  650.         because extra code was needed to securely find and identify
  651.         the DOSMAX stub in memory.
  652.  
  653.     (9) Fixed a problem which hung DOSMAX after loading high if DOS was
  654.         not in the HMA yet and /V+ switch not used.
  655.         
  656.    (10) Changed order of first 5 handles in new windows support, and
  657.         enhanced error checking to only warn when support will not
  658.         work.  The new order maintains the AUX CON order and seems 
  659.         more compatible.
  660.  
  661.    (11) Added routine to stop "Incompatible DOS" message if loaded high
  662.         with a "device loader."  DOSMAX will now load high with a
  663.         device loader like LOADHI.SYS or HIGHDRVR.SYS
  664.  
  665.    (12) Try DOS high memory allocation even if NO XMS manager present.
  666.         This was necessary for PC's which don't have extended memory,
  667.         and don't even load an XMS manager (UMB_DRVR creates DOS high
  668.         memory and disappears).
  669.  
  670.    (13) Fixed DOSMAX not running second time if loaded high with LOADHI.
  671.  
  672.    (14) Fixed DOSMAX not moving anything high (sometimes) if loaded
  673.         high by any device loader.  I broke this in fix (13).
  674.  
  675.    (15) Added /B+ option which will stop DOS from going to the HMA by
  676.         patching the DOS initilization code in memory.  This method
  677.         works no matter which memory manager is in use or how it is
  678.         configured.  It also requires no resident memory.
  679.  
  680.     (Version 1.7)::
  681.  
  682.     (1) Added /Unn option to tell DOSMAX to unhook hardware INT nn from
  683.         DOS STACKS if the STACKS are present and moved.  At the time
  684.         which DOSMAX moves the STACKS it is safe to restore the interrupt
  685.         to the pre-STACKS value.  This switch was added as a work-around
  686.         to a warm-reboot problem in EMM386.EXE when STACKS are high.  To
  687.         fix the warm-reboot problem use /U09.  The value is in Hex-Notation.
  688.  
  689.     (2) Fixed DOSMAX not removing remnants of the sub-segments low when
  690.         the size of the DOS data area should have been 0.  This occurred
  691.         when using a memory manager with no code low, no drivers low, and
  692.         DOS in a UMB.  Changed method of recording sub-segment movement.
  693.  
  694.     (3) Removed DOS Version 3.x use of new windows method, it worked, but
  695.         wasn't completely compatible.  Use FW3.BAT instead if your version
  696.         of DOS is higher then 3.31 (rare).
  697.  
  698.     (4) Move master environment function now sets the MCB owner of the new,
  699.         high environment back the primary shell.  This corrects a minor
  700.         incompatiblity.
  701.  
  702. ================================================================================
  703.