mirror of
https://github.com/MiSTer-devel/PCXT_MiSTer.git
synced 2026-04-19 03:04:47 +00:00
* Lo-Tech 2Mb EMS * Fix in UART access * video vectors corrected, sdc constraints for sdram, minor tipos to clear warnings
740 lines
32 KiB
Plaintext
740 lines
32 KiB
Plaintext
|
|
================================================================================
|
|
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.
|
|
|
|
================================================================================
|