****************************************************************************
*                                                                          *
*                       *-*-*   READ.ME   *-*-*                            *
*                                                                          *
****************************************************************************
*                                                                          *
*                        DOS/RMX Supplemental Software                     *
*                                                                          *
*                            05 April 1991                                 *
*                                                                          *
*   This READ.ME file describes new or modified software modules provided  *
*   in the DOS/RMX supplemental software diskette. This software is        *
*   unevaluated but developer tested.                                      *
*                                                                          *
*   These modules will be added to the product at some later date.         *
*                                                                          *
*                                                                          *
****************************************************************************

This diskette contains the following four modules: sysload, himem.job,  
rmxtsr.exe, loadrmx.exe and rinit.xms.  To install this diskette, type 

    <drive:install drive:>

where drive is the name of the floppy drive you are installing from.  For 
example, if you are installing from drive A: you would type:

    A:install A:

The following describes each module and the associated enhancements.

SYSLOAD 

    This package includes a new version of SYSLOAD that supersedes the one
    provided with DOS/RMX R1.0. The new version will be installed in the 
    /SYS386 directory (the old version will be renamed to SYSLOAD.OLD).

        The new version of SYSLOAD has the following enhancement:

            You may [optionally] specify the poolmin and poolmax value for the 
            job being loaded by SYSLOAD. 

        The new SYSLOAD syntax is as follows:

            sysload [(poolmin, poolmax)] <path-name> [additional parameters]

        where:
            poolmin - specifies the poolmin value (the minimum allowable
                      memory pool size) for the job being loaded. It is
                      a decimal number that specifies the poolmin value 
                      in Kilobytes (but you must not suffix the number 
                      with the character K).

                      Hexadecimal or octal numbers are not valid.

            poolmax - specifies the poolmax value (the maximum allowable
                      memory pool size) for the job being loaded. It is
                      a decimal number that specifies the poolmax value 
                      in Kilobytes (but you must not suffix the number 
                      with the character K).

                      Hexadecimal or octal numbers are not valid.

           <path-name> 
               and 
           [additional parameters] - are unchanged. Refer to the Operator's
                                     Guide for their description.


     Poolmin and poolmax are optional parameters, but if you specify
     poolmin, you must also specify poolmax and poolmax must be equal to or
     larger than poolmin.

     If poolmin and poolmax are not specified, then SYSLOAD uses the
     default values used for HI Jobs (the older version of SYSLOAD
     always uses these defaults).

     Additional Error Messages:
     --------------------------

     SYSLOAD may print the following error messages if you specify
     an invalid value for poolmin or poolmax:

     "Invalid PoolMin Value"
     "Invalid PoolMax Value"
     "PoolMin larger than PoolMax"

    Example invocation:
    -------------------

    1. The following invocation loads the RAM disk driver using the
       default poolmin and poolmax values:

           sysload /rmx386/drivers/ramdrv (64)

    2. The following invocation loads the XMS server using poolmin = 500K
       and poolmax = 500K:

           sysload (500, 500) /util386/himem

*******************************************************************************

HIMEM.JOB - XMS service for DOS/RMX (provides himem.sys type capability)

    The HIMEM.JOB module provides a subset of the services specified by the
    MS-DOS extended memory specification 2.0 (XMS).  These are the same 
    type of services provided by Microsoft's himem.sys.

    HIMEM.JOB gives DOS applications such as Windows 3.0 access to extended 
    memory.  The addition of HIMEM.JOB should boost the performance of 
    Windows and other applications using XMS services running under DOS/RMX.  
    The performance increase will depend on    your application.
    
    USAGE:  To install and use HIMEM.JOB, you must do two things.  
    First, the new version of rmxtsr.exe provided on this diskette must be
    invoked before loading iRMX.  Second, HIMEM.JOB must be loaded using the
    new sysload    command provided on this diskette.  

    The command syntax for HIMEM.JOB is as follows:

        sysload [(min, max)] sub_path_name/himem.job [number_of_handles]

    where:
                min - minimum memory pool in Kbytes for HIMEM.JOB.  The
                      default is 296K

                      Hexadecimal or octal numbers are not valid.
                      
                max - maximum memory pool in Kbytes for HIMEM.JOB.  This
                      must be equal to min.

                      Hexadecimal or octal numbers are not valid.
                      
                number_of_handles - number of handles managed by HIMEM.JOB.
                                    This determines the number of extended
                                    memory segments available to DOS 
                                    applications.  The default is 32.  The
                                    maximum is 128.  If the user specifies
                                    more than 128 handles, HIMEM.JOB
                                    allocates 128.

                                    Hexadecimal or octal numbers are not valid.

                errors - Highmem.job writes load and error messages to a file
                         called himem.log in the subdirectory containing 
                         HIMEM.JOB.  If SYSLOAD is unable to allocate the 
                         minimum memory pool to HIMEM.JOB, it fails and 
                         returns an E$MEM error message.  

    Example invocation:
    -------------------

    1. The following invocation allocates 1M to HIMEM.JOB with 50 handles
       with HIMEM.JOB located in /rmx386/jobs.  HIMEM.JOB will manage about
       950K of XMS memory.

        <sysload (1024, 1024) /rmx386/jobs/HIMEM.JOB 50>

    2.  The following invocation allocates 296K to HIMEM.JOB with 32 handles
        with HIMEM.JOB located in /rmx386/jobs.  HIMEM.JOB will manage about 
        256K of XMS memory.

        <sysload /rmx386/jobs/HIMEM.JOB>
    
    We recommend the user place the command to load HIMEM.JOB in 
    :CONFIG:r?init to ensure enough memory for HIMEM.JOB.  

    Limitations: The released version of DOS/RMX uses the area defined by
                 HMA so requests for HMA will be denied.  New versions of 
                 DOS/RMX will correct this problem.  Also this version of 
                 HIMEM.JOB does not provide UMB support.

    NOTE: HIMEM.JOB has internal requirements for memory.  Consequently,
          the amount of memory actually managed by HIMEM.JOB is less than
          that specified in the command line.  Moreover, the memory available 
          to other iRMX applications will be reduced by the amount of memory 
          allocated to HIMEM.JOB.

    XMS Functions Implemented by HIMEM.JOB:
    ---------------------------------------
        Function 0 - Get XMS version number
        Function 1 - Request high memory area
        Function 2 - Release high memory area
        Function 3 - Global enable A20
        Function 4 - Global disable A20
        Function 7 - Query A20 state
        Function 8 - Query free extended memory
        Function 9 - Allocate extended memory block
        Function 10 - Free extended memory block
        Function 11 - Move extended memory block
        Function 12 - Get emb handle information
        Function 15 - Reallocate extended memory block

*******************************************************************************

RMXTSR.EXE

    This package includes a new version of RMXTSR that supersedes the one
    provided with DOS/RMX R1.0. The new version will be installed in the 
    /DOSRMX directory (the old version will be renamed to RMXTSR.OLD).

    This version of RMXTSR.EXE is required if HIMEM.JOB is used.

*******************************************************************************

LOADRMX.EXE

    This package includes a new version of LOADRMX that supersedes the one
    provided with DOS/RMX R1.0. The new version will be installed in the 
    /DOSRMX directory (the old version will be renamed to LOADRMX.OLD).

    This enhanced version of LOADRMX.EXE adds a new option which allows the 
    user to specify the platform type.  The new version of LOADRMX also delays
    DOS execution until iRMX is fully initialized.  

    Finally, this version of LOADRMX will load DOS/RMX after Windows 3.0 
    executes.  (You must exit Windows before attempting to load DOS/RMX.)
    The old version failed to get extended memory after Windows executed in
    enhanced mode and thus would fail to load DOS/RMX.  The new version of 
    LOADRMX successfully loads DOS/RMX by going to himem.sys for extended 
    memory.


    The new option is 

        [-p system type]

    where:

        system type - 0 = AT
                      1 = PS2
                      2 = Reserved 

    The other options are unchanged.  Refer to the Operator's Guide for these
    options.                                

RINIT.XMS

    This is a sample entry for r?init that loads himem.job when the system
    comes up.  This file is placed in \rmx386\config subdirectory.