From: "quarterdeck canada" <quarterdeck.canada@canrem.com>
Subject: qemm 6.02 optimize an
Reply-To: "quarterdeck canada" <quarterdeck.canada@canrem.com>
Organization: Canada Remote Systems
Distribution: comp
Date: 20 Dec 92 23:10:16 EST

PK>When I try to run OPTIMIZE for a configuration which uses NDIS network
PK>drivers, NETBIND.COM (or .EXE) v1.1 produces an "invalid instruction"
PK>exception at 8800:0CAF. This happens during the "detection phase", and
PK>it can be reproduced by trimming the configuration down to:

PK>  DEVICE=C:\QEMM\QEMM386.SYS RAM ROM
PK>  DEVICE=C:\LANMAN\PROTMAN.DOS

PK>  C:\LANMAN\NETBIND

PK>I can usually "t"erminate NETBIND, but this prevents OPTIMIZE from being
PK>useful because other network drivers in AUTOEXEC.BAT won't load.

PK>Hardware is a Compaq Deskpro 50M, but it "works" on my home EISA clone
PK>as well.

PK>Is this a known problem? Workarounds?

Boy, is it ever a known problem in our shop.  And there are workarounds,
good ones.  The reason that it works with DOS's memory managers is
astonishing, too -- see the section below on PROTMAN.  Posted here for
everyone's interest.

ID:LM LAN Manager and QEMM-386
Quarterdeck Technical Bulletin #258
by Quarterdeck Testing and Compatibility Department
last revision:  18 August 1992

                    MICROSOFT'S LAN MANAGER AND QEMM-386

     LAN Manager is network software from Microsoft.  It presents issues with 
which the QEMM-386 user must deal.  We may deal simply with each of these 
issues.

LAN MANAGER PROGRAMS AND HOW THEY LOAD
     LANMAN typically loads two drivers in the CONFIG.SYS:  PROTMAN.DOS and a 
hardware-specific network card driver.  LANMAN typically loads two programs in 
the AUTOEXEC.BAT:  NET START WORKSTATION and LOAD NETBEUI.

NET START WORKSTATION
      NET START WORKSTATION loads other LANMAN programs ("daughters")
including (but not necessarily):  NETWKSTA, MINSES, ENCRYPT, MSRV, and
NETPOPUP.  On DOS 5 systems NET START WORKSTATION loads itself and the other
programs it loads high only by using DOS 5's private interface to High RAM
(which Microsoft calls UMBs.)  For NET START WORKSTATION to load its daughters
high DOS 5 users must have DOS=UMB (or DOS=HIGH,UMB) in their CONFIG.SYS.
     If you use the Stealth feature of QEMM-386 AND DOS 5, when NET START
WORKSTATION loads NETWKSTA you will get an exception #13.  NETWKSTA's misuse
of expanded memory causes this problem.  To stop NETWKSTA from using EMS add
the parameter "LIM=NO" to the "[Workstation]" section of your LANMAN.INI file.
For example:

     [workstation]
       wrkservices = encrypt,messenger,netpopup
       computername = fred
       domain = domain
       othdomains =
       numdgrambuf = 3
       lanroot = C:\LANMAN.DOS
       lim=no                <----------------------------

You may wish to notify Microsoft about this misuse of EMS so that you can let
NETWKSTA use EMS with Stealth in the future.  They can do it:  other LANMAN
programs use EMS with Stealth successfully.  The Stealth feature of QEMM-386
in no way compromises QEMM-386's support of the EMS specification.

LOAD NETBEUI
     LOAD loads LANMAN's network protocol driver.  Most will use NETBEUI; some
may use TCPIP or another network protocol driver.  LOAD uses all conventional
memory when it loads.  Quarterdeck's LOADHI cannot load it high.  It will load
itself high on DOS 5 systems with DOS=UMB (or DOS=HIGH,UMB) in the CONFIG.SYS.

NETBIND and NET LOGON
     NETBIND and NET LOGON are not resident programs so you need not load them
high; OPTIMIZE will not try to load them high.

PROTMAN.DOS
     PROTMAN.DOS does a curious thing:  It writes some code and data into
memory at about 90K beneath the top of the region into which it loads.  Later
LANMAN drivers that use the services of PROTMAN.DOS while they load
are redirected to use the code and data in this area.  Apparently its authors 
expected it to load into conventional memory.  When you load it high you may 
well load it into a region not large enough to accommodate this stuff at 90K 
beneath the top of memory.  For example, if you load it into B000-B7FF 90K 
beneath the top of memory is in the video card's graphics space.  This causes 
the loading of subsequent LANMAN programs that use the services of PROTMAN.DOS 
to fail.
     With the advent of version 5 Microsoft's DOS began to load programs high
and LANMAN users would have suffered from the same problem when they loaded
PROTMAN.DOS with DEVICEHIGH.  To "cure" this problem Microsoft did not
re-write PROTMAN.DOS to correct this programming mistake but made DOS itself
detect when it loaded a driver with an internal name of PROTMAN$ (a device
driver has an "internal" name stored beginning at its tenth byte) and make Int
12 (the BIOS function that reports the top of memory) report that the top of
memory is at 575K (23F in hexadecimal) instead of the real top-of-memory.  You
can find "PROTMAN$" embedded in IO.SYS (or IBMBIO.COM) of DOS 5 (These are

(Continued in the next message)
---
  DeLuxe 1.25 #6922  DESQview 386 = DESQview + QEMM 386
--
Canada Remote Systems  - Toronto, Ontario
World's Largest PCBOARD System - 416-629-7000/629-7044
Newsgroups: comp.os.msdos.desqview