Dec 062017
 
Move DOS and files, buffers, etc. into HMA or UMB. Parts of Command.com can also be loaded into high memory. Works with DOS 3, 4, 5, and 6.
File DOSMAX21.ZIP from The Programmer’s Corner in
Category Utilities for DOS and Windows Machines
Move DOS and files, buffers, etc. into HMA or UMB. Parts of Command.com can also be loaded into high memory. Works with DOS 3, 4, 5, and 6.
File Name File Size Zip Size Zip Type
DOSMAX.DOC 33517 9988 deflated
DOSMAX.EXE 57210 21641 deflated
ENVIMAX.COM 7918 5760 deflated
ENVIMAX.DOC 6157 1923 deflated
EXAMPLES.DOC 13835 2870 deflated
FREELOAD.DOC 17573 5461 deflated
FREELOAD.SYS 21294 10475 deflated
FW3.BAT 408 231 deflated
FW4-6.BAT 378 208 deflated
README.MAX 4725 1867 deflated
SHELLMAX.COM 8182 5692 deflated
SHELLMAX.DOC 10997 3437 deflated
STOPMAX.DOC 13802 4305 deflated
STOPMAX.SYS 14776 7212 deflated

Download File DOSMAX21.ZIP Here

Contents of the DOSMAX.DOC file



================================================================================
DOSMAX.EXE : Ver. 2.1, Copyright (1992,93) 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 or above user and are loading DOS high,
then DOSMAX can prevent DOS from loading into the HMA and move the DOS
kernel 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.

Version 2.0 now requires the device driver STOPMAX.SYS to prevent DOS from
loading into the HMA (see STOPMAX.DOC). The DOSMAX driver then moves
the kernel into upper memory at the proper time.

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. Version 2.0 now requires the /C+ switch
to enable this feature rather than /A0 to disable it.

Support is automatically provided for Microsoft WINDOWS 3.x so that all
FILES in your CONFIG.SYS can be loaded high. Normally this would prevent
WINDOWS from running, but the problem is circumvented. Version 2.0 has
changed the support algorithum significantly, see /W+ option below.

Support is provided for:

* moving all DOS's sub-segments types into upper memory
* moving DOS's SYSTEM block (kernel) into upper memory (STOPMAX installed)
* supporting WINDOWS start-up even if all FILES= are in upper memory
* moving a portion of COMMAND.COM into high memory instead of the HMA
* DOS Versions 3.1 - 3.31, DOS 4.x, DOS 5.x, and DOS 6.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 were
completed.

Finally, a command line mode is provided to control Windows support, and
check and report on the status of the high memory area reserved for
COMMAND.COM. Version 2.0 moves the Master Environment moving feature
into a separate program, see ENVIMAX.DOC.

================================================================================

(Requirements)::

* Requires MS-DOS Version 3.10 or better
* Now supports DR-DOS 6.0

================================================================================

(Installation)::

(CONFIG.SYS)::

Installation of DOSMAX.EXE requires modifying the contents of
your CONFIG.SYS file.

(Generic Configuration)::

This configuration should work and be the most efficient in 95%
of all configurations. For a few real world examples see
EXAMPLES.DOC

DOS=HIGH[,UMB] (DOS 5.x or 6.x only)
REM DEVICE=STOPMAX.SYS [options] (Stops kernel from loading in HMA)
DEVICE=(xms/umb memory manager)
DEVICE=DOSMAX.EXE [options] (DOSMAX loads high automatically)
SHELL=SHELLMAX.COM COMMAND.COM /P
BUFFERS=20
FILES=40
LASTDRIVE=Z

For DESQView users, it is recommended that the DEVICE=STOPMAX.SYS is
installed. This enables DOSMAX's kernel moving feature.

DOS 5.x and 6.x users should configure DOS to load high into the
HMA. The UMB parameter is optional, since both DOS 5.x and 6.x
upper memory management and XMS upper memory blocks are supported.

DOS=HIGH[,[UMB][NOUMB]] (Both DOS UMB's and XMS UMB's supported)

Insert a DEVICE= line for DOSMAX.EXE in your config.sys. Ver. 1.5
of DOSMAX recommended that DOSMAX be loaded before the XMS and UMB
memory manager, but DOSMAX should now be loaded after the XMS manager
(DOSMAX will automatically load itself high if UMB's are available
or you may use your memory manager's device loader). Version 1.7
provided another way to ensure that the DOS 5.0 or above kernel
is moved into a UMB by DOSMAX. The driver STOPMAX.SYS is inserted
"before" the XMS manager and DOSMAX is inserted "after" the XMS
manager (see STOPMAX.DOC).

Version 2.0 now requires that STOPMAX.SYS is used to stop DOS from
loading into the HMA, support for /B+,/I+ and /V+ have been removed
from DOSMAX.EXE because these options caused confusion.

Version 2.0 now requires /C+ to enable the upper memory support
option for COMMAND.COM. This option was provided by default in
earlier versions and was disabled with /A0. Normally you will
want to use SHELLMAX.COM to load all of COMMAND.COM into upper
memory (see SHELLMAX.DOC). The /A0 option also caused confusion.

REM DEVICE=STOPMAX.SYS [options]
DEVICE=(Memory Manager)
DEVICE=DOSMAX.EXE [/C:+][other options]

One advantage of using DOSMAX.EXE, is that the STACKS=, BUFFERS=,
FCBS=, FILES=, and LASTDRIVE= parameters may be configured normally.

STACKS=9,256 (or =0,0 or default 9,128...etc...)
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)

Version 2.0 of DOSMAX now allows INSTALL=, you no longer have to
remove these statements from your CONFIG.SYS.

By default, DOSMAX.EXE Version 2.0 will not generate report messages
for each successful operation or event, unless you enable the report
with /R+. You must also use /P+ to pause after this report. Use
/R+ and /P+ until you are satisfied with the configuration then
remove these switches.

DEVICE=DOSMAX.EXE /R+ /P+
or DEVICE=DOSMAX.EXE /REPORT:+ /PAUSE:+

(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 be removed

REM BUFFERS=XX (Remove FILE and BUFFER creator TSR's)
REM FILES=NN

(From the Command Line)::

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-

All switch options and possible messages for DOSMAX are detailed
below:

(Loading DOSMAX High)::

You may load DOSMAX high with your high memory loader, but DOSMAX
will load itself high if upper memory is available. To prevent
DOSMAX from loading itself high, use /X- or load it before the
memory manager is installed.

(Moving the DOS kernel into a UMB)::

DOSMAX to move the DOS 5.0 or above kernel to a UMB, then DOS
must not be in the HMA when DOSMAX loads. If you desire to stop
the kernel from moving into the HMA, then STOPMAX must be loaded
before the xms/umb memory manager, so that the DOS kernel is not
high when DOSMAX initializes. If DOS is already in the HMA (not
using STOPMAX), then Verision 2.0 now detects this condition and
low memory is optimized correctly.

================================================================================

(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.

DOSMAX 1.9 and above adds optional full word syntax. The new
syntax looks like this:

DEVICE=DOSMAX.EXE /ALLOWHI:+ /REPORT:- /PAUSE:- /AVAIL4A=0
DEVICE=DOSMAX.EXE -ALLOWHI:+ -REPORT:- -PAUSE:- -AVAIL4A=0
DEVICE=DOSMAX.EXE ALLOWHI REPORT:- PAUSE:- AVAIL4A=0
DEVICE=DOSMAX.EXE ALLOWHIREPORT-PAUSE-AVAIL4A
DEVICE=DOSMAX.EXE -ALLOWHI+-REPORT-PAUSE-AVAIL4A

Obviously when using full words, it is easier to keep the words
separated so that is clear to read. An optional [:] or [=] may be
used for switches (i.e. ALLOWHI:+ or AVAIL=0). These optional
delimiters are used interchangeably and can also be used with the
single letter switches. Remember to check your spelling because the
single letter interface is still intact.

================================================================================

(Switch Options)::

The following list of switch options is organized by:

- Control of DOSMAX Reports (/R:/P:/N:)
- Control of DOSMAX Operation (/M=/H:/L:/A=/S:/U=)
- Setting the Memory Strategy (/M=)
- Control the Location of the DOS Kernel (/H:/L:)
- Control COMMAND.COM Split (/C:/A=)
- Control EMS Usage (/Q:)
- Control Sub-Segment Relocation (/S:)
- Control Stack Interrupts (/U=)
- Control DOSMAX Automatic UMB installation (/X:)
- Response file for DOSMAX

(Control of DOSMAX Reports)::

(REPORT):: R[+ or -] (toggle: default -)

Use /R+ or /REPORT:+ to enable the report of additional status
messages.

(PAUSE):: P[+ or -] (toggle: default -)

Use /P+ or /PAUSE:+ to enable a pause after the execution of
DOSMAX.EXE.

(NOPAUSE):: N[+ or -] (toggle: default -)

Use /N+ or /NOPAUSE:+ 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.

(Control of DOSMAX Operation)::

(Setting the Memory Strategy)::

(STRATEGY):: Mn (value= n = 0)

Use /Mn or /STRATEGY=n to control the memory allocation strategy
which DOSMAX uses to allocate upper memory blocks. The default
strategy is is First Fit (/M0). This means that DOSMAX will use the
first upper memory block returned by the XMS manager. The other
available options are Best Fit (/M1) and Last Fit (/M2). Best Fit
uses the block which most closely matches the size needed, and
Last Fit uses the last block big enough to handle the request.
Values other than 0, 1, or 2 are ignored and the previous setting
of this option is used.

(SYSFSIZE):: Fnn (value= nn = 59 )

Use /Fnn or /SYSFSIZE=nn 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 40. Values other than the MS-DOS 4.0 - 6.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
can't determine the System File Size automatically.

(Control the Location of the DOS Kernel)::

(ALLOWHI):: H[+ or -] (toggle: default -)

Use /H+ or /ALLOWHI:+ to allow DOS to load into the HMA anyway.
This switch is now obsolete. DOSMAX now detects the location of
the kernel and automatically determines the proper setting of this
switch. It is for backward-compatability and debugging purposes only.

(FORCELOW):: L[+ or -] (toggle: default -)

Use /L+ or /FORCELOW:+ to allocate DOS code block in low memory.
This switch is now obsolete. DOSMAX now detects the location of
the kernel and automatically determines the proper setting of this
switch. It is for backward-compatability and debugging purposes only.

(Control COMMAND.COM Split)::

(CMDALLOC):: C[+ or -] (toggle: default -)

Use /C:+ or /CMDALLOC:+ to enable the /AVAIL4A=nnnnn parameter and
the function which splits COMMAND.COM from DOS 5.0 in half. This
is for those users who chose not to load COMMAND.COM into a UMB.

(AVAIL4A):: Annnnn (value= nnnnn = 2080)

Use /Annnnn or /AVAIL4A=nnnnn 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.

(Control EMS Usage)::

(LOADEMS):: Q[+ or -] (toggle: default -)

Use /Q:- or /LOADEMS:- to disable the default action of DOSMAX
which allocates EMS to store the .EXE module until the DOS resources
are built and ready to move. DOSMAX will still be able to function,
but disk compression schemes may cause confusion if DOSMAX.EXE is
not on both the compressed and uncompressed drives.

(Control Sub-Segment Relocation)::

(SKIPSUB):: S[+ or -] (toggle: default -)

Use /S+ or /SKIPSUB:+ 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.

(Control Stack Interrupts)::

(UNHOOK):: Unn (value= default none)

Use /Unn or /UNHOOK=nn to tell DOSMAX that INT nn is to be
"unhooked" from DOS STACKS when the STACKS are moved high. This
switch is useful for controlling which hardware interrupts are
routed through the DOS STACKS mechanism. Microsoft's EMM386 may
cold-boot or lock-up if STACKS are present and moved to high memory,
CTRL-ALT-DEL is pressed (warm-boot), and INT 09h is hooked by DOS
STACKS. The DOSMAX option /U09 maybe used to work-around this
problem. The interrupt number is in Hex-Notation and the valid
values are the hardware interrupts 02, 08, 09, 0A, 0B, 0C, 0D, 0E,
70, 72, 73, 74, 76, & 77. Invalid interrupt numbers are ignored.
Multiple invocations of this switch are permissable.

(Control DOSMAX Automatic UMB installation)::

(HILOAD):: X[+ or -] (toggle: default +)

Use /X- to stop DOSMAX.EXE from loading itself high if upper
memory is available. This switch is intended for diagnostic
purposes only, since if you use your memory manager to load
DOSMAX.EXE high this condition is detected and no second upper
memory block will be allocated.

(Response file for DOSMAX)::

Parameters for DOSMAX may be read from a response file by using the
@pathname syntax:

DOSMAX.EXE @RESPONSE.FIL

Response files may be commented by using a ";","#",or "*" character

before the comment.

There is also a feature implemented for DOS 6.0 config menus. If a
menu is configured for DOS 6.0, DOS puts the name of the effective
section in an environment variable. This environment variable is
"CONFIG=." You may optionally divide the response files into
sections, identified with the familiar [SECTION] syntax, where
"SECTION" is the name of the DOS 6.0 menu item selected.

(CONFIG.SYS Line)::

DEVICE=DOSMAX.EXE [/-][R+P+N+L+H+FnnC+AnnnnMnUnnQ+X-]

device default: /R-/P-/N-/X+/C-/M1

* disable Report status messages
* don't Pause after report
* Pause on errors or warnings
* use the Best Fit memory allocation strategy
* Load DOSMAX high if upper memory available

* everything in square brackets "[]" is optional

================================================================================

(Report Format)::

DOSMAX.EXE : Ver. 2.1, Copyright (1992,93) by Philip B. Gardner
ERROR : (Error Messages)
WARNING : (Warning Messages)
ADVICE : (Advisory Messages)
: (Report Messages)
: (Allocation Status)
PAUSE : Press any key to continue...

(Report Note)::

DOSMAX.EXE may be replaced by DOSMAX.SYS or DOSMAX.OVL. The
exact name of the module is dependent upon the circumstances
under which DOSMAX.EXE is executed. This detail is important
only as diagnostic information.

================================================================================

(Error Messages)::

MS-DOS version 3.10 or above is required
DOS version is not compatible
An 80186 processor or better is required
Device not found, or version mismatch
Not enough memory to relocate
Unable to execute, can't open overlay
Unable to execute, not enough memory for overlay

================================================================================

(Warning Messages)::

Unknown option on the command line
Unknown option on line #0000
Extra characters on command line
Line length overflow at line #0000
INT 00h is not pointing into STACKS
DOS Sub-Segment list is unmoveable
System File Size not determined or out of range
Unable to validate System Data area
Couldn't validate DR-DOS data area
Couldn't size System File Table
Couldn't size System FCB Table
Couldn't trace Buffer Chain
Couldn't find Lastdrive Array
Unable to calculate DR-DOS kernel control constants
Unable to calculate kernel control constants

================================================================================

(Advisory Messages)::

Set STACKS=0,0 in CONFIG.SYS
Possible INSTALL= in CONFIG.SYS
Try using /Fnn switch
For maximum efficiency use /A00000

================================================================================

(Report Messages)::

Processing option file XXXXXXXX.XXX
Effection section is [XXXXXXXX]
DOS System forced low
DOS System in HMA
DOS System not in HMA
DOS Sub-Segments skipped
DOS Sub-Segments skipped
DOS Sub-Segments too small, staying resident
System File Size set to 00
Unhooked DOS STACKS INT 00h
Moved 00000 bytes of DOS data high
Found 00000 bytes allocated of 00000 bytes
Freed EMS handle 0

================================================================================

(Allocation Status)::

SYSTEM moved to 0000
Not enough Hi Memory for SYSTEM
INSTALL moved to 0000
Not enough Hi Memory for INSTALL
STACKS moved to 0000
Not enough Hi Memory for STACKS
DRDATA moved to 0000
Not enough Hi Memory for DRDATA
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 memory reserved at 0000
Not enough Hi Memory for COMMAND
DOSMAX located at 0000
Not enough Hi Memory for DOSMAX

================================================================================

(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 following chart attempts to show what can and cannot be moved
with DOSMAX:

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

================================================================================

(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.

(Version 1.6)::

(1) Added /Mn option, to allow general control of memory allocation
strategy. First Fit = 0, Best Fit = 1, and Last Fit = 2 were
implemented for both DOS 5 UMB's, and XMS UMB's.

(2) Added check for a 186 processor or better (allows V20/V30).

(3) DOSMAX will now move STACKS, so setting STACKS=0,0 is not
necessary. In most cases though, STACKS=0,0 is still a good
idea. Windows 3.1 supposed requirement for STACKS=9,256 is
not really necessary in most cases.

(4) Removed the check for an XMS manager and a check for extended
memory. This allows machines without extended memory to use
UMB providers, which do not require extended memory, with DOSMAX.
These checks were redundant since if DOS is in the HMA when
DOSMAX loads, the message "DOS is HIGH already" is reported.
It is still possible to use DOSMAX, but the /H switch must be
used if DOS is HIGH first.

(5) Added /I option which inhibits HIMEM.SYS from loading DOS HIGH.
This switch is not very useful if HIMEM.SYS is not loaded high,
since HIMEM will be about 30k in size. This switch is intended
for users who load HIMEM high after their UMB provider is installed.

(6) Changed default WINDOWS high file support method to a new method
which uses 2 system file handles, but no low memory, so it works
when DOSMAX is loaded high. The new method may be disabled with
/Y-, or /W+ (/W+ enables the old method since it was proven to work
and the code was already written). The new method cannot be
enabled or disabled from the command line.

(7) Now supporting separate program DOSM86.EXE. This program is
functionally identical to DOSMAX.EXE, but is compiled to work
on 8086/8088 processors also. I have learned that there are
8086/8088 machines which can be configured with High Memory
using some High Memory Managers, and this variation will make
it possible for those users to put DOS in a UMB even though
there is no HMA. DOSM86.EXE requires 32 more bytes of memory.

(8) Fixed high loading so it really works...Also added an automatic
move to high memory of DOSMAX, if UMB's are available via DOS
or the XMS manager. If there is some reason you don't want
DOSMAX loaded high when loaded after UMB's are available then
use /X- to stop it. If DOSMAX is high, then it takes 272 bytes,
because extra code was needed to securely find and identify
the DOSMAX stub in memory.

(9) Fixed a problem which hung DOSMAX after loading high if DOS was
not in the HMA yet and /V+ switch not used.

(10) Changed order of first 5 handles in new windows support, and
enhanced error checking to only warn when support will not
work. The new order maintains the AUX CON order and seems
more compatible.

(11) Added routine to stop "Incompatible DOS" message if loaded high
with a "device loader." DOSMAX will now load high with a
device loader like LOADHI.SYS or HIGHDRVR.SYS

(12) Try DOS high memory allocation even if NO XMS manager present.
This was necessary for PC's which don't have extended memory,
and don't even load an XMS manager (UMB_DRVR creates DOS high
memory and disappears).

(13) Fixed DOSMAX not running second time if loaded high with LOADHI.

(14) Fixed DOSMAX not moving anything high (sometimes) if loaded
high by any device loader. I broke this in fix (13).

(15) Added /B+ option which will stop DOS from going to the HMA by
patching the DOS initilization code in memory. This method
works no matter which memory manager is in use or how it is
configured. It also requires no resident memory.

(Version 1.7)::

(1) Added /Unn option to tell DOSMAX to unhook hardware INT nn from
DOS STACKS if the STACKS are present and moved. At the time
which DOSMAX moves the STACKS it is safe to restore the interrupt
to the pre-STACKS value. This switch was added as a work-around
to a warm-reboot problem in EMM386.EXE when STACKS are high. To
fix the warm-reboot problem use /U09. The value is in Hex-Notation.

(2) Fixed DOSMAX not removing remnants of the sub-segments low when
the size of the DOS data area should have been 0. This occurred
when using a memory manager with no code low, no drivers low, and
DOS in a UMB. Changed method of recording sub-segment movement.

(3) Removed DOS Version 3.x use of new windows method, it worked, but
wasn't completely compatible. Use FW3.BAT instead if your version
of DOS is higher then 3.31 (rare).

(4) Move master environment function now sets the MCB owner of the new,
high environment back the primary shell. This corrects a minor
incompatiblity.

(Version 1.8)::

(1) Added specific support for 386MAX. The high sub-segments and other
DOSMAX managed data are now labeled using a method which automatically
detects and adjusts to 386MAX's method of UMB management.

(Version 1.9)::

(1) Reorganized code to enable an overlay method of module selection
to automate processor selection and split up .SYS and .EXE modules
to reduce the initialization memory to minimum.

(2) DOSMAX now automatically detects the processor type and chooses
separate code modules if appropriate. The 186 processor require-
ment of previous versions is no longer applicable.

(3) Added optional full word syntax to argument parser. The old style
single letter switch interface is still intact. The switch lists
now show the optional word with the switch.

(4) Corrected problem with DOS 3.1 - 3.3 files which failed for some file
settings (i.e. FILES=20 failed).

(5) DOSMAX updated for DOS 6.0. Corrected a coding error while moving
buffers.

(6) Changed default setting of /E switch. To move the master environment
high from the command line or AUTOEXEC, now use /E+.

(Version 2.0)::

(1) Added support for INSTALL=, it is no longer necessary to remove
INSTALL= from the CONFIG.SYS.

(2) Removed /B+,/V+, and /I+ options. You must now use STOPMAX.SYS to
prevent DOS from moving into the HMA. The parameters were causing
confusion.

(3) /H and /L are no longer necessary and you can use DOS=HIGH or DOS=LOW
as you deem necessary.

(4) Added /C+ switch to enable the COMMAND.COM split feature. For most
users, /A0 was forgotten and only caused unecessary "Packed file
corrupt" messages and wasted space. You may still use this feature,
but you must first enable it with /C+, since the default is now off.

(5) Moved /E+,/MASTERENV:+ into ENVIMAX.COM. The triple mode of DOSMAX
confused people and many just didn't realize that DOSMAX could be
put into AUTOEXEC.BAT to move the master environment.

(6) Changed the Windows support method once again. The /Y is gone (the
old high file support method) and /W+ now works from both the .SYS
and .EXE command lines. This new method uses 256 bytes at 60:0 and
if this is a conflict, you must use FW4-6.BAT and FW3.BAT after
disabling the support with /W-.

(7) Added support for DRDOS 6.0. See EXAMPLES.DOC.

(8) Added feature which preloads the .EXE portion of the DOSMAX into
EMS and improves ease of configuration for STACKER/SSTOR users.
Most of the time it is not necessary to duplicate DOSMAX.EXE on
both the compressed and uncompressed drives (unless EMS 4.0 is not
present).

(9) Added support for loading self high when DOS=UMB is configured

(10) Added option response file input with @filename.opt syntax

(Version 2.1)::

(1) Fixed problem with finding DOS 6.0 CONFIG variable for machines
whose bios'es don't intialize memory properly.

================================================================================


 December 6, 2017  Add comments

Leave a Reply