  **  This file only covers the changes to The MainMail System since  **
  **  version 3.0.  It is intended as a SUPLIMENT not a REPLACEMENT   **
  **  to the version 3.0 sysop's manual. Refer to the sysop's manual  **
  **  for a complete guide of operations.                             **
==========================================================================
                 The MainMail System Ver 3.41 - Changes
                              03/19/94
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MM-GAP.EXE
~~~~~~~~~~
1)  This update has no actual code changes.  There was a bug in the
    buffered file I/O library I am using, which we think was causing
    corrupted packets once in a while.  This version is simply a
    recompile with the new library.



                 The MainMail System Ver 3.4 - Changes
                              03/03/94
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MM-GAP.EXE
~~~~~~~~~~
1)                  !!!!!!!! IMPORTANT !!!!!!!!
    If you use the command line parameter to pass the path to your GAP
    default directory, you will have to preface the parameter with a
    -G: starting with this version.

    Old method:

    MM-GAP I:\GAP        <points to I:\GAP as your default dir>

    New Method:

    MM-GAP -G:I:\GAP

    An easier way is to use the GAPCNF environment variable to point
    to your default directory.  Doing so will eliminate the need for
    the -G: command line parameter altogether.

    Using the GAPCNF environment, the above example would become this:

    SET GAPCNF=I:\GAP   <in your autoexec.bat>


2)  You may now specify a 'local download/upload' path on the commend
    line, to override the path specified in MMSETUP.  This may be
    handy of you use MainMail for a local network crosslink, and don't
    want to intermix your network packets with your personal packets.
    A command-line local download/upload path must be prefaced by a
    -L: switch.

    Example:

    MM-GAP -U -N:USER'S NAME -L:F:\GAPNET\UPLOAD

    This example would use 'F:\GAPNET\UPLOAD' for the QWK or REP
    directory instead of the path specified in MMSETUP.


3)  MainMail was adding a phantom forum with no name to the end of
    CONTROL.DAT, resulting in a blank forum in the user's mail reader.
    Fixed....


4)  MainMail and MMSETUP are now _FULLY_ Desqview aware.  Previous
    versions checked for DV and routed screen writes through it, but
    did not relinquish unused timer ticks to it.  This version
    relinquishes all unused clock tics back to Desqview.

    MM-GAP.EXE will display "[dv]" in the status line if Desqview is
    detected.  MMSETUP.EXE has no indication.


5)  MainMail was causing a system hang or an exception 13 when an
    uploaded message had an AT sign (@) embedded in the TO: name of
    the message, as used in Internet.  Fixed...


6)  Added some special modified MSC startup code to allow us to open
    up to 60 files at a time, instead of the normal default of 20
    files.  This will save some code we had to use in the past to
    manipulate file handles to stay under a total of 20.

    Because of this, your CONFIG.SYS __MUST__ replect a minimum of 30
    files on EACH NODE or you will someday experience a failure while
    in MainMail as a result of running out of file handles.

    MainMail no longer attempts to stay within the limit of 20 file
    handles.  Check your CONFIG.SYS _NOW_!  Set FILES= to a minimum of
    30 for a node, or if running on a servr, a minimum of 30 files for
    each node connected to the server.


MMSETUP.EXE
~~~~~~~~~~~
1)  See above regarding Desqview awareness.

2)  New command line parameter:  -NM    Disables mouse support.

    When operation under a multitasker such as Windows or Desqview,
    the mouse support built into MMSETUP takes a tremendous amount of
    processor time.  Even with Desqview awareness built in, the mouse
    support practicaly DOUBLES the number of clock tics needed to
    perform any given function.

    For this reason, the -NM (stands for NoMouse) will completely
    disable the mouse support, lending more of MMSETUP's time back to
    Desqview, and speeding up the other windows currently open.

    In-house tests showed a 92% increase in the amount of time GIVEN
    BACK to Desqview when mouse support was disabled.



==========================================================================

01/22/94
~~~~~~~~
    Fixed the brain-fart on my part that was causing the ISAM error
    202 in the single user version of MM-GAP.EXE, MMSETUP.EXE and
    MMPACK.EXE.  Kept the version number the same because it is
    essentially the same code as Ver 3.3 dated 1/21/94.


                 The MainMail System Ver 3.3 - Changes
                              01/21/94
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MM-GAP.EXE
~~~~~~~~~~
1)  There have been a couple of reports of MainMail 'homing' the
    cursor on the remote screen in version 3.2 and 3.21 just as the
    download started.  The following result was that the text AFTER
    the download completed would overwrite existing text at the top of
    the screen.

    While The Main Shop was never able to successfully duplicate this
    phenomenon, we suspect that MainMail was closing the com port too
    quickly prior to launching the external protocol, and this was
    corrupting an ANSI color code being sent to the remote.  The
    corrupted ANSI sequence was then being misinterpreted as a cursor
    positioning code. <shrug> (works for me).  Anyway, I added a 1/4
    second delay before launching any external program.  We'll see if
    that works.....

2)  New command: 'SY' [S]elect [Y]our forums.  The 'SY' command is
    identical to the 'S' command except that it only displays forums
    that the user has CURRENTLY SELECTED.  The user can then deselect
    any or all of them (except any FORCED forums), or change their
    select flags or message pointers in a normal manner.  A new
    MM-MENU is part of this release.  (See MM3GEN.ZIP)

3)  Added support for the offline configuration command "RESET" used
    by OLX Ver 3.x and other modern QWK mail readers.

    To use, send a message to MAINMAIL, in the forum you wish to
    reset, with the subject of 'RESET xxx' or 'RESET -xxx' where xxx
    is a number pertaining to the messages.  If xxx is a positive
    number, MainMail will set the last read message number to THAT
    number.  If xxx is negative (-xxx) then MainMail will set the last
    read message number to the high message number LESS that number.

4)  Fixed a minor bug which resulted in MainMail including a message
    as 'personal' if the TO: or FROM: field(s) were blank, and the
    user's handle was also blank.


MMSETUP.EXE
~~~~~~~~~~~
1)  Fixed an oversight in the user editor that was not allowing the
    sysop to enter a user's network number without using the F5 pick
    list.


==========================================================================

                 The MainMail System Ver 3.21 - Changes
                              12/31/93
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MM-GAP.EXE
~~~~~~~~~~
    I don't know how this one slipped through beta testing.  MainMail
    was falsely detecting a dropped carrier when the user used the
    'UG' (upload/goodbye) command.  MainMail would then throw away the
    uploaded REP packet, loosing the uploaded messages.  Fixed....


MMSETUP.EXE
~~~~~~~~~~~
    Version number change only.


=========================================================================

                 The MainMail System Ver 3.2 - Changes
                              12/31/93
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MM-GAP.EXE
~~~~~~~~~~
1)  MainMail now writes directly to screen memory if a VGA card is
    present.  This should speed up local screen writes tremendously.
    If the local video card is CGA or MONOCHROME or if Desqview is
    present, MainMail will continue to use INT10 to prevent CGA snow,
    and bleed through in DesqView.

2)  Fixed a bug pertaining to forced forums, and net-status users.

    When a non-net status user opens the MainMail door for the first
    time, s/he is registered into all 'forced' forums.  If, after that
    time, that user is granted net-status, those forums are no longer
    forced.  Therefore, the user can deselect those forums.

    The bug manifested itself if one of those 'forced' forums is not a
    network forum.  MainMail was not allowing the user to deselect any
    non-network forums, and was continuing to include the non-network
    forum in the download.  Fixed...


3)  MainMail now has the ability to swap to EMS or disk when shelling
    out to an external program, or during a sysop shell to dos (F5).

    With swapping enabled, MainMail will swap to either EMS or DISK.
    If MainMail swaps to DISK, then a swap file with the file name
    "MM-GAPxx.SWP" will be written to the directory in which MainMail
    was started from.  ('xx' will be replaced by the node number).
    See the next section regarding the changes to MMSETUP.EXE.

    NOTE:  If swapping is enabled, MainMail clears the local screen
           while the external program is running.  This allows
           MainMail to swap out the ENTIRE program, leaving the least
           possible 'stub' of itself in memory.


MMSETUP.EXE
~~~~~~~~~~~
1)  Fixed a minor bug in the user editor.

2)  As mentioned above (in the section on MM-GAP.EXE), MainMail can
    swap to EMS or DISK when shelling to external programs.  To enable
    this feature, two GENERAL screen toggles were added.

    Swap During Shell
    ~~~~~~~~~~~~~~~~~
    This toggle MUST be set to "Y" for ANY swapping to occur.  If this
    toggle is "N", then the next toggle has no effect.

    Use EMS For Swap If Available
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If the previous toggle is "Y", then this toggle tells MainMail
    whether or not to try EMS first when swapping.  If this toggle is
    set to "N", then MainMail will swap to disk.  If this toggle is
    set to "Y", then MainMail will try EMS first, and if
    unsuccessfull, it will swap to disk.


    !!  READ THIS  !!

Notes On Swapping
~~~~~~~~~~~~~~~~~
1)  MainMail does not use very much memory.  Even under extreme
    situations, the MainMail door only uses about 220k to 240k of
    memory when running.  Realizing that MainMail is usually running
    within a shell from GAP,  GAP leaves aproximately a 30k stub in
    memory. This brings the total memory requirments to about 270k
    maximum for both GAP and MainMail, while MainMail is running as a
    door from GAP.

    As a result, MOST systems will have plenty of memory left over for
    external programs such as PKZIP, DSZ or HSLINK without swapping.
    If your system has even as little as 500k available at DOS prior
    to starting GAP, there will most likely be enough memory to shell
    to PKZIP without swapping.

    MainMail uses the same swapping routines as GAP (Hold Everything,
    from South Mountain Software).  We know that these routines are
    VERY stable.  However, there is always some overhead associated
    with swapping, and some delays (especially if MainMail is swapping
    to disk) while MainMail writes and reads the swap file.

    Therefore, it is recommended that you _ONLY_ enable swapping in
    MainMail if _AND_ONLY_IF_ you receive an error (E22) "out of
    memory" from PKZIP.

2.  To utilize the most of swapping, MainMail disables the int21
    redirection (dos box) while swaped out.  We decided to do this so
    that we can disable ALL interrupts (including the common DOS int
    21h), and allow Hold Everything to take control of the entire
    system, and swap every part of MainMail.  The result is that the
    'stub' left in memory by MainMail will usually be less than 10k,
    (nominally about 6k) resulting in a substantial amount of memory
    available to the external program.

    For this reason, when swapping is enabled, and MainMail launches
    an external program, the screen will clear, and you will see the
    external program run in a full screen mannor.  Once the external
    program finishes, MainMail will swap back in, and restore the
    screen to it's original 'pre-swap' status.  Again, there is a
    very slight delay associated with this procedure.


=========================================================================

                 The MainMail System Ver 3.1 - Changes
                              11/10/93
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MM-GAP.EXE
~~~~~~~~~~
   Fixed a display bug in the 'RESET POINTERS' function that was
   causing the same forum name to be displayed on each line.  This bug
   was NOT causing the function to fail, only to display incorrectly.


MMSETUP.EXE
~~~~~~~~~~~
   In the editors (users/forums/networks), when going from page to
   page, the editors will no longer prompt you to save changes, but
   will save changes automaticaly.  The only time the 'SAVE CHANGES'
   box will pop is when you hit ESC and there have been changes to the
   record(s) on the current screen.

    
