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 >
Wrap
Text File
|
1992-07-23
|
34KB
|
703 lines
================================================================================
DOSMAX.EXE : Ver. 1.7, Copyright (1992) by Philip B. Gardner
DOSM86.EXE (8086): Ver. 1.7, 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 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. 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
* 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)::
* 186 processor or better
(DOSM86.EXE now included to support 8086/8088 processors)
* Requires MS-DOS Version 3.10 or better
================================================================================
(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.0 only)
DEVICE=STOPMAX.SYS [options] (Stops kernel from loading in HMA)
DEVICE=(xms/umb memory manager)
DEVICE=DOSMAX.EXE [options] (DOSMAX loads high automatically)
SHELL=COMMAND.COM /P
BUFFERS=20
FILES=40
LASTDRIVE=Z
DOS 5.0 users 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)
Insert a DEVICE= line for DOSMAX.EXE in your config.sys. Version 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
provides another way to ensure that the DOS 5.0 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).
HIMEM.SYS from Microsoft always puts the DOS 5.0 kernel into the
HMA before it is through initializing and then puts its own code
into the HMA. If you are able to load HIMEM.SYS high (using some
upper memory providers, not EMM386.EXE), you can now use the /I+
switch or /B+ switch to stop HIMEM from loading the DOS kernel into
the HMA, and DOSMAX will put it into a UMB instead. The /B+ switch
is the default for STOPMAX because it requires no resident memory.
If you use only DOS 5.0 memory management, meaning HIMEM.SYS and
EMM386.EXE, you should not load the DOS kernel into a UMB (see /I+
switch), but use /H+ to maximize low memory.
The /A0 option disables high memory support for COMMAND.COM. This
switch should be used if the primary shell is not COMMAND.COM (for
DOS 5.0 and above). You should also use /A0 if you are using
SHELLMAX.COM to load COMMAND.COM high, unless you elect to allow
DOS into the HMA (/H+), in which case, /A0 is automatic.
DEVICE=STOPMAX.SYS [options]
DEVICE=(Memory Manager)
DEVICE=DOSMAX.EXE [/A0][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)
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 be 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:
(Loading DOSMAX High)::
You may load DOSMAX high with your high memory loader, or DOSMAX
will now load itself high if upper memory is available. If you
want DOSMAX to move the DOS 5.0 kernel to a UMB, then DOS must
not be in the HMA already when DOSMAX loads. DOSMAX will report
that "DOS is HIGH already" and abort if this condition is true.
Use STOPMAX.SYS to stop the kernel from moving into the HMA.
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 you must use the
/H+ switch to optimize low memory 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.
(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 enable the old Windows high file support. This
switch is mainly provided for diagnostic purposes, but can
be used if the new method does not work with your configuration.
The new method uses 2 system file handles and cannot not be enabled
or disabled from the command line. This switch will not
work from the command line unless /W+ was used in the device
line or /Y- (disable new method) was used in the device line.
This switch is also not possible if DOSMAX.EXE is loaded into
upper memory.
(NEW WINDOWS):: Y[+ or -] (toggle: default +)
Use /Y- to disable the new windows support added in Version 1.7
of DOSMAX. This switch is for non-windows users who wish to
recover the 2 system file handles used by this method, but no
low memory. The new method automatically supercedes /W+ if DOSMAX
is loaded into upper memory, otherwise using /W+ overrides this
method automatically. The new method cannot be enabled or disabled
from the command line. If you disable both methods, you may still
start Windows with FW4&5.BAT for DOS Versions 4.x and 5.x, or
with FW3.BAT for the rare user who has a Version of DOS 3.x higher
than 3.31.
(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.
There is a problem which will be encountered by DOS 5.0
HIMEM.SYS users, DOSMAX will be unable to prevent DOS from
going into the HMA, because HIMEM automatically puts itself
in the HMA when initializing and before any other program can
reserve the HMA. The sub-segments will be moved anyway, but
the space will still be reserved in low memory. Use /H+ to
change the timing of the sub-segment moves so that this low
space is freed, or use an alternative XMS manager like QEXT.SYS
from Quarterdeck. DOSMAX 1.7 adds the /I switch to inhibit
this behavior of HIMEM.SYS (see /I+ below).
(INHIBIT HIMEM) I[+ or -] (toggle: default -)
Use /I+ to stop HIMEM.SYS from loading DOS HIGH. This switch
is intended for users who load HIMEM.SYS from Microsoft high
after their UMB provider. This option is not very useful if
HIMEM.SYS is not loaded high because HIMEM will grow to about
30k in size. If you still want to inhibit HIMEM, then load it
last, to minimize the "growth." The reason HIMEM "grows" is
because the code which normally goes to the HMA is fixed at
offset 0A000, so if HIMEM is loaded below 0A00h, the size of
HIMEM grows to 0A00h + the size of the HMA code + the size of
the XMS handle table. This option affects the size of DOSMAX
and adds 32 bytes.
(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 40. 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.
(MEMORY STRATEGY):: Mn (value: n = 0)
Use /Mn 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.
(LOAD HIGH):: 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.
(STOP DOS):: B[+ or -] (toggle: default -)
Use /B+ to stop DOS from loading in the HMA using a method
which patches the copy of DOS 5.0 initialization code in memory
when DOSMAX initializes. This method will search and "patch out"
the DOS to HMA code. This option was developed and tested under
MSDOS 5.0 and is not guaranteed to work with DOS versions later
than 5.0, but then many of the algorithums in DOSMAX depend upon
"undocumented" features of DOS which are always subject to change
anyway. The advantage of this method is that it works no matter
which memory manager is used or how it is configured.
(UNHOOK INT):: Unn (value: default none)
Use /Unn 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.
* everything in square brackets "[]" is optional
(CONFIG.SYS Line)::
DEVICE=DOSMAX.EXE [/-][R-P-W-Y-X-L+H+I+N+V+B+FnnAnnnnMnUnn]
device default: /R+/P+/Y+/N-/X+/A2080/M0 (E & T ignored)
* Report status messages
* Pause after report
* Enable New Windows Support
* Pause on errors or warnings
* Reserve 2080 bytes for INT 2Fh Function 4Ah (COMMAND.COM)
* Use the First Fit memory allocation strategy
* Load DOSMAX high if upper memory available
(Command Line Mode)::
C:\> DOSMAX.EXE [/-][R+P+W-N+E+T-Fnn]
command line default: /R+/P-/W+/N+/E+/T-/Mn (ignore Y,S,L,H,I,V,A,X,B,U)
* Report status messages
* Don't pause after report
* Enable Windows Support
(only if /Y- or /W+ is on the device line)
* Never Pause even on errors or warnings
* Find and move the master environment
* No special environment test
* Use Allocation Strategy set in device
(can be overridden with /Mn)
================================================================================
(Report Format)::
DOSMAX.EXE : Ver. 1.7, 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
Can't load in High Memory
DOS version is not compatible
An 80186 processor or better is required
Include DOS=HIGH in CONFIG.SYS
Couldn't write VDISK Header
Device not found, or version mismatch
Stop DOS to HMA patch not successful
================================================================================
(Warning Messages)::
Unknown option in command line
Extra characters on command line
DOS is HIGH already
Unable to free HMA
A20 Not Disabled
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 size System File Table
Couldn't size System FCB Table
Couldn't trace Buffer Chain
Couldn't find Lastdrive Array
Master Environment is not moveable$
================================================================================
(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 /H+ switch (forced)
Try using /V+ switch
Try using /B+ 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
Old Windows support enabled
Old Windows support disabled
Windows support enabled
Windows support method may have failed
System File Size set to 00
Unhooked DOS STACKS INT 00h
Found 00000 bytes allocated of 00000 bytes
================================================================================
(Allocation Status)::
SYSTEM moved to 0000
Not enough Hi Memory for SYSTEM
STACKS moved to 0000
Not enough Hi Memory for STACKS
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
DOSMAX moved to 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
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 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.
(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.
================================================================================