home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
tsr
/
tsrcom33.zip
/
TSR30.DOC
< prev
next >
Wrap
Text File
|
1992-01-08
|
11KB
|
239 lines
Changes in TSR Utilities Version 3
Kim Kokkonen
TurboPower Software
11/22/91
------------------------------------
This file describes changes in version 3.3 of the TSR Utilities,
relative to an earlier version, 2.9. It assumes familiarity with
previous versions of the utilities. See TSR.DOC for more information.
Version 3.0 of the utilities was the first new version for a couple of
years, and included a number of major changes. Version 3.1 of the
utilities was a cleanup version, fixing compatibility problems and
downright bugs discovered in version 3.0. Version 3.2 of the utilities
generalizes the high memory support, so that it no longer requires DOS
5.0 or a particular version of any memory manager. Version 3.3 cleans
up a few problems in 3.2 and generalizes the way command lines are
parsed for options. In 3.3, command line options need not be separated
by spaces, and they can be taken from an environment variable having
the same name as the program.
If you're updating from a previous version of the utilities, be sure
to replace every file with the new version, since many of the programs
work cooperatively.
Generally, the utilities have been updated for compatibility with
MS-DOS 5.0, and to support high memory (upper memory blocks) as
implemented by DOS 5.0 and other third party memory managers. Any
memory manager that supports the UMB (upper memory block) features of
XMS (extended memory specification) memory managers should work with
the high memory features of the TSR Utilities. This includes 386MAX
(Qualitas), QEMM386 (Quarterdeck), HIMEM/EMM386 (Microsoft), and
HIDOS/EMM386 (Digital Research).
If you're using just the high memory features of MS-DOS 5.0 itself,
without additional memory managers, note that you must have at least
the following in your CONFIG.SYS in order for the TSR Utilities to
access high memory:
DEVICE=HIMEM.SYS
DEVICE=EMM386.SYS RAM
DOS=UMB
See the discussion of the EMM386.SYS driver in your MS-DOS 5.0
documentation for more information about options compatible with
creating upper memory blocks.
With other memory managers such as QEMM and 386MAX you should *not*
put the DOS=UMB statement in CONFIG.SYS. (This is a change from
versions 3.0 and 3.1 of the TSR Utilities.)
To test whether your memory manager is compatible with the TSR
Utilities high memory features, try entering MAPMEM /U at the DOS
command line. If you get a high memory report from MAPMEM, then you
can assume that the memory manager is compatible with TSR Utilities
3.0. Because of the lack of complete standards for managing high
memory, the names and attributes of programs in high memory may
sometimes appear garbled: unfortunately there is little we can do
about this without building features specific to particular memory
managers into the TSR Utilities.
Note that even if you don't get a high memory report from MAPMEM, you
can still use the TSR Utilities 3.0 without upper memory support.
The /U option of DISABLE, MAPMEM, RELEASE, and RELNET activates the
high memory features of these utilities. DISABLE won't deactivate or
reactivate a TSR loaded in high memory unless /U is specified. MAPMEM
doesn't report programs loaded above 640K unless /U is specified.
WATCH, MARK, FMARK, and MARKNET transparently access high memory when
it is available.
The /U option causes a fundamental change in the behavior of RELEASE
and RELNET. It is important that you understand what it does in order
to use these utilities properly.
When the /U option is *not* specified, RELEASE and RELNET remove
programs in address order. That is, with a few exceptions, they
deallocate any memory blocks that have a memory address greater than
or equal to that of the mark.
This behavior is almost never appropriate when TSR's are loaded high.
When high memory is involved, the *chronological* order in which TSR's
were loaded rarely matches the *address* order in which they were
loaded. Before TSR's could be loaded high, these two orderings were
usually the same, so no distinction was necessary. Now, however, it's
common to load one program high, then one low, then another high; or
to load one program into "region 2" of high memory, then another into
"region 1", and so on.
Therefore, when the /U option is activated, RELEASE and RELNET release
memory in *chronological* order. That is, they free up all memory
blocks allocated since the time the mark was placed, regardless of the
address position of the memory. Additional information is now stored
in the mark file or memory mark to allow this to occur. Only when /U
is specified do RELEASE and RELNET access high memory.
If you have *any* TSR's loaded into high memory, you should use the /U
option, even if the particular TSR you're unloading is located in low
memory. Depending on the chronological order in which you loaded the
TSR's, an unload from low memory may also trigger unloads from high
memory, or vice versa.
When you intend to use the /U option, you must provide a unique mark
name for each mark (because there is no unambiguous way to find the
correct unnamed mark). A mark name is inherent in the filename
specified to FMARK and MARKNET.
Because of the chronological nature of RELEASE /U, you can load the
MARK high and the associated TSR low (or vice versa) if desired.
When you use the /U option with RELEASE, RELNET, or DISABLE, the
programs must be able to find high memory blocks. If no high memory
blocks are found, the programs will halt with an error. Another
option, /H, will use high memory if it is found, or revert to the
default low memory behavior if none is found.
--------------------------------------------------------------------
The following list details the changes made for version 3.3 to each
program in the TSR Utilities:
DEVICE.EXE
- takes program options from an environment variable named DEVICE if
found
DISABLE.EXE
- deactivates programs loaded high if the new /U option is specified
- uses a feature new to DOS 5 to find TSR's by name even if they
have released their environment
- new /Q option prevents writing any screen output
- new /H option works like /U if high memory is found
- takes program options from an environment variable named DISABLE
if found
EATMEM.COM
- no substantive changes
FMARK.COM
- new /Q option prevents writing any screen output
- stores new "mcb chain" section of mark file for use in releasing
programs loaded high
- the mark itself may be loaded high
MAPMEM.EXE
- rewritten from scratch to allow reporting of upper memory blocks
- fixes problems that occurred when TSR's were loaded in CONFIG.SYS
- low memory report includes pre-DOS memory blocks so that the
blocks total to 640K
- reports on device driver memory allocation under DOS 5 when the /V
option is active
- reports EMS handle names when available
- uses a feature new to DOS 5 to report TSR's by name even if they
have released their environment
- modifies some command line options (type MAPMEM /? to see current
options)
- new /C option checks for presence of a named TSR
(syntax: /C TsrName). Halts with ErrorLevel 2 if the TSR isn't
loaded, ErrorLevel 1 if there is a command line syntax error, or
ErrorLevel 0 if the TSR is loaded. Note that this feature does not
require WATCH to be in memory.
- new /F option reports on just the free memory blocks available in
normal, high, expanded, and extended memory
- new /Q option prevents writing any screen output when the /C
option is used
- new /S option reports a summary of all memory areas
- new /U option activates upper memory reporting
- new /X option activates reporting of extended (XMS) memory
- supports some segment naming conventions of DRDOS 6
- fixes problem with TSRs that shrink their environment to zero size
(Flushot+)
- takes program options from an environment variable named MAPMEM if
found
MARK.COM
- new /Q option prevents writing any screen output
- stores new "mcb chain" section of memory mark for use in releasing
programs loaded high. This increases the amount of memory used for
a mark by about 50 to 500 bytes depending on the number of memory
blocks allocated.
- the mark itself may be loaded high
MARKNET.EXE
- new /Q option prevents writing any screen output
- stores new "mcb chain" section in mark file for use in releasing
programs loaded high
- saves BIOS data area associated with LPT ports
- saves XMS (extended memory) allocation state
- the mark itself may be loaded high. Note, however, that MARKNET
needs up to 18K of free memory when it is initially loaded, even
though it keeps less than 300 bytes when it goes resident.
- takes program options from an environment variable named MARKNET
if found
RAMFREE.COM
- now supports >640K free RAM
- adds current environment block size to reported free RAM
RELEASE.EXE
- fixes problems that occurred when TSR's were loaded in CONFIG.SYS
- closes open file handles of released memory blocks
- updated for new behavior of WATCH
- new /Q option prevents writing any screen output
- new /U option allows it to remove programs loaded high
- new /H option works like /U if high memory is found
- increases maximum number of memory blocks to 256
- won't do an unnamed release on a memory mark loaded prior to a
file mark
- reverses order in which memory blocks are released to work
correctly with 386MAX high memory
- merges free blocks in high memory when possible (QEMM doesn't do
this automatically)
- takes program options from an environment variable named RELEASE
if found
RELNET.EXE
- fixes problems that occurred when TSR's were loaded in CONFIG.SYS
- updated for new behavior of WATCH
- new /Q option prevents writing any screen output
- new /U option allows it to remove programs loaded high
- new /H option works like /U if high memory is found
- increases maximum number of memory blocks to 256
- adds automatic cancellation of NetWare IPX event control blocks,
now allowing independent release of Novell's NETBIOS.EXE TSR
- new (in 3.1) /I option prevents cancellation of IPX control blocks
- restores BIOS data area associated with LPT ports
- restores XMS (extended memory) allocation state
- reverses order in which memory blocks are released to work
correctly with 386MAX high memory
- merges free blocks in high memory when possible (QEMM doesn't do
this automatically)
- takes program options from an environment variable named RELNET
if found
WATCH.COM
- corrects problem that occurred when TSR's unloaded themselves
- WATCH itself may be loaded high
- adds support for TSR's loaded high
- reduce resident size of WATCH by about 1000 bytes