AGENDA 2.0 MEMORY MANAGEMENT
                                AND
                         PERFORMANCE ISSUES

INTRODUCTION

        This document presents a limited discussion on Agenda's
        memory management and how to configure your system
        for the best Agenda performance.  Please note that
        the optimal system for Agenda 2.0 is much different
        than the one for Agenda 1.0 or 1.01.

        There are three topics discusses.  The first, "Optimizing
        Your System For Agenda", discusses how Agenda uses
        memory and disk space for your databases and how to
        optimally configure your system.  The second, "The Agenda
        Overlay Manager", discusses Agenda's overlay system
        and problems to avoid with some expanded memory
        managers.  The third, "Agenda Resource Management",
        briefly discribes Agenda's use of resources.

OPTOMIZING YOUR SYSTEM FOR AGENDA

Agenda manages databases that are significantly larger than available conventional memory. To facilliate this, Agenda contains an advanced memory management system which handles data in a virtual manner.

Agenda interacts with a database by locating pieces of it in four places: the database file, a temporary file, conventional memory and expanded memory. The original database file is used for reading information that has not been modified. A temporary file is used to store modified data. Conventional and optionally expanded memory is used as working storage. Agenda does not directly make use of extended memory. However, software is available by third parties which used extended memory to: simulate expanded memory, act as a disk cache, or provide a RAM drive.

The types of memory and performance tools available directly effect Agenda's performance.

Now, we will address how to optimize your computer's setup for use with Agenda. With few exceptions, you should try setting up your computer as indicated in the outline below.

  1. If you have an 8088, or an 8086 based computer.
    1. Conventional Memory
        Provide as much conventional memory to Agenda as possible.
        For each TSR that you do not install in memory, Agenda
        will have more memory to work with and will work faster.
        Additionally, you can reduce the amount of memory required
        by DOS if you adjust the FILES, BUFFERS, FCBS, STACKS,and
        LASTDRIVE parameters of the CONFIG.SYS file.
        See outline number 4.

B. Expanded Memory

        If you have hardware based expanded memory, use it.
        Do not use expanded memory simulators.

C. Disk caches and RAM drives

Do not install a disk cache or RAM drive.

2. If you have an 80286 based computer.

  1. Conventional Memory
        Provide as much conventional memory to Agenda as possible.
        For each TSR that you do not install in memory, Agenda
        will have more memory to work with and will work faster.
        Additionally, you can reduce the amount of memory required
        by DOS if you adjust the FILES, BUFFERS, FCBS, STACKS,and
        LASTDRIVE parameters of the CONFIG.SYS file.
        See outline number 4.

B. Expanded Memory

        If you have hardware based expanded memory, use it.
        Do not use expanded memory simulators.

C. Disk caches and RAM drives

        Use as much extended memory as possible for a disk cache.
        A RAM disk does not help Agenda as much - see outline number 5.
        DO NOT use expanded memory for either a disk cache or ram-drive.

3. If you have an 80386 or 80486 computer.

  1. Conventional Memory
        Provide as much conventional memory to Agenda as possible.
        For each TSR that you do not install in memory, Agenda
        will have more memory to work with and will work faster.
        Additionally, you can reduce the amount of memory required
        by DOS if you adjust the FILES, BUFFERS, FCBS, STACKS,and
        LASTDRIVE parameters of the CONFIG.SYS file.
        See outline number 4.

        Some programs such as Quarterdeck's QEMM and Qualitas'
        386MAX allow you to move TSR's from conventional memory
        to higher memory areas.  This will give you the benefit
        of having the extra conventional memory even while
        your TSRs are installed.  If you have one of these programs,
        or something similar, use it.

B. Expanded Memory

        If you have hardware based expanded memory or an 80386 based
        expanded memory simulator, use it.  Do not use an
        8088/8086/80286 based expanded memory simulator.

C. Disk caches and RAM drives

        If you can configure your system with expanded memory
        as discussed above, do it.  You will not need a disk
        cache or a RAM disk.

        If you can not configure expanded memory as mentioned
        above, but you do have extended memory, you should
        configure your extended memory as a disk cache.

        If you can not configure your system with expanded
        memory as mentioned above and you can not setup
        a disk cache, you may want to setup RAM disk.  This
        is a last resort.  See outline number 5.

4. For all, Modifying CONFIG.SYS to use less conventional memory

        You may get better performance by changing the following
        lines in your CONFIG.SYS file.  However, you should read
        your DOS manual and understand these changes before making
        them.  Some programs may not work with these settings.

        FILES=20        - may need to be larger with some other programs
        BUFFERS=20      - a good number
        FCBS=0          - FCBS aren't necessary for most programs
        STACKS=0,0      - use only with DOS 3.3 or greater
        LASTDRIVE=?     - replace ? with your last drive letter

        This won't make all that much of a difference in most
        systems.  So, if you don't understand this, don't make
        any of these modifications.

5. For all, using a RAM DISK with Agenda

        A RAM disk is the simulation of a disk drive using RAM instead
        of a physical drive.  The advantage is that the RAM disk
        is significantly faster than a hard disk.  However, it
        consumes memory otherwise available to your applications
        and it forgets everything when you re-boot.

        Only use a RAM disk with Agenda if:
            1. you have extended memory available
            2. you can not setup expanded memory as mentioned above.
            3. you do not have a disk caching program

        If you do setup a RAM disk, follow the manufacture's instructions
        and specify that the RAM disk use extended memory.  After this
        is done, you must determine the drive letter of your RAM disk.

THE AGENDA OVERLAY MANAGER

(Expanded memory used for program -- not data)
        What is an overlay?  Overlays are pieces of Agenda code
        that are not always resident in memory.

        Why do we need overlays?  After packing all the features
        into Agenda, it is too large to fit in conventional
        memory.  Therefore, we broke it up into pieces. Having
        only the necessary parts of the program in memory at
        the same time is an effective solution to the problem.

        The Agenda overlay manager has two major operating modes.

                1. Swapping from disk
                2. Storing all overlays in Expanded Memory

        If sufficient expanded memory is available to contain all of
        Agenda's overlays (368 Kb), then it is used.  Otherwise,
        overlays are swapped into memory as needed from disk.

        Additionally, if expanded memory is used, the overlay manager
        detects the expanded memory manager's version ( 3.X or 4.X )
        and uses the most efficient functions available to access
        the overlays.  However, in some EMS 4.X expanded memory
        managers, the functions that are supposed to be faster are
        significantly slower.

        The Agenda 2.0 will chose the EMS 4.0 functions if the
        EMS is version 4.X or greater and EMS 3.2 functions otherwise.

        Usually, Agenda can set you up in the most efficient manner.
        However, to override the overlay manager's use of memory,
        there are two switches:

                /OVNONE - force disk swapping
                /OVEMS3 - force the use of EMS 3.X functions
                          even if you are running EMS 4.X.

        The soon to be released Agenda 2.0 Update will default to
        EMS 3.X over EMS 4.X functions.  Therefore, the Update
        will contain an additional switch:

                /OVEMS4 - force the use of EMS 4.X functions
                          if EMS 4.X is installed.

        If you suspect that your expanded memory manager may
        be limiting your Agenda performance, I suggest you
        try the /OVEMS3.  After you receive the update, this
        switch will become the default and will no longer
        no necessary.

AGENDA RESOURCE MANAGEMENT

        Besides having some of Agenda's code swapped in
        with overlays, Agenda also swaps in some of it's data
        as resources.  An example of a resources would be text
        messages and dialog boxes. Unlike overlays, resources
        are cached exclusively in conventional memory.

        If you have more than enough EMS for Agenda and your
        database and you see your hard disk light go on
        occasionally, it is probably a resource being loaded
        from the hard disk.  Don't worry about it.

        Relative to other Agenda disk accesses, resources are
        infreqently loaded from the hard disk.  If you
        have a disk cache, you probably won't notice these
        accesses at all.