
UPD4 Update for 6.2 Demo System
-------------------------------

                                                 Jan 23, 2008

Update file for MUSIC/SP 6.2 Demo system:  upd4.mfarc
(packaged as distribution file upd4.zip)


Prerequisites:  Updates UPD1, UPD2, UPD3, FORTG

NOTE: After restoring the files from the .mfarc file, script file
      $000:upd4.postapply must be executed, to update the MUSIC/SP
      nucleus, Load Library, and system catalog. Execution of the
      script is automatic if you apply UPD4 by executing the .mfarc
      file (which is the recommended way to apply it): press F3 to
      exit from the Admin menu, then type upd4.mfarc in the *Go
      command area and press Enter.  Caution: Because updating the
      nucleus always has the potential to make MUSIC/SP un-IPL'able
      (unlikely, but possible), you may wish to make a backup copy
      of your MUSIC/SP volume file (normally musicx.vol) before
      applying UPD4. If all is well, you can delete the backup later.

      To allow XRegion high-memory areas (see below) to be used,
      you should increase the memory given to MUSIC/SP to at
      least 90M, in the Sim390 or Hercules configuration file.

This update contains:

- Updates to several nucleus modules and the Load Library modules
  $CTL, $FNPAK1, $OSTRAP, $XMON, CMPMON, and REXMFIO to support the
  following enhancements:
    - Larger user region size, up to 4092K. The previous limit was
      3000K. (Actually, even larger sizes are possible, up to 7M,
      provided there is no conflict with PLPA module addresses.)
      The user region size is specified by the control statement
      /SYS REGION=nnnn in a user job.  PLPA address assignments
      have been updated in the system catalog ($gen:syscat) to
      allow for larger user regions.
    - XRegion high-memory area support: Provided enough real memory
      is defined for the MUSIC/SP system, 1 or more high-memory areas
      can be defined for use by user programs. Area sizes are in
      units of 1M (1024K = 1024*1024 bytes), up to a maximum size of
      128M per area. A user job can have one area dedicated to it,
      as requested by the control statement /SYS XREGION=nM. If the
      requested size is not available, a smaller size area may be
      allocated to the job. The area is zeroed when allocated to the
      job. The area's memory is not paged or swapped by MUSIC/SP
      (but, of course, may cause paging i/o in the underlying
      Operating System such as Windows or Linux). The area is not
      visible to other MUSIC/SP jobs. The virtual address of the
      area is at location x'CF8' ($UXRGVA), currently x'02000000'
      (but that may change in future), and the length (in bytes) of
      the area is at location x'CFC' ($UXRGLN); if no area is allocated
      to the job, these locations contain 0. Note that the area is
      above the 16M line (ATL), therefore the user program must be
      in 31-bit address mode in order to use the memory.
      The ESA/390 BSM instruction can be used; see ccde:s390.bsm.m .
      See also $sub:gfinit.s, $cmp:ostrap.s.txt .
    - The XRegion areas and their usage can be listed by running the
      MAPMEM utility.
    - A new parameter has been added to the NUCGEN utility, in file
      $gen:nucgen.job, to define the XRegion areas:
            XREGN=n1,s1,n2,s2,...,0
      Each ni is the number of areas of size si (in units of 1M).
      For example (and this is what the Demo system has):
            XREGN=2,8,2,24,1,64,0
      defines 2 areas of 8M each, 2 of 24M, and 1 of 64M.
      Note that, depending on the amount of real memory defined to
      MUSIC/SP, not all these areas may actually be created.
      Run the MAPMEM utility to list the actual areas.
      In the Demo system, define 90M to MUSIC/SP to allow the first
      4 areas to be created. If you define 154M, the 64M area is
      also created. The normal value is 90M: "memory 90M" in the
      Sim390 config file, or "MAINSIZE 90" in the Hercules config.
    - Changes to the nucleus and OSTRAP (the MVS emulation module)
      to support user programs running in 31-bit mode, and to
      provide subroutines for managing (allocating and freeing) memory
      in an XRegion high-memory area during a job. This will be used
      by the GCC compiler, in a future update, to satisfy the large
      memory requirements of the compiler.
    - The maximum real region size (parameter MAXRRS=n in the
      $gen:nucgen.job file) for the Demo system has been increased
      from 1000K to 2000K. This decreases paging i/o in large jobs.
    - MVS emulation (OSTRAP module): More efficient memory management
      (GETMAIN, FREEMAIN). Improved PDS member support.

- New utilities and commands: ACTDMP, TIMEIT, PRINTBAT

- New or expanded Help topics: lked, Rexx, system

- More assembler macros (*.m) in userids $MCM and CCDE.
  Some provide more functionality (e.g. some MVS macros in ccde:mvs.*.m
  were updated to work in 31-bit address mode). Others are provided
  for system documentation purposes.

- For system documentation purposes, text files are provided which
  contain the assembler comments from some system source modules,
  including OSTRAP, CTL, CMPMON, XMON, PITRAP, and USRSVC.
  Look for files with names of the form *.s.txt. The comments
  contain useful module overviews, documentation on system features,
  and detailed change logs.


Specifications of the upd4.mfarc file:

   Date: Jan 23, 2008          # of files: 92
   Is .mfarc file executable (self-restoring)?  Yes
   Total space of unpacked files: about 2138 K
   Size of .mfarc file (on MUSIC/SP): 2038 K
   # of 80-byte records in .mfarc file: 28935
   Size of .mfarc file (on PC): 2314800 bytes = 2.21 MB
   MD5 digest of .mfarc file: F93FCC9F 261D41C8 69228255 63B7D0BA
   SHA1 digest: A0B2C311 25DA8B19 FEC6A36B A4E685C3 54708CEA
   Check sum (by CHECKSUM) of .mfarc file (on MUSIC/SP): 949667605

