

                QEMM and Novell DOS 7 and DR-DOS 6

 Quarterdeck Technical Note #269              Filename: NOVELL7.TEC
 by Quarterdeck Quality Assurance           CompuServe: NWDOS.TEC
 Last revised:  4/12/95                       Category: NW

 Subject:  Installation and compatibility notes on Novell DOS 7 and
           Digital Research's DR-DOS 6.

 All shipping versions of Quarterdeck products are essentially
 compatible with Novell DOS 7 and Digital Research's DR-DOS 6,
 alternative versions of DOS to Microsoft and IBM DOS offerings.
 There are, however, a few configuration issues that will be
 addressed in this note.  In the first section, Novell DOS 7 issues
 are addressed; in the second DR-DOS 6 is discussed, and in the
 third, notes pertaining to both versions detail QEMM's advantages
 over the Novell DOS memory managers.  We recommend strongly that
 you read all of the section pertaining to your version of DOS
 before installing QEMM and running the OPTIMIZE program.

 For the purposes of this note, "Novell DOS" will be used to denote
 either DR-DOS 6 and Novell DOS 7; when there is a distinction
 between the two, the name of the operating system will be
 specified in full.  Note that Novell DOS 7 is an updated version
 of DR-DOS 6, and contains significant and worthwhile new features.
 Some of these features make using QEMM much easier on Novell DOS
 systems, and while not disparaging DR-DOS 6, Quarterdeck would not
 discourage DR-DOS 6 users from considering an upgrade to Novell
 DOS 7.

 Part One:  Novell DOS 7

 Q. Novell DOS 7 promises better memory management than other
    versions of DOS.  Is QEMM useful on Novell DOS 7 systems?

 A. While the memory management features of Novell DOS 7 represent
    an advance for DOS, Quarterdeck's memory managers still provide
    significant advantages for Novell DOS 7 users.  These
    advantages are detailed at the end of this note.

 Q. Novell DOS provides a DPMS driver.  What is DPMS?

 A. DPMS stands for "DOS Protected Mode Services".  Effectively,
    this is a memory management specification of the same genre as
    EMS, XMS, VCPI, and DPMI, but is different from all of these.
    DPMS allows several of the utilities that come with Novell DOS
    7 to load into extended memory, reducing conventional memory
    overhead. DPMS does not conflict with any of the memory
    management specifications offered by QEMM; in fact, DPMS
    allocates its memory from QEMM's memory pool.

    In the earliest versions of Novell DOS 7, the DPMS driver
    (DPMS.EXE, version 1.0 and 1.1) would not work properly when
    loaded high by any memory manager.  Updates to Novell DOS 7 are
    available on CompuServe (GO NETWARE) and from Novell.  The
    initialization size of DPMS.EXE is very large in these updated
    versions; thus DPMS.EXE can never be loaded high and will work
    properly in all cases.  The size of the driver is only 2K, so
    this will not have a significant impact on conventional memory,
    but will greatly reduce the DOS memory overhead of DPMS-aware
    device drivers and TSRs.

    If you have a version of DPMS.EXE version 1.1 or earlier, you
    should strongly consider an update.  If you cannot arrange to
    acquire an update, place the line

    DPMS

    in the OPTIMIZE.NOT file before running OPTIMIZE.  Consult your
    QEMM manual for information on OPTIMIZE.NOT.

 Q. How do I install Novell DOS 7 on a machine that is already
    running QEMM?

 A. Novell DOS 7 may have problems installing properly if
    COMMAND.COM is loaded into upper memory. Before installing
    Novell DOS 7, please take the following precautionary steps to
    ensure that QEMM's DOS-Up feature is configured to load the
    command processor low:

    1) At the DOS prompt, type QSETUP.

    2) When the QEMM Setup welcome screen appears, press Enter.

    3) At the QEMM Setup Options menu, type U to select Enable or
       Disable DOS-Up.

    4) At the Enable or Disable DOS-Up menu, type P to select
       Partial.

    5) At the DOS Up Options menu, type 2 until the word No appears
       after COMMAND.COM. Then press Enter.

    6) At the QEMM Setup Options screen, press S to select Save
       Configuration and Quit.

    7) You will be prompted to run Optimize. Follow the prompts on
       the screen.

    When Optimize completes, you can run the Novell DOS 7
    installation. The installation program will detect that a
    compatible memory manager (QEMM) is already installed and will
    not replace it. Follow the procedures outlined for you in the
    Novell DOS 7 Installation Guide.

 Q. How do I install QEMM and run OPTIMIZE on a Novell DOS 7
    machine?

 A. If you are running the Novell 7 Taskswitcher or Multitasker,
    shut down all of your programs and exit Task Manager before
    installing QEMM.  Put the QEMM distribution disk in your floppy
    drive and run the INSTALL program as instructed in the QEMM
    manual.

    Before running OPTIMIZE, ensure that the DPMS driver is in
    OPTIMIZE.NOT as noted above.

 Q. Is the QEMM DOS-Up feature compatible with Novell DOS 7?

 A. Yes.  The DOS-Up feature has been compatible with Novell DOS 7
    since QEMM 7.04.  There are a couple of differences between
    DOS-Up on MS- or PC-DOS systems and DOS-Up under Novell DOS 7:

    - The line DEVICE=C:\QEMM\DOSDATA.SYS appears at the beginning
      of the CONFIG.SYS file on MS-DOS and IBM DOS systems to
      prepare the loading of the DOS kernel's data segment into
      upper memory.  On Novell DOS 7 systems, the DOS data segment
      remains low, so QSETUP does not insert the DOSDATA.SYS line.
      If DOSDATA.SYS exists in your CONFIG.SYS file, it may be
      removed.  It uses no memory and it will do no harm if you
      leave it in.

    - The SHELL statement in CONFIG.SYS will not contain QEMM's
      LOADHI command, which is used to load COMMAND.COM into upper
      memory on MS-DOS and IBM DOS systems only.  On Novell DOS 7
      systems, DOS-Up does not load COMMAND.COM into upper memory.

 Q. Are there any considerations for NWCache?

 A. NWCache, Novell DOS 7's disk cache utility, defaults to loading
    its 16k lookahead buffer into conventional memory.  If you need
    to free more conventional memory for your programs, you may
    want to use the /BU or /BE parameters on NWCache, which will
    load the look ahead buffer into either Upper or Expanded
    memory.  If you have a system with a SCSI hard drive, you may
    need to keep the buffer in conventional memory.

 Q. Can I use the INSTALL= and HIINSTALL= commands in CONFIG.SYS?

 A. Novell DOS's INSTALL and HIINSTALL commands are incompatible
    with DOS-Up. If you are using either of these commands in your
    CONFIG.SYS file to load programs, load the programs from
    AUTOEXEC.BAT instead.

 Q. Can I load the command processor high?
                              
 A. Novell DOS 7 allows you to load the command processor outside
    of conventional memory.  Do this by adding the /MH, /MX, or /MU
    parameter to the command processor line in CONFIG.SYS. For
    example:

    SHELL=C:\COMMAND.COM /P /MH

    The /MH parameter causes the command processor to load into the
    HMA or conventional memory, depending on other configuration
    options you may have set; /MX loads the command processor into
    expanded memory; and /MU loads it into upper memory (or High
    RAM).

 Q. Can I load DOS into the HMA?

 A. Yes, though if you are using Quarterdeck's DESQview or
    DESQview/X, you shouldn't.

    You can have Novell DOS relocate the DOS kernel into the HMA,
    freeing space in conventional memory for DOS applications.  We
    recommend that you do this unless you are using DESQview or
    DESQview/X.  To load the parts of DOS into the HMA, add the
    following line anywhere in your CONFIG.SYS file:

    DOS=HIGH

    To get the most free conventional and upper memory, if you use
    DOS=HIGH to load parts of DOS into the HMA, put the command
    processor there as well.  

 Q. Are there any potential pitfalls for DESQview or DESQview/X
    users?

 A. Yes -- a minor note for DESQview and DESQview/X users only:
    various Novell DOS 7 utilities, including SHARE and NLSFUNC,
    will put themselves into the HMA by default, even if the
    DOS=HIGH statement is not present in CONFIG.SYS.  This will
    prevent DESQview and DESQview/X from using the HMA, which will
    almost always result in a decrease in the size of DESQview and
    DESQview/X windows. To prevent SHARE and NLSFUNC from using the
    HMA, give them one of the following parameters: /MU (which
    loads the program into upper memory) or /ML (which loads the
    program into conventional memory).  The following example loads
    SHARE into upper memory:

    SHARE /MU

    Consult your Novell DOS 7 manual or the online documentation
    for further details.


 Q. Why does Manifest tell me that I have DOS 6 when I know that I
    have Novell DOS 7?

 A. Programs may request information on the DOS version from the
    system via the DOS Get Version call.  To retain maximum
    compatibility with MS-DOS 6, Novell DOS 7 answers that its
    version number is 6.0 whenever a program asks.


 Part Two:  DR-DOS 6

 We recommend strongly that you read ALL of this section of this
 note before installing QEMM and running the OPTIMIZE program on a
 DR-DOS 6 system.  Pay special attention to the section on
 SuperStor below if you are using SuperStor disk compression.

 Q. How do I get the maximum amount of conventional memory with
    DR-DOS 6?

 A. There are several steps involved, for which a little background
    information is needed.  However, you can recover as much as
    629K of conventional memory using the features of QEMM and
    DR-DOS.

 1) To get the most conventional memory available in DR-DOS 6, use
    the DOS-Up feature in QEMM, in combination with the DR-DOS
    HIDOS option.  To do this, run QSETUP, and from the main menu
    select U for DOS-Up Options.  Choose Y for Yes to enable all
    of the supported DOS-Up features, and Enter to return to the
    QSETUP main menu.

 2) In MS- and PC-DOS, the DOS=HIGH command in CONFIG.SYS allows
    the DOS kernel to be loaded into the first 64K of extended
    memory (the HMA), which eliminates most of DOS's overhead.
    DR-DOS also permits the kernel to be loaded into the HMA,
    although in a slightly different way.  This is advantageous for
    all DR-DOS users except those who use DESQview or DESQview/X,
    which use the the HMA more efficiently than DOS can.  Thus if
    you're a DESQview or DESQview/X user, skip this next step.  To
    load the DR-DOS kernel into the HMA, choose C for "Edit the
    Proposed CONFIG.SYS" and add the following line to CONFIG.SYS
    after the QEMM386.SYS line:

    DEVICE=C:\DRDOS\HIDOS.SYS /BDOS=FFFF HIDOS=ON

 3) Use the DR-DOS HIBUFFERS command, which loads BUFFERS into the
    HMA, rather than into conventional memory or High RAM.  Add
    this line to CONFIG.SYS:

    HIBUFFERS=20

    Since there might not be room in the HMA to load an excessive
    number of BUFFERS, we recommend limiting BUFFERS to 20.

 Q. Why doesn't OPTIMIZE arrange to load the HISTORY or FASTOPEN
    commands high?

 A. LOADHI.SYS will not load HISTORY or FASTOPEN because they are
    internal instructions to DR-DOS, rather than discrete programs
    as they are in MS-DOS.  This causes no problems and does not
    increased conventional memory overhead.

 Q. What is the HIBUFFERS command?

 A. HIBUFFERS is the DR-DOS command to load buffers into the HMA.
    It will use the HMA even if the DR-DOS kernel is not loaded
    there. The BUFFERS command of DR-DOS causes the buffers to be
    loaded into High RAM if HIDOS=ON is in CONFIG.SYS.  Each buffer
    takes an individual UMB.  The BUFFERS.COM program from
    Quarterdeck works with DR-DOS; using the LOADHI.COM program
    with BUFFERS.COM will cause the buffers to be loaded into a
    single UMB.  Use HIBUFFERS only if you are loading the DR-DOS
    kernel into the HMA, otherwise the HMA will be used for nothing
    but buffers.

 Q. Should I use the DR-DOS HILOAD, HIDEVICE, and HINSTALL commands
    in CONFIG.SYS?

 A. HILOAD, HIDEVICE, and HINSTALL are the DR-DOS internal commands
    that load TSRs and device drivers high.  These commands are
    incompatible with QEMM.  QEMM's LOADHI.COM, LOADHI.SYS, and
    INSTALL=LOADHI.COM /TSR which, respectively, perform the same
    functions, should be used instead.

 Q. Can I use the MEMMAX program that comes with DR-DOS?

 A. QEMM's VIDRAM program allows the user to extend conventional
    memory by using the address space normally associated with VGA
    graphics.  DR-DOS comes with a similar program called MEMMAX
    that works only with the DR-DOS memory managers.  Users of any
    Quarterdeck memory manager or enhancer should use VIDRAM
    instead of MEMMAX.

 Q. Can I use the DR-DOS CHAIN command with QEMM and OPTIMIZE?

 A. The DR-DOS CHAIN command allows the CONFIG.SYS to pass control
    to another CONFIG.SYS-like file.  DR-DOS uses it on
    installation if you choose to install SuperStor.  OPTIMIZE does
    not follow this passing of control to another file.  If you are
    using CHAIN you must combine your configuration files into one
    for the duration of the OPTIMIZE process.

 Q. What about the DR-DOS utilities that load themselves high?

 A. DR-DOS utilities such as Super PC-KWIK and DELWATCH are polite
    enough to allow LOADHI.COM to load them high in the same manner
    as they would load themselves high; this allows them to be
    included by OPTIMIZE in its calculations.  This is done
    automatically and does not require any attention from the user.

 Q. Can SuperStor be loaded high?

 A. SuperStor (SSTORDRV.SYS) is a disk-compression utility that is
    bundled with DR-DOS.  It loads part of itself high, and leaves
    the rest of itself in conventional memory.  The remainder
    cannot be loaded high with any memory manager.  If you use
    DR-DOS's EMM386.SYS, SuperStor merely loads low without
    notification; if you use QEMM's LOADHI.SYS, SuperStor does not
    load at all.  To prevent OPTIMIZE from trying to load
    SSTORDRV.SYS high, place the line

    SSTORDRV

    in the OPTIMIZE.NOT file.  Consult your QEMM manual for more
    information on OPTIMIZE.NOT.

 Q. Does SuperStor present any complications for QEMM's
    installation?

 A. SuperStor works by creating a large file on the physical hard
    drive, making that file look like a hard drive, and compressing
    the data in the file.  SuperStor may also swap the drive
    designations such that the compressed file (which by default
    would appear to be drive D) appears to be drive C, while the
    uncompressed portion of the hard drive becomes drive D.  This
    can be convenient, since you will not have to re-write batch
    files or reconfigure software to run from a different drive.
    However, the DEVSWAP command poses complications for QEMM's
    installation and OPTIMIZE processes.  However, thanks to the
    DR-DOS CHAIN command, and to the fact that DR-DOS reads a
    DCONFIG.SYS file before CONFIG.SYS if the former is present,
    things can be simplified even if drive swapping is going on.
    Note that the Stacker software that comes with Novell DOS 7
    loads before CONFIG.SYS is processed, and is much easier on the
    user than the SuperStor approaches presented here.

    Method One:

    Start with QEMM386.SYS on an uncompressed drive.  Leave about
    one megabyte of space on the uncompressed drive.  No other
    Quarterdeck files but QEMM386.SYS are needed from the QEMM
    directory.

    The first line in DCONFIG.SYS, which is the first CONFIG.SYS
    file read on bootup, should be the QEMM386.SYS line.
    QEMM386.SYS is in the QEMM directory of the same drive that
    DCONFIG.SYS is on.  The entire DCONFIG.SYS will normally be

    DEVICE=C:\QEMM\QEMM386.SYS RAM DEVICE=C:\DRDOS\SSTORDRV.SYS
    DEVICE=C:\DRDOS\DEVSWAP.COM CHAIN=C:\CONFIG.SYS

    Now, move DEVICE=C:\QEMM\QEMM386.SYS to the CONFIG.SYS chained
    to from DCONFIG.SYS.

    MAKE CERTAIN THAT THE QEMM DEVICE LINE IS NO LONGER IN
    DCONFIG.SYS.

    Run OPTIMIZE.

    When you're through running OPTIMIZE, move the
    DEVICE=C:\QEMM\QEMM386.SYS line back to the DCONFIG.SYS file.

    That's all there is to it.  You don't have to get rid of
    DEVSWAP or change the drive mappings as you do in Method Two
    below.

    Method Two:

    When running OPTIMIZE, DEVSWAP.COM must be remarked out or
    removed from the CONFIG.SYS.  Also all references to drives C:
    in the AUTOEXEC.BAT and in the CONFIG.SYS after the DEVSWAP.COM
    line need to be changed to drive D:.  Conversely, all
    references to drive D: should be changed to drive C:.

    The next step is to create a QEMM sub-directory on the
    uncompressed drive.  This is typically drive D: when the
    DEVSWAP.COM device driver is loaded in your CONFIG.SYS.  The
    following files need to be in the QEMM sub-directory in order
    to run OPTIMIZE properly: DOS-UP.SYS, QEMM386.SYS,
    OPTIMIZE.COM, OPTIMIZE.EXE, LOADHI.SYS, LOADHI.COM, LOGOPT.COM,
    BUFFERS.COM (if you are using DOS 2.x or 3.x), RSTRCFG.SYS,
    MCA.ADL (if you are running on a Microchannel machine), and all
    .VXD files, if you are planning on running Windows 3.0 in
    enhanced mode.

    Once you have done this, you should reboot before running
    OPTIMIZE so that the drives are set up correctly.  Now you will
    be able to run OPTIMIZE normally.  After OPTIMIZE has run, you
    may edit your CONFIG.SYS and restore the DEVSWAP.COM line.
    After you do this, you must edit your CONFIG.SYS and
    AUTOEXEC.BAT to restore the drive specifications to what they
    were before; e.g. change all references to drive D: to drive C:
    and all references to drive C: to drive D:. As mentioned above,
    if SSTORDRV.SYS is being loaded high, you must change  it to
    load low because it won't work when loaded high. Reboot again.
    You are now getting the most out of your conventional memory.

 Q. Are there any more considerations with DR-DOS 6?

 A. Unlike MS- and PC-DOS, DOS hardware interrupt stacks are not
    provided in DR-DOS 6 -- that is, there is no STACKS command for
    CONFIG.SYS.  There are programs that may malfunction when DOS
    does not allocate STACKS.  As an example, Ventura Publisher 2.0
    will allocate its own hardware interrupt stacks when DOS does
    not do so.  When Ventura Publisher uses expanded memory, it
    puts its stacks in the EMS page frame (a violation of the EMS
    spec).  This comes into conflict with EMS-using software,
    including QEMM's Stealth feature.  The only real resolution is
    to update your version of DOS to some later version -- Novell
    DOS 7, or one of the IBM or Microsoft versions.

 Q. If I'm using DR-DOS 6, why does Manifest report that I have DOS
    version 3.31 on the DOS overview screen?

 A. DR-DOS 6's API (Application Programming Interface) returns the
    version number 3.31 when a program using a DOS Get Version
    call. This is done for compatibility reasons.  Manifest makes
    this call, and thus returns version 3.31 on the DOS Overview
    screen. DR-DOS loads an environment variable that causes the
    VER command to report DR-DOS Version 6, but Manifest reports
    the level of API support.  For all programming purposes, DR-DOS
    6 is version 3.31. There is no SETVER command, nor is it
    necessary.

 Q. Manifest reports more FILES than I have specified in
    CONFIG.SYS. Why?

 A. DR-DOS converts FCBS to FILE handles so Manifest and the
    FILES.COM program that comes with QEMM will report the total
    number of FILE handles to be the sum of the two.  The minimum
    number of FILE handles is 20 and the minimum number of FCBS is
    4. Another effect of this conflation of FCBS and FILE handles
    causes Manifest to report that there is only one FCB.


 Part 3:  QEMM's Advantages

 Q. What are the advantages of QEMM over Novell DOS's memory
    managers?

 A. There are at least ten good answers to this question.

 1) QEMM typically provides 64K more High RAM by default than the
    Novell DOS 7 memory managers, HIMEM.SYS and EMM386.EXE. The
    Novell DOS 7 products allow similarly includable areas to be
    included manually, but this requires some expertise, and QEMM
    is accompanied with better tools for this purpose.

 2) QEMM's Squeeze technology allows larger resident programs to be
    loaded by allowing them to squeeze--temporarily--into the EMS
    page frame or areas used by Adapters when loading. The Novell
    DOS 7 memory managers do not provide a similar feature.

 3) Using its Stealth option, QEMM can provide EVEN MORE High RAM
    (211K total is common) by hiding ROMs and allowing High RAM to
    be mapped over them.  Neither Novell DOS 7's memory manager,
    nor any other third-party memory manager, currently provides
    this patented technology.

 4) Novell DOS 7 has no equivalent to Quarterdeck's Manifest
    program.  Manifest, included free with QEMM, provides extensive
    information about the computer on which it is running and is an
    invaluable tool when optimizing a system or diagnosing a memory
    problem or conflict.

 5) The Novell DOS 7 memory manager provides no program to load
    automatically and optimally TSR's and device drivers into the
    regions of upper memory.  Novice users may experience
    considerable difficulty achieving good results from the Novell
    DOS 7 LOADHIGH program, but even advanced users will appreciate
    the speed and accuracy with which QEMM's OPTIMIZE sets up a
    system.

 6) The Novell DOS 7 memory manager provides no Analysis feature.
    QEMM's Analysis is extremely useful in determining areas of
    upper memory that can safely be used.  Analysis also lets QEMM
    users reclaim unused addresses in the system ROM and in other
    areas in upper memory--a great advantage to memory-hungry
    users.

 7) The Novell DOS 7 memory manager has no equivalent for QEMM's
    QuickBoot feature.

 8) The Novell DOS 7 memory manager provides no control over the
    region of High RAM that can be used to load programs high. This
    means that even expert users may be unable to use High RAM
    efficiently in situations where TSR's and drivers must be
    loaded in a specific order.  The Quarterdeck LOADHI programs
    allow TSR's or drivers to be directed to specific high memory
    locations, giving complete control to the user. Of course, as
    mentioned before, this feature is used expertly by the OPTIMIZE
    program in order to provide the optimum configuration.

 9) On PS/2s and other Micro Channel systems, QEMM can
    automatically detect the addresses used by any adapter listed
    in our MCA.ADL file. This is especially valuable on systems
    with adapter RAM (used by many network cards, among other
    adapters).  Adapter RAM can be particularly hard for 386 memory
    managers to detect.  The Novell DOS 7 memory manager has no
    such feature.  As the addresses used by network cards vary from
    machine to machine and card to card, QEMM's MCA.ADL file can
    save considerable work for network administrators in companies
    with large installations of PS/2s or micro channel compatibles
    on networks.  Users of PS/2 machines that are not on a network
    will also benefit from this "ease of use" feature.

 10) Novell DOS 7's EMM386.EXE is not compatible with Quarterdeck's
     DESQview multitasking products.  QEMM is compatible with the
     Novell DOS 7's TASKMAX program, although TASKMAX may require
     Novell's EMM386.EXE for multitasking.  Since DESQview allows
     much more sophisticated multitasking and windowing features
     than TASKMAX, Quarterdeck recommends using DESQview with QEMM.

 ******************************************************************
 *      Trademarks are property of their respective owners.       *
 *   This and other technical notes may be available in updated   *
 *     forms through Quarterdeck's standard support channels.     *
 *          Copyright (C) 1996 Quarterdeck Corporation            *
 ******************** E N D   O F   F I L E ***********************

