Category : Alternate Operating Systems - Quarterdeck DesqView, CP/M, etc
Archive   : QWAUG92.ZIP
Filename : PROTMAN.TEC
Quarterdeck Technical Note #227
by the Quarterdeck Compatibility Dept.
last revision: 12 February 1992
PROTMAN.DOS is the protocol manager for Microsoft's MS-DOS LAN Manager.
It is also used in 3COM's 3Open network configuration and in many other
network software configurations. PROTMAN is a device driver that is loaded
from the CONFIG.SYS file and is usually the first piece of network software
loaded.
Many existing versions of PROTMAN.DOS seem to need only 100 bytes or so
of memory for themselves. In fact, they put a chunk of additional code in
available memory, 32K from the top of whatever region of memory they are
loaded into. This code, which is used by other network programs that make
calls to PROTMAN, is completely exposed to any other program that allocates
memory from DOS. The PROTMAN programmers, realizing that this exposed code
would only be exercised by other network drivers and TSRs, no doubt assumed
that it would not be overwritten until after it was no longer needed. This
assumption is not necessarily valid when programs are being loaded between
640K and 1024K.
Among the possible consequences of PROTMAN's unusual behavior:
1) Any program loading high into a region with PROTMAN is likely to
overwrite the code that PROTMAN places in available memory, thus causing
subsequent network programs to fail.
2) PROTMAN writes some of itself 32K from the top of its memory region,
regardless of the size of the region. If you load PROTMAN in a 32K
region between 640K and 1024K, it will write right over itself, and the
system will hang as PROTMAN loads in the CONFIG.SYS routine. If you load
PROTMAN in a 16K region, it will write over something beneath it in
memory, with unpredictable results.
3) LOADHI's /GETSIZE (/GS) parameter writes its signature throughout
available memory as a method of determining how much memory a driver or
TSR uses when loading. When used after PROTMAN, LOADHI /GS will
overwrite PROTMAN's exposed code, which is in memory that DOS reports as
unused. In such a case, network programs that load after PROTMAN and
make calls to it usually hang the system, giving an Exception #13 error
on systems using QEMM-386.
4) Optimize, which relies on LOADHI /GS, will likely fail in the
Detection Phase when PROTMAN is loaded. The system will usually hang,
not when PROTMAN loads, but when one of the subsequent network drivers or
TSRs loads.
Versions of PROTMAN.DOS after 2.0C (CSD rev. 8) no longer place code in
available memory. For those users with earlier versions of PROTMAN, we have
tested a method which lets users run Optimize on PROTMAN systems without
getting Exception #13's during the Detection Phase. This method should leave
your system configured in such a way that all four of the above dangers are
avoided.
1) Place the RAM parameter on QEMM-386 or QEMM-50/60, or install QRAM in the
CONFIG.SYS file. Reboot, and make sure that the biggest High RAM region (as
reported on Manifest's First Meg/Overview screen) is at least 33K in size.
If the largest High RAM region isn't at least 33K big, you cannot run
Optimize with PROTMAN, and you should not proceed to step 2. Instead, you
should manually place LOADHI.SYS and LOADHI.COM on every line in the
CONFIG.SYS and AUTOEXEC.BAT file that contains a program that you want to load
high. (See the LOADHI chapter in your QEMM or QRAM manual for more details.)
Do not, however, place LOADHI on the PROTMAN line. Then, reboot without
running Optimize. This configuration should let you successfully load most of
your programs high.
2) If you have any programs that allocate Upper Memory Blocks (UMBs) through
the Extended Memory Specification, you may wish to stop them from doing so (by
using the programs' own parameters) before proceding further. Such programs
can interfere with Optimize's calculations under any circumstances; with the
procedure that we are about to use, a program that allocates a UMB may cause
network drivers or TSRs to fail.
3) If your biggest High RAM region is 33K or larger, start Optimize. Let
Optimize modify your CONFIG.SYS and AUTOEXEC.BAT files in preparation for the
Detection Phase. When you see the Optimize screen titled "DETECTION PHASE,"
hit Esc, then F1, to break out of Optimize.
NOTE: For those people using 3COM cards on DECNET: We have some
unconfirmed accounts that PROTMAN used in this setting uses more than
32K. One DECNET user's troubles did not go away until he loaded PROTMAN
into a 48K region.
4) Use an editor to edit the PROTMAN line in the CONFIG.SYS file. Remove all
the parameters to LOADHI.SYS on that line. (There should be two: a /GS
parameter that directs the /GETSIZE data to LOADHI.OPT, and a LABEL
parameter.) Leave LOADHI.SYS and all PROTMAN's parameters on the line. And
let all the other lines alone.
For example, if the PROTMAN line in the CONFIG.SYS says:
DEVICE=C:\QEMM\LOADHI.SYS /GS:C:\QEMM\LOADHI.OPT /LABEL:AB
...C:\LANMAN\PROTMAN.DOS /I:C:\LANMAN\PROTOCOL.INI
...then change the line to:
DEVICE=C:\QEMM\LOADHI.SYS C:\LANMAN\PROTMAN.DOS
.../I:C:\LANMAN\PROTOCOL.INI
5) Reboot and let Optimize complete normally.
When you're all done, PROTMAN will be loaded low, but it only uses 100
bytes or so. All other programs will be Optimized.
************************************************************************
*This technical note may be copied and distributed freely as long as it*
*is distributed in its entirety and it is not distributed for profit. *
* Copyright (C) 1991-2 by Quarterdeck Office Systems *
************************ E N D O F F I L E *************************
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/