home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / UTILITY / SYSTEM / DOSMAX15.ZIP / DOSMAX.DOC next >
Encoding:
Text File  |  1992-04-04  |  19.4 KB  |  453 lines

  1.  
  2. ================================================================================
  3.          DOSMAX.EXE :  Ver. 1.5, Copyright (1992) by Philip B. Gardner
  4. ================================================================================
  5.  
  6.   DOSMAX.EXE is a device driver which will maximize the use of low memory
  7.   by moving MS-DOS 3.1 and above system data to upper memory blocks provided
  8.   by your upper memory manager.  It is not necessary to use any other
  9.   programs to create upper memory data types like FILES, BUFFERS, FCBS,
  10.   or LASTDRIV from Quarterdeck's QEMM386.  These data types are referred
  11.   to as "sub-segments" in the rest of this document.
  12.  
  13.   In addition, if you are a DOS 5.0 user and are loading DOS high, then
  14.   DOSMAX can prevent DOS from loading into the HMA and move the code block
  15.   to an upper memory block.  This improves performance and allows programs
  16.   which use the HMA more efficiently to utilize the HMA instead.  Such 
  17.   programs include Microsoft WINDOWS and Quarterdeck's DESQVIEW.  DOSMAX
  18.   can also move a portion of COMMAND.COM into an upper memory block instead
  19.   of the HMA.  This feature recovers space in low memory which is available
  20.   when DOS is in the HMA.
  21.  
  22.   Support is automatically provided for Microsoft WINDOWS 3.0 so that all
  23.   FILES in your CONFIG.SYS can be loaded high.  Normally this would prevent
  24.   WINDOWS from running, but the problem is circumvented.
  25.  
  26.   Support is provided for:
  27.  
  28.     * allowing DOS the HMA, but still moving the sub-segment data types
  29.     * forcing DOS low, sub-segments still moveable
  30.     * moving only the DOS SYSTEM code block into upper memory
  31.     * providing only WINDOWS high file support (DOS 4.x and above)
  32.     * moving a portion of COMMAND.COM into high memory instead of the HMA
  33.     * moving the primary COMMAND.COM's environment (master environment)
  34.     * DOS Versions 3.1 - 3.31, DOS 4.x, and DOS 5.x (or better?)
  35.  
  36.   DOSMAX automatically moves all the data that can be moved dependent only
  37.   upon the availability of upper memory.  It will automatically stop moving
  38.   data when it determines that memory would be fragmented if the move was
  39.   completed.
  40.  
  41.   Finally, a command line mode is provided to move the Master Environment,
  42.   control Windows support, and check and report on the status of the high
  43.   memory area reserved for COMMAND.COM.
  44.  
  45. ================================================================================
  46.  
  47. (Requirements)::
  48.  
  49.         * 286 processor or better
  50.         * Requires MS-DOS Version 3.10 or better
  51.         * For maximum memory, set STACKS=0,0 in CONFIG.SYS
  52.  
  53. ================================================================================
  54.  
  55. (Installation)::
  56.  
  57.         (CONFIG.SYS)::
  58.  
  59.         Installation of DOSMAX.EXE requires modifying the contents of
  60.         your CONFIG.SYS file.  You must configure DOS not to use hardware
  61.         STACKS if the sub-segment data types are to be moved.
  62.  
  63.         STACKS=0,0              (No Stacks to maximize memory)
  64.  
  65.         DOS 5.0 should configure DOS to load high into the HMA.  The UMB
  66.         parameter is optional, since both DOS 5.0 upper memory management
  67.         and XMS upper memory blocks are supported.
  68.  
  69.         DOS=HIGH[,[UMB][NOUMB]] (Both DOS 5.0 UMB's and XMS UMB's supported)
  70.  
  71.         Add a DEVICE= line for DOSMAX.EXE in your config.sys.  DOSMAX
  72.         should be loaded before the XMS and UMB memory manager.  It is 
  73.         also recommended that DOSMAX is the very first device driver, but
  74.         not absolutely necessary.  The /A0 option disables high memory
  75.         support for COMMAND.COM.  This switch should be used if your
  76.         primary shell is not COMMAND.COM.
  77.  
  78.         DEVICE=DOSMAX.EXE [/A0][other options]
  79.         DEVICE=(Memory Manager)
  80.  
  81.         One advantage of using DOSMAX.EXE, is that the BUFFERS=, FCBS=,
  82.         FILES=, and LASTDRIVE= parameters may be configured normally.
  83.  
  84.         BUFFERS=XX[,YY]         (XX = # of buffers, YY = lookahead cache)
  85.         FCBS=XX,YY              (XX = # of FCBS, YY = # of protected FCBS)
  86.         FILES=NN                (NN = # of system files)
  87.         LASTDRIVE=Z             ( Z = Last reserved drive)
  88.  
  89.         Remove all INSTALL= lines from your CONFIG.SYS, or the sub-segment
  90.         data types will not be moveable.  This action is not necessary if
  91.         the program leaves no resident portion of itself in lower memory.
  92.  
  93.         REM INSTALL=(TSR)       (Remove to maximize memory)
  94.  
  95.         By default, DOSMAX.EXE will generate a message for each successful
  96.         operation or event.  The display then pauses to allow you to
  97.         read the report.  After you are satisfied with the configuration
  98.         and you want to disable the REPORT and PAUSE feature, use:
  99.  
  100.         DEVICE=DOSMAX.EXE /R- /P- 
  101.  
  102.         (AUTOEXEC.BAT)::
  103.  
  104.         It is not necessary to modify the contents of AUTOEXEC.BAT, but
  105.         since DOS data creators like FILES and BUFFERS are no longer
  106.         required, it is recommended that these lines are removed
  107.  
  108.         REM BUFFERS=XX          (Remove FILE and BUFFER creator TSR's)
  109.         REM FILES=NN
  110.  
  111.         In addition, the AUTOEXEC may be modified to automatically move
  112.         the master enviroment to high memory.  This feature will only
  113.         work with COMMAND.COM and is unlikely to work with other primary
  114.         shells like 4DOS from J.P. Software.  4DOS already has a feature
  115.         to move most of the primary shell and the master environment high.
  116.         Use the /E- switch to disable the master environment move.
  117.  
  118.         DOSMAX.EXE [/E-]        (Add a command line invocation of DOSMAX)
  119.  
  120.         By default, DOSMAX.EXE, invoked from the command line, will generate
  121.         a message for each successful operation or event.  The display will
  122.         not pause in the command line mode unless the /P+ switch is used.
  123.         After you are satisfied with the configuration and you want to disable
  124.         the REPORT feature, use:
  125.  
  126.         DOSMAX.EXE /R- [/E-]
  127.  
  128.         All switch options and possible messages for DOSMAX are detailed
  129.         below:
  130.  
  131. ================================================================================
  132.  
  133. (Syntax)::
  134.  
  135.         The only thing to remember about syntax for the command line is
  136.         that just about anything works.  What this means is that you
  137.         should be able to type in the options on the command line the
  138.         way they make sense to you.
  139.  
  140.         To illustrate this point, the following command line example
  141.         is mutated several different ways.
  142.  
  143.         DEVICE=DOSMAX.EXE /H+ /R- /P- /A0
  144.         DEVICE=DOSMAX.EXE -H+ -R- -P- -A0
  145.         DEVICE=DOSMAX.EXE H R- P- A0
  146.         DEVICE=DOSMAX.EXE HR-P-A
  147.         DEVICE=DOSMAX.EXE -H+-R-P-A
  148.  
  149.         ... and so on.
  150.  
  151. (Switch Options)::
  152.  
  153.         (REPORT)::      R[+ or -]        (toggle:  default +)
  154.  
  155.         Use /R- to disable the report after you are satisfied
  156.         with the configuration of DOSMAX.EXE
  157.  
  158.         (PAUSE)::       P[+ or -]        (toggle:  default +)
  159.  
  160.         Use /P- to disable the pause after the report as long
  161.         as there are no errors or warnings.
  162.  
  163.         (WINDOWS)::     W[+ or -]        (toggle:  default +)
  164.  
  165.         Use /W- to disable Windows high file support.  This
  166.         switch is mainly provided for diagnostic purposes.
  167.  
  168.         (SKIPSUBS)::    S[+ or -]        (toggle:  default -)
  169.  
  170.         Use /S+ to tell DOSMAX to not move sub-segments data types.
  171.         The switch is provided mainly for diagnostic purposes, but
  172.         may be useful when not enough high memory is available to
  173.         move both the DOS code block and the sub-segments, or if
  174.         you find this feature does not work in your configuration.
  175.  
  176.         (LOW)::         L[+ or -]        (toggle:  default -)
  177.  
  178.         Use /L+ to allocate DOS code block in low memory.  As
  179.         long as DOS=HIGH is still in your CONFIG.SYS, the
  180.         sub-segments should be moveable.  This switch may be useful
  181.         if there is not enough high memory to load both the DOS code
  182.         block and the sub-segment data types into High Memory and a
  183.         free HMA is desired.
  184.  
  185.         (HIGH)::        H[+ or -]        (toggle:  default -)
  186.  
  187.         Use /H+ to allow DOS to load into the HMA anyway.  This
  188.         switch may also be used with DOS=LOW, since DOSMAX simply
  189.         ignores whether DOS is HIGH or LOW when it initializes
  190.         and checks later to see if it is safe to move sub-segments.
  191.  
  192.         (NOPAUSE)::     N[+ or -]        (toggle:  default -)
  193.  
  194.         Use /N+ to never pause after the report, even if there
  195.         are errors.  This switch can be used if your configuration
  196.         generates a warning or error message which you choose to ignore.
  197.  
  198.         (VDISKHDR)::    V[+ or -]        (toggle:  default -)
  199.  
  200.         Use /V+ to use an alternate method of stopping DOS from
  201.         allocating the HMA.  This switch is only necessary if
  202.         DOSMAX reports that the DOS version is incompatible, and
  203.         it will only work with memory managers which can detect a
  204.         VDISK Header in the HMA when the memory manager initializes
  205.         and mark's it as allocated.
  206.  
  207.         (FILE SIZE)::   Fnn                (value:  nn = 59 )
  208.  
  209.         Use /Fnn to set the System File Size:  The upper limit of nn
  210.         is 61 in device mode, and 82 in command line mode.  The lower
  211.         limit is 35.  Values other than the MS-DOS 4.0 - 5.0 System 
  212.         File Size of 59 are only allowed if the true MS-DOS version is
  213.         greater than 5.0.  The /Fnn switch is only necessary if DOSMAX.EXE
  214.         can't determine the System File Size automatically.
  215.  
  216.         (ALLOCATION SIZE)::     Annnnn    (value:  nnnnn = 2080)
  217.  
  218.         Use /Annnnn to set the number of bytes reserved in upper memory
  219.         for COMMAND.COM and other DOS 5.0 and above programs which have
  220.         the capability of moving a portion of themselves into the HMA.
  221.         These programs use INT 2Fh Function 4Ah to allocate a fixed number
  222.         of bytes from the HMA.  DOSMAX has the capability of emulating
  223.         this function in high memory.  By default, DOSMAX reserves 2080
  224.         bytes, which is the space needed to shrink COMMAND.COM.  To
  225.         reserve more memory, increase this value.
  226.  
  227.         The command line mode of DOSMAX reports the size and allocation
  228.         status of this area.  If the amount allocated or requested is not
  229.         equal to the amount reserved, DOSMAX will report what the proper
  230.         value should be.  Users of replacement shells like 4DOS.COM from
  231.         J.P. Software, should disable this option with /A0. Disabling the
  232.         option or using the report feature of the command line mode to
  233.         set the exact amount of memory required, is recommended since
  234.         INT 21h 3306h (Get True Ver.), which is also hooked by DOSMAX,
  235.         must return with a bit set which indicates that DOS is in the HMA
  236.         until the amount of memory reserved is completely exhausted.
  237.  
  238.         (ENVIRONMENT)::         E[+ or -]       (toggle:  default +)     
  239.  
  240.         Use /E- to disable finding and moving the master environment to
  241.         upper memory.  This feature is for COMMAND.COM users, so, the
  242.         option should be disabled for other shells such as 4DOS from
  243.         J.P. Software which have their own option to move the environment
  244.         to upper memory.  DOSMAX does not support the master environment
  245.         for these alternative shells independently and the feature is
  246.         unlikely to function with these alternative shells.
  247.  
  248.         (TEST ENVIRONMENT)::    T[+ or -]       (toggle:  default -)
  249.  
  250.         Use /T+ to enable a master environment move with a special test
  251.         mode enabled.  This feature implements an extra level of security.
  252.         The algorithum verifies that the master environment is both found
  253.         and that it is moveable, by testing with a shell command which
  254.         affects the master environment through the INT 2Eh interface.  It
  255.         is recommended that this switch not be used in a batch file.  When
  256.         the shell processes an INT 2Eh command, it first completes the
  257.         current batch file, then performs the INT 2Eh command.  This
  258.         means that if DOSMAX.EXE is run from the AUTOEXEC.BAT file to move
  259.         the master environment and the /T+ option is set, then its command
  260.         line always appears to be the last line of the batch file.  Do not
  261.         execute DOSMAX.EXE from a nested batch file with the /T+ option.
  262.  
  263.         *  everything in square brackets "[]" is optional
  264.  
  265. (CONFIG.SYS Line)::
  266.  
  267.         DEVICE=DOSMAX.EXE [/ or -][R[-]P[-]W[-]S[+]L[+]H[+]N[+]V[+]FnnAnnnnn]
  268.  
  269.         device mode default: /R+P+W+N-A2080
  270.  
  271.         *  Report status messages
  272.         *  Pause after report
  273.         *  Enable Windows Support
  274.         *  Pause on errors or warnings
  275.         *  Reserve 2080 bytes for INT 2Fh Function 4Ah (COMMAND.COM)
  276.  
  277. (Command Line Mode)::
  278.  
  279.         C:\> DOSMAX.EXE [/ or -][R[+]P[+]W[-]N[+]E[+]T[-]Fnn]
  280.  
  281.         command line mode default:  /R+P-W+N+E+T-   (S,L,H,V, and A ignored)
  282.  
  283.         *  Report status messages
  284.         *  Don't pause after report
  285.         *  Enable Windows Support
  286.         *  Never Pause even on errors or warnings
  287.         *  Find and move the master environment
  288.         *  No special environment test
  289.  
  290. ================================================================================
  291.  
  292. (Report Format)::
  293.  
  294.         DOSMAX.EXE :  Ver. 1.5, Copyright (1992) by Philip B. Gardner
  295.              ERROR :  (Error Messages)
  296.            WARNING :  (Warning Messages)
  297.             ADVICE :  (Advisory Messages)
  298.                    :  (Report Messages)
  299.                    :  (Allocation Status)
  300.              PAUSE :  Press any key to continue... 
  301.  
  302. ================================================================================
  303.  
  304. (Error Messages)::
  305.  
  306.         MS-DOS version 3.10 or above is required
  307.         DOS is HIGH or in ROM already
  308.         Include DOS=HIGH in CONFIG.SYS
  309.         XMS manager already installed
  310.         Extended Memory not available
  311.         DOS version is not compatible
  312.         Can't load in High Memory
  313.         Couldn't write VDISK Header
  314.         Device not found, or version mismatch
  315.  
  316. ================================================================================
  317.  
  318. (Warning Messages)::
  319.  
  320.         Unknown option in command line
  321.         Extra characters on command line
  322.         Unable to free HMA
  323.         A20 Not Disabled
  324.         STACK Sub-Segment present
  325.         Possible STACK Sub-Segment present
  326.         DOS Sub-Segment list is unmoveable
  327.         System File Size not determined or out of range
  328.         Unable to validate System Data area
  329.         Couldn't size System File Table
  330.         Couldn't size System FCB Table
  331.         Couldn't trace Buffer Chain
  332.         Couldn't find Lastdrive Array
  333.  
  334. ================================================================================
  335.  
  336. (Advisory Messages)::
  337.  
  338.         Should be the first DEVICE= in CONFIG.SYS
  339.         Set STACKS=0,0 in CONFIG.SYS
  340.         Possible INSTALL= in CONFIG.SYS
  341.         Try using /Fnn switch
  342.         Try using /V+ switch
  343.         For maximum efficiency use /A00000
  344.  
  345. ================================================================================
  346.  
  347. (Report Messages)::
  348.  
  349.         HMA was reserved, but is now free
  350.         A20 Disabled
  351.         DOS System forced low
  352.         DOS System in HMA
  353.         DOS System not in HMA
  354.         DOS Sub-Segments skipped
  355.         Windows support enabled
  356.         Windows support disabled
  357.         System File Size set to 00
  358.         Found 00000 bytes allocated of 00000 bytes
  359.  
  360. ================================================================================
  361.  
  362. (Allocation Status)::
  363.  
  364.         SYSTEM   moved to 0000
  365.         Not enough Hi Memory for SYSTEM  
  366.         LASTDRIV moved to 0000
  367.         Not enough Hi Memory for LASTDRIV
  368.         BUFFERS  moved to 0000
  369.         Not enough Hi Memory for BUFFERS 
  370.         WKBUFFER moved to 0000
  371.         Not enough Hi Memory for WKBUFFER
  372.         FCBS     moved to 0000
  373.         Not enough Hi Memory for FCBS    
  374.         FILES    moved to 0000
  375.         Not enough Hi Memory for FILES   
  376.         COMMAND  space at 0000
  377.         Not enough Hi Memory for COMMAND
  378.  
  379. ================================================================================
  380.  
  381. (Sub-Segment List)::
  382.  
  383.         The Sub-Segment List is searched from bottom to top for a block
  384.         of moveable sub-segments, then moved in reverse order.  The
  385.         termination of the list must be the MCB of the PSP of DOSMAX.EXE.
  386.         This prevents fragmentation of memory.  This means INSTALL=
  387.         should not be used in CONFIG.SYS, and STACKS=0,0 must be used,
  388.         or else the sub-segments will not be moveable.
  389.  
  390.         The following chart attempts to show what can and cannot be moved
  391.         with DOSMAX.EXE
  392.  
  393.                         Sub-Segment Type                Not Moved  Moved
  394.         ----------------------------------------------- ---------  -----
  395.         "D"        DEVICE DRIVER                            x 
  396.         "E"        DEVICE DRIVER APPENDAGE                  x
  397.         "I"        IFS (Installable File System) DRIVER     x
  398.         "F"        FILES=                                            x
  399.         "X"        FCBS=                                             x
  400.         "C"        BUFFERS /X Option (EMS workspace area)            x
  401.         "B"        BUFFERS=                                          x
  402.         "L"        LASTDRIVE=                                        x
  403.         "S"        STACKS=                                           x
  404.         "T"        INSTALL=                                 x (ignored)
  405.  
  406. ================================================================================
  407.  
  408. (Changes)::
  409.  
  410.     (Version 1.1)::
  411.  
  412.     (1) Fixed problem not cleaning up properly, when DOS goes to HMA
  413.         anyway, (only /V+ switch, and some XMS Managers).
  414.  
  415.     (2) Fixed problem that occurred if no XMS UMB's available, and DOS 5
  416.         UMB's tried, and if no DOS UMB's available either (not just not
  417.         enough), memory was allocated from low memory, even though
  418.         allocation strategy was set to try UMB's only.  Made sure UMB
  419.         Link state was set properly.
  420.  
  421.     (3) Added support for DOS Versions 3.10 - 3.31 and DOS Version 4.x
  422.  
  423.     (4) Improved File Size determination algorithum
  424.  
  425.     (Version 1.2)::
  426.  
  427.     (1) Improved detection of DOS=LOW, and reduced the possibility of
  428.         an errant "Should be the first DEVICE= in CONFIG.SYS" message.
  429.  
  430.     (Version 1.3)::
  431.  
  432.     (1) Added support for INT 2Fh, Function 4Ah, so that COMMAND.COM
  433.         (and others??) can move a portion of their code to high memory
  434.         too.  For COMMAND.COM users with DOS 5.0, this saves 2.1k of
  435.         low memory.  Added the /Annnn switch to support this feature,
  436.         plus an allocation status check for the command line mode.
  437.         4DOS users should disable this feature with option /A0.
  438.  
  439.     (Version 1.4)::
  440.  
  441.     (1) Added capability to find and move the master environment for
  442.         COMMAND.COM users.  Also implemented a special test mode with
  443.         the /T+ option, which verifies that the master environment
  444.         has been found and that it is moveable.  This test mode should
  445.         only be necessary for diagnostic purposes.
  446.  
  447.     (Version 1.5)::
  448.  
  449.     (1) Added base 10 number display for /A parameter and changed
  450.         System File Size message to base 10.
  451.  
  452. ================================================================================
  453.