home *** CD-ROM | disk | FTP | other *** search
-
- ================================================================================
- DOSMAX.EXE : Ver. 1.5, Copyright (1992) by Philip B. Gardner
- ================================================================================
-
- DOSMAX.EXE is a device driver which will maximize the use of low memory
- by moving MS-DOS 3.1 and above system data to upper memory blocks provided
- by your upper memory manager. It is not necessary to use any other
- programs to create upper memory data types like FILES, BUFFERS, FCBS,
- or LASTDRIV from Quarterdeck's QEMM386. These data types are referred
- to as "sub-segments" in the rest of this document.
-
- In addition, if you are a DOS 5.0 user and are loading DOS high, then
- DOSMAX can prevent DOS from loading into the HMA and move the code block
- to an upper memory block. This improves performance and allows programs
- which use the HMA more efficiently to utilize the HMA instead. Such
- programs include Microsoft WINDOWS and Quarterdeck's DESQVIEW. DOSMAX
- can also move a portion of COMMAND.COM into an upper memory block instead
- of the HMA. This feature recovers space in low memory which is available
- when DOS is in the HMA.
-
- Support is automatically provided for Microsoft WINDOWS 3.0 so that all
- FILES in your CONFIG.SYS can be loaded high. Normally this would prevent
- WINDOWS from running, but the problem is circumvented.
-
- Support is provided for:
-
- * allowing DOS the HMA, but still moving the sub-segment data types
- * forcing DOS low, sub-segments still moveable
- * moving only the DOS SYSTEM code block into upper memory
- * providing only WINDOWS high file support (DOS 4.x and above)
- * moving a portion of COMMAND.COM into high memory instead of the HMA
- * moving the primary COMMAND.COM's environment (master environment)
- * DOS Versions 3.1 - 3.31, DOS 4.x, and DOS 5.x (or better?)
-
- DOSMAX automatically moves all the data that can be moved dependent only
- upon the availability of upper memory. It will automatically stop moving
- data when it determines that memory would be fragmented if the move was
- completed.
-
- Finally, a command line mode is provided to move the Master Environment,
- control Windows support, and check and report on the status of the high
- memory area reserved for COMMAND.COM.
-
- ================================================================================
-
- (Requirements)::
-
- * 286 processor or better
- * Requires MS-DOS Version 3.10 or better
- * For maximum memory, set STACKS=0,0 in CONFIG.SYS
-
- ================================================================================
-
- (Installation)::
-
- (CONFIG.SYS)::
-
- Installation of DOSMAX.EXE requires modifying the contents of
- your CONFIG.SYS file. You must configure DOS not to use hardware
- STACKS if the sub-segment data types are to be moved.
-
- STACKS=0,0 (No Stacks to maximize memory)
-
- DOS 5.0 should configure DOS to load high into the HMA. The UMB
- parameter is optional, since both DOS 5.0 upper memory management
- and XMS upper memory blocks are supported.
-
- DOS=HIGH[,[UMB][NOUMB]] (Both DOS 5.0 UMB's and XMS UMB's supported)
-
- Add a DEVICE= line for DOSMAX.EXE in your config.sys. DOSMAX
- should be loaded before the XMS and UMB memory manager. It is
- also recommended that DOSMAX is the very first device driver, but
- not absolutely necessary. The /A0 option disables high memory
- support for COMMAND.COM. This switch should be used if your
- primary shell is not COMMAND.COM.
-
- DEVICE=DOSMAX.EXE [/A0][other options]
- DEVICE=(Memory Manager)
-
- One advantage of using DOSMAX.EXE, is that the BUFFERS=, FCBS=,
- FILES=, and LASTDRIVE= parameters may be configured normally.
-
- BUFFERS=XX[,YY] (XX = # of buffers, YY = lookahead cache)
- FCBS=XX,YY (XX = # of FCBS, YY = # of protected FCBS)
- FILES=NN (NN = # of system files)
- LASTDRIVE=Z ( Z = Last reserved drive)
-
- Remove all INSTALL= lines from your CONFIG.SYS, or the sub-segment
- data types will not be moveable. This action is not necessary if
- the program leaves no resident portion of itself in lower memory.
-
- REM INSTALL=(TSR) (Remove to maximize memory)
-
- By default, DOSMAX.EXE will generate a message for each successful
- operation or event. The display then pauses to allow you to
- read the report. After you are satisfied with the configuration
- and you want to disable the REPORT and PAUSE feature, use:
-
- DEVICE=DOSMAX.EXE /R- /P-
-
- (AUTOEXEC.BAT)::
-
- It is not necessary to modify the contents of AUTOEXEC.BAT, but
- since DOS data creators like FILES and BUFFERS are no longer
- required, it is recommended that these lines are removed
-
- REM BUFFERS=XX (Remove FILE and BUFFER creator TSR's)
- REM FILES=NN
-
- In addition, the AUTOEXEC may be modified to automatically move
- the master enviroment to high memory. This feature will only
- work with COMMAND.COM and is unlikely to work with other primary
- shells like 4DOS from J.P. Software. 4DOS already has a feature
- to move most of the primary shell and the master environment high.
- Use the /E- switch to disable the master environment move.
-
- DOSMAX.EXE [/E-] (Add a command line invocation of DOSMAX)
-
- By default, DOSMAX.EXE, invoked from the command line, will generate
- a message for each successful operation or event. The display will
- not pause in the command line mode unless the /P+ switch is used.
- After you are satisfied with the configuration and you want to disable
- the REPORT feature, use:
-
- DOSMAX.EXE /R- [/E-]
-
- All switch options and possible messages for DOSMAX are detailed
- below:
-
- ================================================================================
-
- (Syntax)::
-
- The only thing to remember about syntax for the command line is
- that just about anything works. What this means is that you
- should be able to type in the options on the command line the
- way they make sense to you.
-
- To illustrate this point, the following command line example
- is mutated several different ways.
-
- DEVICE=DOSMAX.EXE /H+ /R- /P- /A0
- DEVICE=DOSMAX.EXE -H+ -R- -P- -A0
- DEVICE=DOSMAX.EXE H R- P- A0
- DEVICE=DOSMAX.EXE HR-P-A
- DEVICE=DOSMAX.EXE -H+-R-P-A
-
- ... and so on.
-
- (Switch Options)::
-
- (REPORT):: R[+ or -] (toggle: default +)
-
- Use /R- to disable the report after you are satisfied
- with the configuration of DOSMAX.EXE
-
- (PAUSE):: P[+ or -] (toggle: default +)
-
- Use /P- to disable the pause after the report as long
- as there are no errors or warnings.
-
- (WINDOWS):: W[+ or -] (toggle: default +)
-
- Use /W- to disable Windows high file support. This
- switch is mainly provided for diagnostic purposes.
-
- (SKIPSUBS):: S[+ or -] (toggle: default -)
-
- Use /S+ to tell DOSMAX to not move sub-segments data types.
- The switch is provided mainly for diagnostic purposes, but
- may be useful when not enough high memory is available to
- move both the DOS code block and the sub-segments, or if
- you find this feature does not work in your configuration.
-
- (LOW):: L[+ or -] (toggle: default -)
-
- Use /L+ to allocate DOS code block in low memory. As
- long as DOS=HIGH is still in your CONFIG.SYS, the
- sub-segments should be moveable. This switch may be useful
- if there is not enough high memory to load both the DOS code
- block and the sub-segment data types into High Memory and a
- free HMA is desired.
-
- (HIGH):: H[+ or -] (toggle: default -)
-
- Use /H+ to allow DOS to load into the HMA anyway. This
- switch may also be used with DOS=LOW, since DOSMAX simply
- ignores whether DOS is HIGH or LOW when it initializes
- and checks later to see if it is safe to move sub-segments.
-
- (NOPAUSE):: N[+ or -] (toggle: default -)
-
- Use /N+ to never pause after the report, even if there
- are errors. This switch can be used if your configuration
- generates a warning or error message which you choose to ignore.
-
- (VDISKHDR):: V[+ or -] (toggle: default -)
-
- Use /V+ to use an alternate method of stopping DOS from
- allocating the HMA. This switch is only necessary if
- DOSMAX reports that the DOS version is incompatible, and
- it will only work with memory managers which can detect a
- VDISK Header in the HMA when the memory manager initializes
- and mark's it as allocated.
-
- (FILE SIZE):: Fnn (value: nn = 59 )
-
- Use /Fnn to set the System File Size: The upper limit of nn
- is 61 in device mode, and 82 in command line mode. The lower
- limit is 35. Values other than the MS-DOS 4.0 - 5.0 System
- File Size of 59 are only allowed if the true MS-DOS version is
- greater than 5.0. The /Fnn switch is only necessary if DOSMAX.EXE
- can't determine the System File Size automatically.
-
- (ALLOCATION SIZE):: Annnnn (value: nnnnn = 2080)
-
- Use /Annnnn to set the number of bytes reserved in upper memory
- for COMMAND.COM and other DOS 5.0 and above programs which have
- the capability of moving a portion of themselves into the HMA.
- These programs use INT 2Fh Function 4Ah to allocate a fixed number
- of bytes from the HMA. DOSMAX has the capability of emulating
- this function in high memory. By default, DOSMAX reserves 2080
- bytes, which is the space needed to shrink COMMAND.COM. To
- reserve more memory, increase this value.
-
- The command line mode of DOSMAX reports the size and allocation
- status of this area. If the amount allocated or requested is not
- equal to the amount reserved, DOSMAX will report what the proper
- value should be. Users of replacement shells like 4DOS.COM from
- J.P. Software, should disable this option with /A0. Disabling the
- option or using the report feature of the command line mode to
- set the exact amount of memory required, is recommended since
- INT 21h 3306h (Get True Ver.), which is also hooked by DOSMAX,
- must return with a bit set which indicates that DOS is in the HMA
- until the amount of memory reserved is completely exhausted.
-
- (ENVIRONMENT):: E[+ or -] (toggle: default +)
-
- Use /E- to disable finding and moving the master environment to
- upper memory. This feature is for COMMAND.COM users, so, the
- option should be disabled for other shells such as 4DOS from
- J.P. Software which have their own option to move the environment
- to upper memory. DOSMAX does not support the master environment
- for these alternative shells independently and the feature is
- unlikely to function with these alternative shells.
-
- (TEST ENVIRONMENT):: T[+ or -] (toggle: default -)
-
- Use /T+ to enable a master environment move with a special test
- mode enabled. This feature implements an extra level of security.
- The algorithum verifies that the master environment is both found
- and that it is moveable, by testing with a shell command which
- affects the master environment through the INT 2Eh interface. It
- is recommended that this switch not be used in a batch file. When
- the shell processes an INT 2Eh command, it first completes the
- current batch file, then performs the INT 2Eh command. This
- means that if DOSMAX.EXE is run from the AUTOEXEC.BAT file to move
- the master environment and the /T+ option is set, then its command
- line always appears to be the last line of the batch file. Do not
- execute DOSMAX.EXE from a nested batch file with the /T+ option.
-
- * everything in square brackets "[]" is optional
-
- (CONFIG.SYS Line)::
-
- DEVICE=DOSMAX.EXE [/ or -][R[-]P[-]W[-]S[+]L[+]H[+]N[+]V[+]FnnAnnnnn]
-
- device mode default: /R+P+W+N-A2080
-
- * Report status messages
- * Pause after report
- * Enable Windows Support
- * Pause on errors or warnings
- * Reserve 2080 bytes for INT 2Fh Function 4Ah (COMMAND.COM)
-
- (Command Line Mode)::
-
- C:\> DOSMAX.EXE [/ or -][R[+]P[+]W[-]N[+]E[+]T[-]Fnn]
-
- command line mode default: /R+P-W+N+E+T- (S,L,H,V, and A ignored)
-
- * Report status messages
- * Don't pause after report
- * Enable Windows Support
- * Never Pause even on errors or warnings
- * Find and move the master environment
- * No special environment test
-
- ================================================================================
-
- (Report Format)::
-
- DOSMAX.EXE : Ver. 1.5, Copyright (1992) by Philip B. Gardner
- ERROR : (Error Messages)
- WARNING : (Warning Messages)
- ADVICE : (Advisory Messages)
- : (Report Messages)
- : (Allocation Status)
- PAUSE : Press any key to continue...
-
- ================================================================================
-
- (Error Messages)::
-
- MS-DOS version 3.10 or above is required
- DOS is HIGH or in ROM already
- Include DOS=HIGH in CONFIG.SYS
- XMS manager already installed
- Extended Memory not available
- DOS version is not compatible
- Can't load in High Memory
- Couldn't write VDISK Header
- Device not found, or version mismatch
-
- ================================================================================
-
- (Warning Messages)::
-
- Unknown option in command line
- Extra characters on command line
- Unable to free HMA
- A20 Not Disabled
- STACK Sub-Segment present
- Possible STACK Sub-Segment present
- DOS Sub-Segment list is unmoveable
- System File Size not determined or out of range
- Unable to validate System Data area
- Couldn't size System File Table
- Couldn't size System FCB Table
- Couldn't trace Buffer Chain
- Couldn't find Lastdrive Array
-
- ================================================================================
-
- (Advisory Messages)::
-
- Should be the first DEVICE= in CONFIG.SYS
- Set STACKS=0,0 in CONFIG.SYS
- Possible INSTALL= in CONFIG.SYS
- Try using /Fnn switch
- Try using /V+ switch
- For maximum efficiency use /A00000
-
- ================================================================================
-
- (Report Messages)::
-
- HMA was reserved, but is now free
- A20 Disabled
- DOS System forced low
- DOS System in HMA
- DOS System not in HMA
- DOS Sub-Segments skipped
- Windows support enabled
- Windows support disabled
- System File Size set to 00
- Found 00000 bytes allocated of 00000 bytes
-
- ================================================================================
-
- (Allocation Status)::
-
- SYSTEM moved to 0000
- Not enough Hi Memory for SYSTEM
- LASTDRIV moved to 0000
- Not enough Hi Memory for LASTDRIV
- BUFFERS moved to 0000
- Not enough Hi Memory for BUFFERS
- WKBUFFER moved to 0000
- Not enough Hi Memory for WKBUFFER
- FCBS moved to 0000
- Not enough Hi Memory for FCBS
- FILES moved to 0000
- Not enough Hi Memory for FILES
- COMMAND space at 0000
- Not enough Hi Memory for COMMAND
-
- ================================================================================
-
- (Sub-Segment List)::
-
- The Sub-Segment List is searched from bottom to top for a block
- of moveable sub-segments, then moved in reverse order. The
- termination of the list must be the MCB of the PSP of DOSMAX.EXE.
- This prevents fragmentation of memory. This means INSTALL=
- should not be used in CONFIG.SYS, and STACKS=0,0 must be used,
- or else the sub-segments will not be moveable.
-
- The following chart attempts to show what can and cannot be moved
- with DOSMAX.EXE
-
- Sub-Segment Type Not Moved Moved
- ----------------------------------------------- --------- -----
- "D" DEVICE DRIVER x
- "E" DEVICE DRIVER APPENDAGE x
- "I" IFS (Installable File System) DRIVER x
- "F" FILES= x
- "X" FCBS= x
- "C" BUFFERS /X Option (EMS workspace area) x
- "B" BUFFERS= x
- "L" LASTDRIVE= x
- "S" STACKS= x
- "T" INSTALL= x (ignored)
-
- ================================================================================
-
- (Changes)::
-
- (Version 1.1)::
-
- (1) Fixed problem not cleaning up properly, when DOS goes to HMA
- anyway, (only /V+ switch, and some XMS Managers).
-
- (2) Fixed problem that occurred if no XMS UMB's available, and DOS 5
- UMB's tried, and if no DOS UMB's available either (not just not
- enough), memory was allocated from low memory, even though
- allocation strategy was set to try UMB's only. Made sure UMB
- Link state was set properly.
-
- (3) Added support for DOS Versions 3.10 - 3.31 and DOS Version 4.x
-
- (4) Improved File Size determination algorithum
-
- (Version 1.2)::
-
- (1) Improved detection of DOS=LOW, and reduced the possibility of
- an errant "Should be the first DEVICE= in CONFIG.SYS" message.
-
- (Version 1.3)::
-
- (1) Added support for INT 2Fh, Function 4Ah, so that COMMAND.COM
- (and others??) can move a portion of their code to high memory
- too. For COMMAND.COM users with DOS 5.0, this saves 2.1k of
- low memory. Added the /Annnn switch to support this feature,
- plus an allocation status check for the command line mode.
- 4DOS users should disable this feature with option /A0.
-
- (Version 1.4)::
-
- (1) Added capability to find and move the master environment for
- COMMAND.COM users. Also implemented a special test mode with
- the /T+ option, which verifies that the master environment
- has been found and that it is moveable. This test mode should
- only be necessary for diagnostic purposes.
-
- (Version 1.5)::
-
- (1) Added base 10 number display for /A parameter and changed
- System File Size message to base 10.
-
- ================================================================================
-