This file contains chapter 3 of the Monitor Calls Reference Manual
(version 3A), JSYS'S G* to M*, in INFO format.

                             GACCT     JSYS 546

   Returns the current account for the specified job.

   ACCEPTS IN AC1:  job number, or -1 for current job

              AC2:  pointer  to   string   where   alphanumeric   account
                    designator (if any) is to be stored

   RETURNS     +1:  always, with updated pointer to account string in AC2

   The GACCT monitor call  requires  the  process  to  have  Confidential
   Information  Access,  WHEEL,  or  OPERATOR  capability  enabled if the
   specified job number is not for the current job.

   The CACCT monitor call can be used  to  change  the  account  for  the
   current job.

   Generates an illegal instruction interrupt on error conditions below.

   GACCT ERROR MNEMONICS:

   GACCX1:   invalid job number

   GACCX2:   no such job

   GACCX3:   Confidential Information Access capability required

                             GACTF     JSYS 37

   Returns the account designator to which the specified  file  is  being
   charged.

   ACCEPTS IN AC1:  JFN

              AC2:  pointer to string in  caller's  address  space  where
                    account string (if any) is to be stored

   RETURNS     +1:  failure, error code in AC1

               +2:  success,  account  string  returned,  updated  string
                    pointer in AC2

               +3:  success, 5B2+account number returned in AC2

   The SACTF monitor call can be used to set the  account  designator  to
   which the file is to be charged.

   GACTF ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX7:    JFN cannot refer to output wildcard designators

   GACTX1:   file is not on multiple-directory device

   GACTX2:   file expunged

   GACTX3:   internal format of directory is incorrect

                             GCVEC     JSYS 300

   Returns the entry vector and the UUO locations for  the  compatibility
   package.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, entry vector length  in  the  left  half  and
                    entry  vector  address  in the right half of AC2, and
                    UUO location in the left half and PC location in  the
                    right half of AC3.

   If use of the compatibility package has been disabled, AC2 contains -1
   on return.  If the compatibility package is not available, AC2 and AC3
   contain 0 on return.

   The SCVEC monitor call can be used to set the  entry  vector  for  the
   compatibility package.

   GCVEC ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             GDSKC     JSYS 214

   Returns  information  on  the  given  structure's   disk   usage   and
   availability.  This call is useful in determining storage usage.

   ACCEPTS IN AC1:  device  designator,  must  be  a  designator  for   a
                    structure.  If the designator for DSK:  is given, the
                    connected structure is assumed.

   RETURNS     +1:  always, number of pages in use in AC1, and number  of
                    pages not in use in AC2.

   GDSKC ERROR MNEMONICS:

   DEVX1:    invalid device designator

                             GDSTS     JSYS 145

   Returns the status of  a  device.   (Refer  to  Section  2.4  for  the
   descriptions  of  the status bits.) This call requires that the device
   be opened.

   ACCEPTS IN AC1:  JFN

   RETURNS     +1:  always, device-dependent  status  bits  in  AC2,  and
                    device-dependent  information  in  AC3.  For magnetic
                    tape, AC3 contains the positive count  of  number  of
                    hardware  bytes actually transferred in the left half
                    and 0 in the right half.  For the line  printer,  AC3
                    contains the last value of the page counter register,
                    or -1 if there is no page counter register.

   The GDSTS call is a no-op for devices without device-dependent  status
   bits.

   The SDSTS monitor call can be used  to  set  the  status  bits  for  a
   particular device.

   Generates an illegal instruction interrupt on error conditions below.

   GDSTS ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX5:    file is not open

                             GDVEC     JSYS 542

   Returns the entry vector for the Record Management System (RMS).

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, entry vector length in the left half and  the
                    entry vector address in the right half of AC2.

   The SDVEC monitor call can be used to set the entry vector for RMS.

   Generates an illegal instruction interrupt on error conditions below.

   GDVEC ERROR MNEMONICS:

   ILINS5:   RMS facility is not available

                              GET     JSYS 200

   Gets  a  save  file,  copying  or  mapping  it  into  the  process  as
   appropriate,  and  updates  the  process'  entry vector from the file.
   This call can be executed for  either  sharable  or  nonsharable  save
   files  that  were  created  with  the  SSAVE  or  SAVE  monitor  call,
   respectively.  The file must not be open.

   ACCEPTS IN AC1:  process handle in left half, and flag bits and a  JFN
                    in right half.

              AC2:  lowest page number in left  half,  and  highest  page
                    number  in  right  half.   This controls the parts of
                    memory that are loaded when GT%ADR is on.

   RETURNS     +1:  always

   The defined flag bits in AC1 are as follows:

      Bit    Symbol                   Meaning

      19     GT%ADR         Use the memory address limits given  in  AC2.
                            If this bit is off, all existing pages of the
                            file (according to its directory) are mapped.

      20     GT%PRL         Preload the pages being  mapped  (i.e.,  move
                            the  pages  immediately.) If this bit is off,
                            the pages are read in from the disk when they
                            are referenced.

      21     GT%NOV         Do not overlay existing pages and  do  return
                            an error.  If this bit is off, existing pages
                            will be overlaid.

      22     GT%FL2         Read additional flag bits  specified  in  AC3
                            (reserved for future development).

   The JFN is given in bits 24 through 35 of AC1.

   When the GET call is executed for a sharable save file, pages from the
   file  are  mapped into pages in the process, and the previous contents
   of the process' page are overwritten.  If the file contains  data  for
   only  a  portion  of  the  process' page, the remainder of the page is
   zeroed.  Pages of the process not used by the file are unchanged.

   When the GET call is executed for a nonsharable save file,  individual
   words  of  the  file  are written into the process.  Since these files
   usually do not have words containing all zeros, a  GET  call  executed
   for a nonsharable file never clears memory.

   The GET call never loads the accumulators.

   Can cause several  software  interrupts  or  process  terminations  on
   certain file conditions.

   Generates an illegal instruction interrupt on error conditions below.

   GET ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   GETX1:    invalid save file format

   GETX2:    system Special Pages Table full

   GETX3:    illegal to overlay existing pages

   SSAVX1:   illegal to save files on this device

   OPNX2:    file does not exist

   All file errors can occur.

                             GETAB     JSYS 10

   Returns a word from the specified system  table.   (Refer  to  Section
   2.3.2.)

   ACCEPTS IN AC1:  index into table in the left half, and  table  number
                    in the right half

   RETURNS     +1:  failure, error code in AC1

               +2:  success, 36-bit word from the specified table in AC1

   If -1 is given as the index, this call returns  the  negative  of  the
   length of the specified table.

   The table number can be obtained with the SYSGT  call.   However,  the
   recommended  procedure is to use the symbol definition from the MONSYM
   file for the table number.  (Refer to Appendix A for the system  table
   definitions.)

   The GETAB monitor call requires the process to have  GETAB  capability
   available, but not enabled (SC%GTB in the process capability word).

   GETAB ERROR MNEMONICS:

   GTABX1:   invalid table number

   GTABX2:   invalid table index

   GTABX3:   GETAB privileges required

                             GETER     JSYS 12

   Returns the most recent error condition encountered in a process.  The
   most recent error is always saved in the Process Storage Block.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, process handle in left half of AC2  and  most
                    recent error condition in right half of AC2.

   The SETER monitor call can be used to set  the  last  error  condition
   encountered in a process.

   GETER ERROR MNEMONICS:

   LSTRX1:  process has not encountered any errors

                             GETJI     JSYS 507

   Returns information for the specified job.

   ACCEPTS IN AC1:  job number, or -1  for  current  job,  or  400000+TTY
                    number

              AC2:  negative of the length of the block in which to store
                    the  information  in the left half, and the beginning
                    address of the block in the right half

              AC3:  word number (offset) of first entry desired from  job
                    information table

   RETURNS     +1:  failure, error code in AC1

               +2:  success, with updated pointer in  AC2  and  requested
                    entries stored in specified block

   When a terminal designator is given in AC1, the  information  returned
   is for the job running on that terminal.

   The system begins copying the entries from the job information  table,
   starting  with  the offset given in AC3, into the address specified in
   the right half of AC2.  The number of  entries  copied  is  minus  the

   number given in the left half of AC2 or is the number remaining in the
   table, whichever is smaller.  Because AC2 is updated on  a  successful
   return, it cannot be used for the returned data.

   The format of the job information table is as follows:

        Word      Symbol         Meaning

         0        .JIJNO    Job number
         1        .JITNO    Job's terminal number (-1 means  the  job  is
                            detached)
         2        .JIUNO    Job's user number
         3        .JIDNO    Job's connected directory number
         4        .JISNM    Subsystem name
         5        .JIPNM    Program name
         6        .JIRT     Run time
         7        .JICPJ    Controlling PTY job number (-1 means the  job
                            is not controlled by a PTY)
         10       .JIRTL    Run time limit (as set by the TIMER call)
         11       .JIBAT    Job is controlled by Batch, if -1 (as set  by
                            the MTOPR call)
         12       .JIDEN    Default for magnetic tape density (as set  by
                            the SETJB call)
         13       .JIPAR    Default for magnetic tape parity (as  set  by
                            the SETJB call)
         14       .JIDM     Default for magnetic tape data mode  (as  set
                            by the SETJB call)
         15       .JIRS     Default for magnetic tape record size (as set
                            by the SETJB call)
         16       .JIDFS    Deferred spooling in effect, if 1 (as set  by
                            the SETJB call)
         17       .JILNO    Job's logged-in directory number
         20       .JISRM    Pointer to job's session remark
         21       .JILLN    Job's last login date and time

   GETJI ERROR MNEMONICS:

   GTJIX1:   invalid index

   GTJIX2:   invalid terminal line number

   GTJIX3:   invalid job number

   GTJIX4:   no such job

                             GETNM     JSYS 177

   Returns the name of the program currently being used by the job.  This
   name  will  have  been  declared  previously  with  the SETNM or SETSN
   monitor call.

   RETURNS     +1:  always, SIXBIT name of program in AC1

                             GEVEC     JSYS 205

   Returns the entry vector of the specified process.  (Refer to  Section
   2.7.3.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, specified process' entry vector word in AC2

   The SEVEC monitor call can be used to set the process' entry vector.

   Generates an illegal instruction interrupt on error conditions below.

   GEVEC ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             GFRKH     JSYS 164

   Gets a handle on a process that currently is not known to  the  caller
   but is known to another process.  The handle returned can then be used
   by the caller to refer to the desired process.

   ACCEPTS IN AC1:  process handle of the process that  knows  about  the
                    desired  process  and  that currently has a handle on
                    it.

              AC2:  process handle used by the process in AC1 to refer to
                    the  desired process.  This handle must be a relative
                    handle (i.e., in the range 400000 to 400777) and must
                    refer to an existing process.

   RETURNS     +1:  failure, with error code in AC1.

               +2:  success, with a handle in AC1 that is usable  by  the
                    caller  to refer to the desired process.  This handle
                    is not the same as the one given  in  AC2  (i.e.,  is
                    different  from the one used by the process in AC1 to
                    refer to the desired process).

   Generates an illegal instruction interrupt on error conditions below.

   GFRKH ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   FRKHX6:   all relative process handles in use

   GFRKX1:   invalid process handle

                                 CHAPTER 3

                           TOPS-20 MONITOR CALLS
                           _______ _______ _____

                             GFRKS     JSYS 166

   Returns the process structure of the current job from a given  process
   downward.

   ACCEPTS IN AC1:  process handle of the starting point

              AC2:  B0(GF%GFH) return relative process handles  for  each
                               process

                    B1(GF%GFS) return status for each process

              AC3:  negative of the word count of the block in  which  to
                    store the structure in the left half, and the address
                    of the first word of the block in the right half

   RETURNS     +1:  failure, error code in AC1

               +2:  success, all process handles are returned

   The handle of  the  current  process  is  always  returned  as  .FHSLF
   regardless  of  the setting of GF%GFH.  Any user can specify a process
   handle of .FHTOP (i.e., start with the top level  process).   However,
   the  user  must  have  WHEEL or OPERATOR capability enabled to specify
   .FHTOP and set GF%GFH;  otherwise, the setting of GF%GFH is ignored.

                                Table format

                 **********************************************
                 *                    *                       *
   3 words       *      parallel      *      inferior         *
   per entry     *      pointer       *      pointer          *
                 *                    *                       *
                 **********************************************
                 *                    *                       *
                 *      superior      * process handle        *
                 *      pointer       * or 0 if GF%GFH        *
                 *                    * was off, or when no   *
                 *                    * more process handles  *
                 *                    * are left for the      *
                 *                    * process               *
                 *                    *                       *
                 **********************************************
                 *                                            *
   This word is  *               status word                  *
   -1 if GF%GFS  *                                            *
   is off.       *                                            *
                 **********************************************

                                    NOTE

                  Pointers in table are  memory  addresses
                  of  other table entries, or 0 if no such
                  structure.

   The execution of the GFRKS call will be terminated before  the  entire
   structure  has  been  returned if either all handles are in use or the
   block in which to store the structure is too small.  If this  happens,
   as  much of the structure as possible is returned before an error code
   is generated.

   Generates an illegal instruction interrupt on error conditions below.

   GFRKS ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   FRKHX6:   all relative process handles in use

   GFKSX1:   area too small to hold process structure

                             GFUST     JSYS 550

   Returns the name of either the author of the file or the user who last
   wrote to the file.

   ACCEPTS IN AC1:  function code in the left half, and JFN of  the  file
                    in the right half

              AC2:  pointer to the string in which to store the name

   RETURNS     +1:  always, with an updated string pointer in AC2

   The defined functions are as follows:

   Code      Symbol                   Meaning

     0       .GFAUT    Return the name of the author of the file.

     1       .GFLWR    Return the name of the user who last wrote to  the
                       file.

   The SFUST monitor call can be used to  set  the  name  of  either  the
   author of the file or the user who last wrote to the file.

   Generates an illegal instruction interrupt on error conditions below.

   GFUST ERROR MNEMONICS:

   GFUSX1:   invalid function

   GFUSX2:   insufficient system resources

   GFUSX3:   file expunged

   GFUSX4:   internal format of directory is incorrect

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX5:    file is not open

   DESX7:    JFN cannot refer to output wildcard designators

   DESX8:    file is not on disk

   DESX10:   structure is dismounted

   DELFX6:   internal format of directory is incorrect

   DIRX2:    insufficient system resources

   DIRX3:    internal format of directory is incorrect

                             GJINF     JSYS 13

   Returns information pertaining to the current job.

   RETURNS     +1:  always, with

                    AC1 containing the user number under which the job is
                    running.

                    AC2 containing the directory number to which the  job
                    is connected.

                    AC3 containing the job number.

                    AC4 containing the terminal number  attached  to  the
                    job, or -1 if no terminal is attached to job.

                             GNJFN     JSYS 17

   Assigns the JFN to the next file in a group of files  that  have  been
   specified  with  wildcard  characters.   The next file in the group is
   determined by searching  the  directory  in  the  order  described  in
   Section  2.2.3  (i.e.,  in  the  internal directory order).  The flags
   returned from the GTJFN call  are  given  to  the  GNJFN  call  as  an
   argument to indicate the fields of the file specification that contain
   wildcard characters.

   ACCEPTS IN AC1:  indexable file handle returned by GTJFN (i.e.,  flags
                    returned by GTJFN in the left half and the JFN in the
                    right half)

   RETURNS     +1:  failure, including no more files in the  group.   JFN
                    is  released if there are no more files in the group.
                    This return occurs on the first call to GNJFN  if  no
                    flags  indicating  wildcard fields are on in the left
                    half of AC1.

               +2:  success, same JFN is assigned to the next file in the
                    group.   The following flags are set (if appropriate)
                    in the left half of AC1:

                      B13   GN%STR   structure changed
                      B14   GN%DIR   directory changed
                      B15   GN%NAM   name changed
                      B16   GN%EXT   file type changed

   The GNJFN call uses the flags returned in the left half of  AC1  on  a
   GTJFN  call  to  determine  the  fields  containing  wildcards and the
   default generation  number.   Note  that  the  GNJFN  call  returns  a
   different  set  of  flags  in the left half of AC1 than the GTJFN call
   returns.  Because all calls to GNJFN should use the  flags  originally
   returned by GTJFN, programs must save the returned GTJFN flags for use
   in the GNJFN call.

   The file currently associated with the JFN must  be  closed  when  the
   GNJFN call is executed.

   GNJFN ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   GNJFX1:   no more files in this specification

   OPNX1:    file is already open

                             GPJFN     JSYS 206

   Returns the primary JFNs of the specified process.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, primary input JFN in the left  half  of  AC2,
                    and the primary output JFN in the right half of AC2.

   The SPJFN monitor call can be used to set the primary JFNs.   If  this
   call has not been given, the GPJFN call returns -1 in AC2.

   Generates an illegal instruction interrupt on error conditions below.

   GPJFN ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             GTAD     JSYS 227

   Returns the current date in the internal  system  format.   (Refer  to
   Section 2.8.2.)

   RETURNS     +1:  always, day in the left half of AC1, and fraction  of
                    day in right half of AC1

   If the system does not have the current date set, AC1 contains -1.

   The STAD monitor call can be used to set the system's date.

                             GTDAL     JSYS 305

   Returns the disk allocation for the specified directory.

   ACCEPTS IN AC1:  directory  number   (-1   indicates   the   connected
                    directory)

   RETURNS     +1:  always, with

                    AC1  containing  the  working  disk   storage   limit
                    (logged-in quota) for the directory.

                    AC2 containing the number of pages being used.

                    AC3  containing  the  permanent  disk  storage  limit
                    (logged-out quota) for the directory.

   Generates an illegal instruction interrupt on error conditions below.

   GTDAL ERROR MNEMONICS:

   DIRX1:   invalid directory number

   DELFX6:  internal format of directory is incorrect

                             GTDIR     JSYS 241

   Returns information about the given directory.

   ACCEPTS IN AC1:  directory number

              AC2:  address of argument block in caller's  address  space
                    in which to store the directory information

              AC3:  pointer to string in which to store the password

   RETURNS     +1:  always, updated string pointer in AC3

   The argument block returned to the caller is compatible with  the  one
   given  on  the  CRDIR call.  Word 0(.CDLEN) contains the length of the
   argument block in which  to  store  the  directory  information  being
   returned.   If  this word is zero, the length of the argument block is
   assumed to be 15 octal words long.  The password of the  directory  is
   placed  in  the  string  indicated  by  AC3, and word 1(.CDPSW) of the
   returned argument block points to this string.  Because the group list
   format  includes  a  count  word, the number of groups returned is one
   less than the count.  The group list is terminated by a zero word.

   If the given directory number is zero, the GTDIR monitor call  returns
   the system default settings for the following directory parameters:

        working disk storage quota (.CDLIQ)
        permanent disk storage quota (.CDLOQ)
        default file protection (.CDFPT)
        default directory protection (.CDDPT)
        default file retention count (.CDRET)
        maximum number of subdirectories allowed (.CDSDQ)

   Either one of the following  conditions  must  be  satisfied  for  the
   caller  to  obtain  all information (including the password) about the
   given directory.

        1.  The caller has WHEEL or OPERATOR capability enabled.

        2.  The caller is connected to the directory that is  immediately
            superior to the given directory.

   To obtain all  information  other  than  the  password  of  the  given
   directory,  the  caller  must  have  at  least  owner  access  to  the
   directory.  (Refer  to  Section  2.2.6  for  a  description  of  owner
   access.)

   Generates an illegal instruction interrupt on error conditions below.

   GTDIR ERROR MNEMONICS:

   GTDIX1:   WHEEL or OPERATOR capability required

   GTDIX2:   invalid directory number

                             GTFDB     JSYS 63

   Returns some or all of the file descriptor  block  for  the  specified
   file.  (Refer to Section 2.2.8 for the format of this block.)

   The GFUST monitor call must be used to obtain the name strings of  the
   author  of  the  file (.FBAUT) and of the user who last wrote the file
   (.FBLWR).  The GACTF monitor  call  is  used  to  obtain  the  account
   designator of the file (.FBACT).

   ACCEPTS IN AC1:  JFN

              AC2:  number of words to be read in the left half  and  the
                    word  number (offset) of the first entry desired from
                    the file descriptor block in the right half.

              AC3:  address in caller's address  space  for  storing  the
                    data returned

   RETURNS     +1:  always

   The program receives an error (GFDBX2) if it requests more words  than
   there are words remaining in the FDB.

   The CHFDB monitor call can be used to change most words  in  the  file
   descriptor  block for a specified file.  Section 2.2.8 lists the words
   that can be changed with CHFDB.  The SFUST monitor  call  is  used  to
   change  the  name  strings  of the author (.FBAUT) and the last writer
   (.FBLWR).  The SACTF call is used to change the account designator  of
   the file (.FBACT).

   Generates an illegal instruction interrupt on error conditions below.

   GTFDB ERROR MNEMONICS:

   GFDBX1:   invalid displacement

   GFDBX2:   invalid number of words

   GFDBX3:   list access required

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX7:    JFN cannot refer to output wildcard designators

                             GTJFN     JSYS 20
                                 SHORT FORM

   Returns a JFN for the specified file.  Accepts the  specification  for
   the  file  from  a string in memory or from a file, but not from both.
   The string can represent the complete specification for the file:

        dev:<directory>name.typ.gen;attributes

   One or more fields of the specification can be defined  by  a  logical
   name.   (Refer  to  Section 2.2.2.) If any fields are omitted from the
   specification, the system will provide the values shown below.

        device       connected structure
        directory    connected directory
        name         no default;  this field must be specified
        type         null
        generation   highest existing number if  the  file  is  an  input
                     file.   Next  higher number if the file is an output
                     file.
        protection   protection as specified in the directory, or for new
                     files, protection of the next lower generation.
        account      account  specified  when  user  logged  in,   unless
                     changed by the CACCT or SACTF call.

   The JFNS monitor call can be used to  obtain  the  file  specification
   string associated with a given JFN.

   ACCEPTS IN AC1:  flag bits in the left half,  and  default  generation
                    number in the right half

              AC2:  source designator  from  which  to  obtain  the  file
                    specification.    (Refer   to  flag  bit  GJ%FNS  for
                    specific values.)

   RETURNS     +1:  failure, error code in AC1

               +2:  success, flags in the left half of AC1, and  the  JFN
                    assigned  in  the  right  half of AC1.  (This word is
                    called an indexable file handle and is given  to  the
                    GNJFN call as an argument.) Updated string pointer in
                    AC2, if pertinent.

   All I/O errors can occur.  These errors cause software  interrupts  or
   process terminations, and only a single return (+1) is given.

   The flag bits that can be specified in AC1 are described as follows.

                              GTJFN Flag Bits
                              _____ ____ ____

     Bit     Symbol                        Meaning

      0      GJ%FOU              The file given is to be  assigned  the
                                 next  higher  generation number.  This
                                 bit indicates that a new version of  a
                                 file  is to be created and is normally
                                 set if the file is for output use.

      1      GJ%NEW              The file specification given must  not
                                 refer  to  an existing file (i.e., the
                                 file must be a new file).

      2      GJ%OLD              The  file  specification  given   must
                                 refer  to  an existing file (i.e., the
                                 file must be an old file).

      3      GJ%MSG              One of the appropriate messages is  to
                                 be     printed    after    the    file
                                 specification  is  obtained,  if   the
                                 system  is  performing  recognition on
                                 the file specification  and  the  user
                                 ends his input by typing an ESC.

                                 !NEW FILE!
                                 !NEW GENERATION!
                                 !OLD GENERATION!
                                 !OK! if GJ%CFM (bit 4) is off
                                 !CONFIRM! if GJ%CFM (bit 4) is on

      4      GJ%CFM              Confirmation from  the  user  will  be
                                 required  (if  GJ%FNS is on) to verify
                                 that the file  specification  obtained
                                 is  correct.  (See below for the valid
                                 confirmation characters.)

      5      GJ%TMP              The  file  specified  is   to   be   a
                                 temporary file.

      6      GJ%NS               Only  the  first  specification  in  a
                                 multiple logical name assignment is to
                                 be searched for the file (i.e., do not
                                 search  beyond  the  first  name  in a
                                 multiple logical name assignment).

      7      GJ%ACC              The  JFN  specified  is  not   to   be
                                 accessed by inferior processes in this
                                 job.   However,  another  process  can
                                 access   the   file   by  acquiring  a
                                 different JFN.  To  prevent  the  file
                                 from    being    accessed   by   other
                                 processes, the user's  program  should
                                 set OF%RTD(B29) in the OPENF call.

      8      GJ%DEL              Files marked  as  deleted  are  to  be
                                 considered  by  the  system when it is
                                 searching for a file to assign to  the
                                 JFN.

     9-10    GJ%JFN              These bits are off in the  short  form
                                 of the GTJFN call.

     11      GJ%IFG              The  file   specification   given   is
                                 allowed  to  have  one  or more of its
                                 fields  specified  with   a   wildcard
                                 character  (* or %).  This bit is used
                                 to process a group  of  files  and  is
                                 generally  used  for input files.  The
                                 monitor verifies  that  at  least  one
                                 value   exists  for  each  field  that
                                 contains a wildcard  and  assigns  the
                                 JFN  to  the  first file in the group.
                                 The monitor also verifies that  fields
                                 not  containing  wildcards represent a
                                 new  or  old  file  according  to  the
                                 setting  of  GJ%NEW  and  GJ%OLD.  The
                                 GNJFN call can then be used to  obtain
                                 the next file in the group.  (Refer to
                                 Section 2.2.3 for more information  on
                                 wildcard     characters     in    file
                                 specifications.)

     12      GJ%OFG              The JFN is to be associated  with  the
                                 given  file  specification string only
                                 and  not  to  the  actual  file.   The
                                 string may contain wildcard characters
                                 (* or %) in one or more of its fields.
                                 It  is checked for correct punctuation
                                 between fields, but is not checked for
                                 the  validity  of any field.  This bit
                                 allows a JFN to be associated  with  a
                                 file  specification  even  if the file
                                 specification does  not  refer  to  an
                                 actual  file.  The JFN returned cannot
                                 be used to refer  to  an  actual  file
                                 (e.g.,  cannot  be  used  in  an OPENF
                                 call) but can be used  to  obtain  the
                                 original input string (via JFNS).  The
                                 fields in this string can then be used
                                 in  a  GTJFN-long form call as program
                                 defaults.  However,  if  the  original
                                 string  contains  the  temporary  file
                                 attribute (;T), this attribute is  not
                                 "remembered"  and thus is not returned
                                 on the JFNS call even though  the  bit
                                 indicating  temporary  status (JS%TMP)
                                 is set.  All other  fields  (including
                                 the protection and account fields) can
                                 be returned by JFNS.

     12      GJ%OFG              When both B11(GJ%IFG) and  B12(GJ%OFG)
             (Cont.)             are on,  the  GTJFN  call  parses  the
                                 specification   given,  verifying  the
                                 existence  of  each  field.   When   a
                                 wildcard character appears in a field,
                                 the GTJFN call  checks  the  remaining
                                 fields  for  correct  punctuation  and
                                 returns   a   JFN   for    the    file
                                 specification  string  only.  That is,
                                 once a wildcard character is seen, the
                                 action  taken  is  identical  to  that
                                 taken when only  B12(GJ%OFG)  is  set.
                                 If  no  wildcard  character appears in
                                 the string, the action is the same  as
                                 if both bits were off.

     13      GJ%FLG              Flags are to be returned in  the  left
                                 half of AC1 on a successful return.

     14      GJ%PHY              User logical names specified  for  the
                                 current  job are to be ignored and the
                                 physical device is to be used.

     15      GJ%XTN              This bit is off in the short  form  of
                                 the GTJFN call.

     16      GJ%FNS              The  contents  of  AC2   are   to   be
                                 interpreted as follows:

                                 1.  If this bit is on, AC2 contains an
                                     input  JFN in the left half and an
                                     output JFN in the right half.  The
                                     input  JFN  is  used to obtain the
                                     file    specification    to     be
                                     associated   with  the  JFN.   The
                                     output JFN is used to indicate the
                                     destination for printing the names
                                     of any  fields  being  recognized.
                                     To omit either JFN, specify .NULIO
                                     (377777).

                                 2.  If this bit is off, AC2 contains a
                                     pointer  to  an  ASCIZ  string  in
                                     memory that specifies the file  to
                                     be associated with the JFN.

     17      GJ%SHT              This bit must be on for the short form
                                 of the GTJFN call.

     18-35                       The generation  number  of  the  file.
                                 The  following  values  are permitted;
                                 however, 0 is the normal case.

                                 0(.GJDEF)    to indicate that the next
                                              higher  generation number
                                              of the file is to be used
                                              if  GJ%FOU (bit 0) is on,
                                              or to indicate  that  the
                                              highest          existing
                                              generation number of  the
                                              file  is  to  be  used if
                                              GJ%FOU is off.

     18-35                       -1(.GJNHG)   to indicate that the next
     (Cont.)                                  higher generation  number
                                              of the file is to be used
                                              if no  generation  number
                                              is supplied.

                                 -2(.GJLEG)   to  indicate   that   the
                                              lowest           existing
                                              generation number of  the
                                              file  is to be used if no
                                              generation   number    is
                                              supplied.

                                 -3(.GJALL)   to  indicate   that   all
                                              generation numbers (*) of
                                              the file are to  be  used
                                              and that the JFN is to be
                                              assigned  to  the   first
                                              file  in the group, if no
                                              generation   number    is
                                              supplied.    (Bit  GJ%IFG
                                              must be set.)

                                 1-377777     to  indicate   that   the
                                              specified      generation
                                              number of the file is  to
                                              be  used if no generation
                                              number is supplied.

   The GTJFN monitor call always reads the  terminating  character  after
   the  file  specification  string.   (This character can be obtained by
   executing  the  BKJFN  call  followed  by  a  BIN  call.)  The   valid
   terminating characters are:

        line feed                     left parenthesis
        CTRL/L                        right parenthesis
        CTRL/Z                        plus sign
        carriage return               comma
        exclamation point             slash
        double quotation marks        equals sign
        number sign                   at sign (@)
        ampersand                     space
        single quotation mark         ESC

   All  of  these  characters  except  for  ESC  are  also   confirmation
   characters  (refer  to  bit  GJ%CFM  above)  and are called confirming
   terminators.  If a confirming terminator is typed after the string,  a
   confirmation  message  will not be typed to the user nor will the user
   be required to confirm the string obtained, regardless of the  setting
   of GJ%MSG and GJ%CFM.

   On a successful return, the following flags are returned in  the  left
   half of AC1 if flag bit GJ%IFG, GJ%OFG, or GJ%FLG was on in the call.

                   Bits Returned on Successful GTJFN Call
                   ____ ________ __ __________ _____ ____

     Bit     Symbol                        Meaning

      0      GJ%DEV              The   device   field   of   the   file
                                 specification    contained    wildcard
                                 characters.

      1      GJ%UNT              The   unit   field   of    the    file
                                 specification    contained    wildcard
                                 characters.  This bit  will  never  be
                                 set  because  wildcard  characters are
                                 not allowed in unit fields.

      2      GJ%DIR              The  directory  field  of   the   file
                                 specification    contained    wildcard
                                 characters.

      3      GJ%NAM              The  filename  field   of   the   file
                                 specification    contained    wildcard
                                 characters.

      4      GJ%EXT              The  file  type  field  of  the   file
                                 specification    contained    wildcard
                                 characters.

      5      GJ%VER              The generation  number  field  of  the
                                 file  specification contained wildcard
                                 characters.

      6      GJ%UHV              The  file   used   has   the   highest
                                 generation number because a generation
                                 number of 0 was given in the call.

      7      GJ%NHV              The file  used  has  the  next  higher
                                 generation number because a generation
                                 number of 0 or -1  was  given  in  the
                                 call.

      8      GJ%ULV              The   file   used   has   the   lowest
                                 generation number because a generation
                                 number of -2 was given in the call.

      9      GJ%PRO              The  protection  field  of  the   file
                                 specification was given.

     10      GJ%ACT              The  account   field   of   the   file
                                 specification was given.

     11      GJ%TFS              The  file  specification  is   for   a
                                 temporary file.

     12      GJ%GND              Files marked for deletion will not  be
                                 considered   when  assigning  JFNs  in
                                 subsequent calls.  This bit is set  if
                                 GJ%DEL was not set in the call.

   GTJFN ERROR MNEMONICS:

   GJFX1:    desired JFN invalid

   GJFX2:    desired JFN not available

   GJFX3:    no JFNs available

   GJFX4:    invalid character in filename

   GJFX5:    field cannot be longer than 39 characters

   GJFX6:    device field not in a valid position

   GJFX7:    directory field not in a valid position

   GJFX8:    directory terminating delimiter is not preceded by
             a valid beginning delimiter

   GJFX9:    more than one name field is not allowed

   GJFX10:   generation number is not numeric

   GJFX11:   more than one generation number field is not allowed

   GJFX12:   more than one account field is not allowed

   GJFX13:   more than one protection field is not allowed

   GJFX14:   invalid protection

   GJFX15:   invalid confirmation character

   GJFX16:   no such device

   GJFX17:   no such directory name

   GJFX18:   no such filename

   GJFX19:   no such file type

   GJFX20:   no such generation number

   GJFX21:   file was expunged

   GJFX22:   insufficient system resources (Job Storage Block full)

   GJFX23:   directory full

   GJFX24:   file not found

   GJFX27:   file already exists (new file required)

   GJFX28:   device is not on-line

   GJFX30:   account is not numeric

   GJFX31:   invalid wildcard designator

   GJFX32:   no files match this specification

   GJFX33:   filename was not specified

   GJFX34:   invalid character "?" in file specification

   GJFX35:   directory access privileges required

   GJFX36:   internal format of directory is incorrect

   GJFX37:   input deleted

   GJFX38:   file not found because output-only device was specified

   GJFX39:   logical name loop detected

   GJFX40:   undefined attribute in file specification

   GJFX41:   file name must not exceed 6 characters

   GJFX42:   file type must not exceed 3 characters

   GJFX43:   more than one ;T specification is not allowed

   GJFX44:   account string does not match

   GJFX45:   illegal to request multiple specifications for the same
             attribute

   GJFX46:   attribute value is required

   GJFX47:   attribute does not take a value

   GJFX48:   GTJFN input buffer is empty

   GJFX49:   invalid attribute for this device

|  GFX51:    byte size too small

   IOX11:    quota exceeded or disk full

   DESX9:    invalid operation for this device

                             GTJFN     JSYS 20
                                 LONG FORM

   Returns a JFN for the specified file.  Accepts the  specification  for
   the  file  from  both a string in memory and from a file.  If both are
   given as arguments, the string is used first, and  then  the  file  is
   used  if  more  fields are needed to complete the specification.  This
   form also allows the program to specify nonstandard values to be  used
   for omitted fields and to request the assignment of a specific JFN.

   ACCEPTS IN AC1:  0 in the left half, and address of the  beginning  of
                    the  argument  table in the caller's address space in
                    the right half

              AC2:  pointer to ASCIZ file  specification  string  in  the
                    caller's address space, or 0 if none

   RETURNS     +1:  failure, error code in AC1

               +2:  success, flags in the left half of AC1, and  the  JFN
                    assigned  in  the  right  half of AC1.  (This word is
                    called an indexable file handle and is given  to  the
                    GNJFN call as an argument.) Updated string pointer in
                    AC2, if pertinent.

   All I/O errors can occur.  These errors cause software  interrupts  or
   process terminations, and only a single return (+1) is given.

   The format of the argument table specified by the right half of AC1 is
   described  below.  Words 0 through 10 (.GJGEN-.GJJFN) must be supplied
   in the long form of the GTJFN call.  The remaining words are optional,
   and if they are supplied, B15(GJ%XTN) of word .GJGEN must be on.

   Word      Symbol                   Meaning

     0       .GJGEN    Flag bits in the left half and  generation  number
                       in the right half.  (See below.)

     1       .GJSRC    Input JFN in the left half and output JFN  in  the
                       right  half.   To  omit either JFN, specify .NULIO
                       (377777).

     2       .GJDEV    Pointer to ASCIZ string that specifies the default
                       device  to  be  used  when none is given.  If this
                       word is 0, the user's connected structure will  be
                       used.

     3       .GJDIR    Pointer to ASCIZ string that specifies the default
                       directory  to be used when none is given.  If this
                       word is 0, the user's connected directory will  be
                       used.

     4       .GJNAM    Pointer to ASCIZ string that specifies the default
                       filename  to  be used when none is given.  If this
                       word is 0, either the string or the input JFN must
                       supply the filename.

     5       .GJEXT    Pointer to ASCIZ string that specifies the default
                       file  type to be used when none is given.  If this
                       word is 0, the null file type will be used.

     6       .GJPRO    Pointer to ASCIZ string that specifies the default
                       protection to be used when none is given.  If this
                       word is 0, the default protection as specified  in
                       the  directory or the protection of the next lower
                       generation will be used.

     7       .GJACT    Pointer to ASCIZ string that specifies the default
                       account  to  be  used when none is given.  If this
                       word  is  0,  the  user's  LOGIN  account  (unless
                       changed) will be used.

     10      .GJJFN    The JFN to associate with the  file  specification
                       if  flag  GJ%JFN  is set in word 0 (.GJGEN) of the
                       argument block.

     11      .GJF2     Extended argument block if B15(GJ%XTN)  is  on  in
                       the  left  half  of  .GJGEN.  This word contains a
                       second group of flags in the  left  half  and  the
                       count  of  the number of words following this word
                       in the argument block  in  the  right  half.   The
                       flags  in the left half specify additional control
                       over the GTJFN process.  The following  flags  are
                       defined:

                       B0(G1%RND) Return to the caller  if  the  filename
                                  buffer  becomes  empty,  and  the  user
                                  attempts to delete a  character.   This
                                  can  occur if the user, when giving the
                                  filename, types a  CTRL/U  or  types  a
                                  DELETE  or CTRL/W and there are no more
                                  characters in the buffer.

                       B2(G1%NLN) Filenames  cannot  be  longer  than   6
                                  characters  and  file  types  cannot be
                                  longer than 3 characters.  In addition,
                                  the    generation   number,   temporary
                                  status, protection, and account  fields
                                  cannot  be  specified  in the string or
                                  the input data.

                       B3(G1%RCM) Return the confirmation message to  the
                                  caller by placing it in the destination
                                  buffer.

                       B4(G1%RIE) Return  to  the  caller  if  the  input
                                  buffer  becomes  empty,  and  the  user
                                  attempts to delete a character.

     12      .GJCPP    Pointer to string where  GTJFN  is  to  store  the
                       exact  copy  of the user's typescript (destination
                       string pointer).  This string will contain logical
                       names,  if  they  were typed by the user, and will
                       not contain the default fields  unless  they  were
                       generated through recognition.  This string allows
                       the caller to obtain a true  copy  of  the  user's
                       typescript.

     13      .GJCPC    Number  of  bytes  available  in  the  destination
                       string  pointed  to  by  .GTCPP  (word  12).  If a
                       pointer has been specified but this word is 0, the
                       monitor assumes the string contains 130 bytes.

     14      .GJRTY    Pointer to the buffer for text to be  output  when
                       the  user  types  a  CTRL/R  (i.e., pointer to the
                       CTRL/R buffer).  This pointer cannot be  equal  to
                       the  pointer  given  in  AC2.  (Refer to the TEXTI
                       call for the definition of the CTRL/R buffer.)

     15      .GJBFP    Pointer  to  the  beginning  of  the   destination
                       buffer.

     16      .GJATR    Pointer to the file specification attribute block.
                       This word is reserved for future use.

   The flag bits accepted in the left half of  .GJGEN  (word  0)  of  the
   argument  block  are basically the same as those accepted in the short
   form of the GTJFN call.  The entire  set  of  bits  is  listed  below.
   (Refer  to  GTJFN - SHORT FORM for more detailed explanations of these
   bits.) The flags that are different  in  the  two  forms  are  GJ%JFN,
   GJ%XTN, GJ%FNS, and GJ%SHT.

      Bit    Symbol                   Meaning

       0     GJ%FOU    Create a new version of the file.

       1     GJ%NEW    The file must not exist.

       2     GJ%OLD    The file must exist.

       3     GJ%MSG    Type  a  message  if  the  user  presses  ESC   to
                       terminate input.

       4     GJ%CFM    Confirmation from the user is required.

       5     GJ%TMP    The file is temporary.

       6     GJ%NS     Search only the first specification in a  multiple
                       logical name definition.

       7     GJ%ACC    The JFN cannot be accessed by inferior processes.

       8     GJ%DEL    Ignore the file deleted bit in the FDB.

      9-10   GJ%JFN    Associate the JFN supplied in .GJJFN (word 10)  of
                       the  argument  block  with the file specification.
                       The value of this field is interpreted as follows:

                       Value               Meaning

                       0(.GJDNU) Ignore the JFN supplied.
                       2(.GJERR) Attempt to assign the JFN  supplied  and
                                 return an error if it is not available.
                       3(.GJALT) Attempt to assign the JFN supplied  and,
                                 if   it  is  not  available,  assign  an
                                 alternate.

      11     GJ%IFG    The  file  specification  can   contain   wildcard
                       characters.

      12     GJ%OFG    Associate the  JFN  with  the  file  specification
                       string and not the file itself.

      13     GJ%FLG    Return flags in AC1 on  successful  completion  of
                       the call.

      14     GJ%PHY    The physical device is to be used.

      15     GJ%XTN    The argument block contains more than  10  (octal)
                       words.

      16     GJ%FNS    This bit is ignored for the long form of the GTJFN
                       call.

      17     GJ%SHT    This bit must be off for  the  long  form  of  the
                       GTJFN call.

   The generation number given in the right half of .GJGEN  (word  0)  of
   the argument block can be one of the following:

      0(.GJDEF)  to indicate that the next higher generation number is to
                 be used if GJ%FOU is on, or to indicate that the highest
                 existing generation number is to be used  if  GJ%FOU  is
                 off.

      -1(.GJNHG) to indicate that the next higher generation number is to
                 be used if no generation number is supplied.

      -2(.GJLEG) to indicate that the lowest existing  generation  number
                 is to be used if no generation number is supplied.

      -3(.GJALL) to indicate that all generation numbers are to  be  used
                 and  that the JFN is to be assigned to the first file in
                 the group, if no generation number  is  supplied.   (Bit
                 GJ%IFG must be on.)

      1-377777   to indicate that the specified number is to be  used  as
                 the generation if no generation number is supplied.

   On a successful return, flags are returned in the left half of AC1  if
   flag  bit  GJ%IFG,  GJ%OFG,  or  GJ%FLG was on in the call.  The flags
   returned are the same as those returned in  the  short  form  call  of
   GTJFN.

   Refer to the short form of the  GTJFN  call  for  the  possible  error
   mnemonics.

                             GTRPI     JSYS 172

   Returns the paging trap information for the specified process.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, with
                    AC1 containing  number  of  pager  traps  (i.e.,  the
                        number of times a trap has occurred to the pager)
                        for designated  process  since  the  process  was
                        started
                    AC2 containing  number  of  page  faults  (i.e.,  the
                        number  of  times  a  trap has resulted in a page
                        being swapped in) for  designated  process  since
                        the process was started
                    AC3 containing time spent (in milliseconds)  in  page
                        routines  by designated process since the process
                        was started

   The number of pager traps will be greater than or equal to the  number
   of page faults.

   Generates an illegal instruction interrupt on error conditions below.

   GTRPI ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             GTRPW     JSYS 171

   Returns the trap  words.   This  monitor  call  allows  a  program  to
   retrieve information about a previous read, write, or execute trap.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, trap status word from  last  memory  trap  in
                    AC1, and last monitor call that had an error in AC2.

   The following bits are defined in the status word:

      B0(PF%USR)  page failure-user mode reference
      B5(PF%WRT)  page failure-write reference
      B14(TSW%RD) trap status-read (always on)
      B15(TSW%WT) trap status-write (same setting as B5)
      B16(TSW%EX) trap status-execute (always on)
      B17(TSW%MN) trap status-monitor mode reference (complement of B0)
      B18-B35     address of reference that caused the trap

   This information allows a program to determine the exact  cause  of  a
   memory trap and/or the effective virtual address that caused the trap.
   This information is sufficient to enable the program to  continue,  if
   desired, when the cause of the trap has been removed.

   The contents of AC1 is 0 if there have been no memory traps.

   Generates an illegal instruction interrupt on error conditions below.

   GTRPW ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             GTSTS     JSYS 24

   Returns the status of a file associated with a JFN.

   ACCEPTS IN AC1:  JFN in the right half

   RETURNS     +1:  always, status in AC2.  If JFN is illegal in any way,
                    B10 of AC2 will be 0.

                              JFN STATUS WORD
                              ___ ______ ____

      B0(GS%OPN)  file is open
      B1(GS%RDF)  if file is open (i.e., bit 0 is on),  it  is  open  for
                  read access
      B2(GS%WRF)  if file is open, it is open for write access
      B3(GS%XCF)  if file is open, it is open for execute access
      B4(GS%RND)  if file is open, it is open for non-append access
      B7(GS%LNG)  file is longer than 512 pages
      B8(GS%EOF)  last read was past end of file
      B9(GS%ERR)  file may be in error (i.e.,  a  device  or  data  error
                  occurred)
      B10(GS%NAM) file specification is associated with this JFN
      B11(GS%AST) one or more fields of the  file  specification  contain
                  wildcard characters
      B12(GS%ASG) JFN is currently being assigned
      B13(GS%HLT) I/O errors are considered terminating conditions
      B17(GS%FRK) if file is open, it is open for restricted access
      B32-B35     data mode of the file.  Refer to the OPENF monitor
      (GS%MOD)    call description.

                       .GSNRM  normal data mode
                       .GSIMG  image (binary) mode
                       .GSDMP  dump data mode

   If B0(GS%OPN) is not set on return, the file is not  opened,  and  the
   settings of bits 1 through 4 are indeterminate.

   The STSTS call can be used to set the status of a particular file.

                             GTTYP     JSYS 303

   Returns the terminal type number  for  the  specified  terminal  line.
   (Refer to Section 2.4.3.4 for the terminal type numbers.)

   ACCEPTS IN AC1:  file designator (only terminal designators are legal)

   RETURNS     +1:  always,  terminal  type  number  in  AC2  and  buffer
                    allocation   numbers   (#  of  input  buffers  to  be
                    allocated in left half, and # of output buffers to be
                    allocated in right half) in AC3.  AC1 is unchanged.

   The STTYP monitor call can be used to set the terminal type number for
   a specified line.

   Generates an illegal instruction interrupt on error conditions below.

   GTTYP ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   TTYX01:   line is not active

                             HALTF     JSYS 170

   Halts the current process and any inferior processes  of  the  current
   process.   Sets the process' PC to the next instruction after the call
   and saves it in the Process Storage Block (PSB) in case the process is
   continued.   The  user can continue the process by typing the CONTINUE
   command, which causes the process to start at the next instruction.

   Sets bits  1-17(RF%STS)  in  the  status  word  for  this  process  to
   2(.RFVPT).   Refer  to  the  RFSTS  monitor call for the format of the
   status word.

   If the top level process executes a HALTF call and does not have WHEEL
   or OPERATOR capability enabled, the job is logged out.

                             HFORK     JSYS 162

   Halts one or more inferior processes.  (Refer  to  the  HALTF  monitor
   call description to halt the current process.)

   ACCEPTS IN AC1:  process handle (inferior processes only)

   RETURNS     +1:  always

   Sets bits 1-17(RF%STS) in the status word(s) for addressed  process(s)
   to  2(.RFVPT).   Refer to the RFSTS monitor call for the format of the
   status word.

   Generates an illegal instruction interrupt on error conditions below.

   HFORK ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   HFRHX1:   illegal to halt self with HFORK

                             HPTIM     JSYS 501

   Returns the  value  of  one  of  the  high  precision  system  clocks.
   Although  the main time base from interrupts generated by the internal
   system clock is in units of 1 millisecond, the clock provides  a  time
   base  in  units  of  10 microseconds.  The HPTIM monitor call provides
   access to the variables kept in these high precision units.

   ACCEPTS IN AC1:  number of the clock to read (see below)

   RETURNS     +1:  failure, error code in AC1

               +2:  success,  with  AC1  containing  the  value  of   the
                    specified clock

   The numbers for currently-defined clocks are:

        0    .HPELP    Elapsed time since system startup.  (Refer to  the
                       TIME call for obtaining the time in milliseconds.)

        1    .HPRNT    CPU runtime for this process.  (Refer to the RUNTM
                       call for obtaining the time in milliseconds.)

   HPTIM ERROR MNEMONICS:

   HPTX1:    undefined clock number

                             HSYS     JSYS 307

   Initiates an orderly shutdown of  the  timesharing  operation  of  the
   system.   This  call causes periodic notices of the impending shutdown
   to be issued to all terminals.  It also causes any jobs  still  logged
   in at the designated shutdown to be logged out.

   ACCEPTS IN AC1:  shutdown time with the date and time in the  internal
                    format.  (Refer to Section 2.8.2.)

              AC2:  date  and  time  in  internal  format   when   system
                    operation  will  resume  (or 0 if unknown).  Used for
                    advisory messages only.

   RETURNS     +1:  failure, error code in AC1

               +2:  success, shutdown procedure initiated

   The shutdown notice is issued immediately  to  all  terminals  if  the
   shutdown time is within two hours.  The notice is also sent two hours,
   one hour, 30 minutes, 10 minutes, 5 minutes, and one minute before the
   shutdown.

   The HSYS monitor  call  requires  the  process  to  have  MAINTENANCE,
   OPERATOR,  or  WHEEL  capability enabled.  The time when the system is
   expected to be placed back into operation is not used directly by  the
   monitor.   It  is  entered into a GTTAB table where it may be examined
   with the GETAB monitor call.

   HSYS ERROR MNEMONICS:

   CAPX2:    WHEEL, OPERATOR, or MAINTENANCE capability required

   TIMEX1:   time cannot be greater than 24 hours

   TIMEX2:   downtime cannot be more than 7 days in the future

                             IDCNV     JSYS 223

   Converts separate numbers for the local year,  month,  day,  and  time
   into  the  internal date and time format.  (Refer to Section 2.8.2 for
   more information on the internal format.)

   ACCEPTS IN AC2:  year  in  the  left   half,   and   numerical   month
                    (0=January) in the right half

              AC3:  day of the month (0=first day) in the left half,  and
                    0 in the right half

              AC4:  B0(IC%DSA) apply daylight savings  according  to  the
                               setting  of  B1(IC%ADS).   If  B0  is off,
                               daylight  savings  is  applied   only   if
                               appropriate for the date.

                    B1(IC%ADS) apply daylight savings  if  B0(IC%DSA)  is
                               on.

                    B2(IC%UTZ) use time zone in B12-B17.  If this bit  is
                               off, the local time zone is used.

                    B3(IC%JUD) interpret the number in the right half  of
                               AC2  as  being in Julian day format (Jan 1
                               is day 1).

                    B12-B17    time zone  to  use  if  B2(IC%UTZ)  is on.
                    (IC%TMZ)   (Refer  to  Section  2.8.2  for  the  time
                               zones.)

                    B18-B35    local time in seconds since midnight.
                    (IC%TIM)

   RETURNS     +1:  failure, error code in AC1

               +2:  success, AC2 contains the internal date and time, and
                    AC3 contains

                    B0 and B2   on for compatibility with the ODCNV call

                    B1(IC%ADS)  on if daylight savings was applied

                    B12-B17     time zone used
                    (IC%TMZ)

   IDCNV ERROR MNEMONICS:

   DATEX1:   year out of range

   DATEX2:   month is not less than 12

   DATEX3:   day of month too large

   DATEX5:   date out of range

   TIMEX1:   time cannot be greater than 24 hours

   ZONEX1:   time zone out of range

                             IDTIM     JSYS 221

   Inputs the date and time and converts them to the  internal  date  and
   time  format.   (Refer  to Section 2.8.2.) The IDTIM monitor call does
   not permit either the date or the time to be  entered  separately  and
   does  not  perform conversions for time zones other than the local one
   (unless the time zone is specified in the input string).  Refer to the
   IDTNC and IDCNV monitor calls descriptions for these functions.

   ACCEPTS IN AC1:  source designator

              AC2:  format option flags (see below), 0 is the normal case

   RETURNS     +1:  failure, error code in AC2, updated string pointer in
                    AC1, if pertinent

               +2:  success, updated string  pointer,  if  pertinent,  in
                    AC1, and the internal format date and time in AC2

   The format option flags in AC2 specify the interpretation to  be  used
   when a date or time specification is ambiguous.

                             IDTIM Option Flags
                             _____ ______ _____

      B1(IT%NNM)  do not allow the month to be numeric and ignore B2-B3.

      B2(IT%SNM)  interpret the second number in the date  as  the  month
                  (e.g.,  6/2/76  is  interpreted  as Feb.  6, 1976).  If
                  this bit is off, the first number is interpreted as the
                  month (e.g., 2/6/76 is interpreted as Feb.  6, 1976).

      B3(IT%ERR)  return an error if the order of the day and month  does
                  not  agree  with  the setting of B2(IT%SNM) even though
                  the date can be successfully interpreted.  If this  bit
                  is off, a date which can be interpreted by assuming the
                  day and month are  in  the  opposite  order  than  that
                  specified   by   the  setting  of  B2(IT%SNM)  will  be
                  considered valid.   For  example,  if  B2-B3  are  off,
                  30/5/76 will be considered as a valid date.

      B7(IT%NIS)  seconds cannot be included in a time specification.

      B8(IT%AIS)  seconds must be included in a  time  specification  and
                  must be preceded by a colon.

                  If B7-B8 are both off, seconds are optional in  a  time
                  specification.   If specified, seconds must be preceded
                  by a colon.

      B9(IT%NAC)  colon cannot be used to separate hours and minutes.

      B10(IT%AAC) colon must be used to separate hours and minutes.

                  If B9-B10 are both off, a  colon  is  optional  between
                  hours and minutes.

      B11(IT%AMS) when  B7-B10  are  off,   always   interpret   a   time
                  specification containing one colon as hhmm:ss.

      B12(IT%AHM) when  B7-B10  are  off,   always   interpret   a   time
                  specification  containing one colon as hh:mm and return
                  an error if the first field is too large.  This differs
                  from  B7(IT%NIS)  in  that  seconds  can be included if
                  preceded by a second colon.

                  If B7-B12 are all off, a time specification  containing
                  one colon is interpreted as hh:mm if the first field is
                  small enough.  Otherwise it is interpreted as hhmm:ss.

      B14(IT%N24) do not allow the time to be specified in 24-hour format
                  (e.g.,  1520  for 3:20 in the afternoon) and make AM or
                  PM specification mandatory.

      B15(IT%NTM) do  not  allow  the  time  specification   to   include
                  AM,PM,NOON, or MIDNIGHT.

      B16(IT%NTZ) do not allow a time zone to be specified.

   If AC2 is 0, the IDTIM call  accepts  any  reasonable  date  and  time
   formats.  The following are examples of valid dates:

        6-FEB-76
        FEB-6-76
        FEB 6 76
        FEB 6, 1976
        6 FEB 76
        6/2/1976
        2/6/76

   Below are examples of valid times:

        1:12:13
        1234
        16:30             (4:30PM)
        1630
        1234:56
        1:56AM
        1:56-EST
        1200NOON
        12:00:00AM        (midnight)
        11:59:59AM-EST    (late morning)
        12:00:01AM        (early morning)

   "AM" or "PM" can follow a time specification that is not greater  than
   12:59:59.   "NOON"  or  "MIDNIGHT"  can  follow  12:00:00.   Any  time
   specification can be followed by a dash and a  time  zone.   The  time
   zones  are:  EST and EDT (Eastern), CST and CDT (Central), MST and MDT
   (Mountain), PST and PDT (Pacific), AST and ADT (Atlantic), YST and YDT
   (Yukon), HST and HDT (Hawaii), BST and BDT (Bering), GMT, GST, and GDT
   (Greenwich), DAYLIGHT (local daylight savings), STD or STANDARD (local
   standard).

   All strings (e.g., months, time  zones,  AM-PM-NOON-MIDNIGHT)  can  be
   represented  by  any  non-ambiguous  abbreviation  (e.g.,  D=DECEMBER,
   M=MIDNIGHT).

   Spaces are ignored before and between  fields  whenever  they  do  not
   terminate  the input string.  This means spaces are not allowed before
   colons, AM,PM,NOON, and MIDNIGHT, the dash before the  time  zone,  or
   the time zone.  A tab is also allowed between the date and time.

   The input string can be terminated by any non-alphanumeric character.

   IDTIM ERROR MNEMONICS:

   DILFX1:   invalid date format

   TILFX1:   invalid time format

   DATEX1:   year out of range

   DATEX3:   day of month too large

   DATEX5:   date out of range

   All I/O  errors  are  also  possible.   These  errors  cause  software
   interrupts or process terminations as described under the BIN call.

                             IDTNC     JSYS 231

   Inputs the date and/or the time and converts it into separate  numbers
   for  the  local  year, month, day, or time.  The IDTNC call allows the
   date or time to be entered separately, which is not possible with  the
   IDTIM JSYS because neither one can be converted to the internal format
   without converting the other.  (Refer to Section 2.8.2.)

   ACCEPTS IN AC1:  source designator

              AC2:  format option flags
                    In addition to the flags described in the IDTIM call,
                    the flags below can also be specified:

                    B0(IT%NDA) do not input the date  and  ignore  B1-B3.
                               If IT%NDA is off, the date must be input.

                    B6(IT%NTI) do not input the time and  ignore  B7-B16.
                               If IT%NTI is off, the time must be input.

   RETURNS     +1:  failure, error code in AC2, updated  string  pointer,
                    if pertinent, in AC1

               +2:  success, updated string pointer, if pertinent, in AC1

                    If the date was input,
                    AC2 contains the year in the left half, and the month
                        (0=January) in the right half.
                    AC3 contains the day of the month  (0=first  day)  in
                        the left half, and the day of the week (0=Monday)
                        in the right half.

                    If the time was input,
                    AC4 contains
                        B0(IC%DAS)  on if a  time  zone  was  input  (for
                                    compatibility with the ODCNV call).
                        B1(IC%ADS)  on if a daylight  savings  time  zone
                                    was input.
                        B2(IC%UTZ)  on if a time zone was input.
                        B3(IC%JUD)  on if a number in Julian  day  format
                                    was input.
                        B12-B17     the  time  zone if one  was input, or
                        (IC%TMZ)    the  local  time  zone  if  none  was
                                    input.   (Refer  to Section 2.8.2 for
                                    the time zones.)
                        B18-B35     time as seconds since midnight.
                        (IC%TIM)

   IDTNC ERROR MNEMONICS:

   DILFX1:   invalid date format

   TILFX1:   invalid time format

   All I/O  errors  are  also  possible.   These  errors  cause  software
   interrupts  or  process  terminations  as described under the BIN call
   description.

   The IDTNC call does not detect certain errors in date input,  such  as
   day  31  of  a  30-day  month.  These errors are detected by the IDCNV
   call.

                              IIC     JSYS 132

   Initiates software interrupts on the specified channels in a  process.
   (Refer to Section 2.5.)

   ACCEPTS IN AC1:  process handle

              AC2:  36-bit word
                    Bit n on  means  initiate  a  software  interrupt  on
                    channel n.

   RETURNS     +1:  always

   Generates an illegal instruction interrupt on error conditions below.

   IIC ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             INLNM     JSYS 503

   Returns a logical name that is defined either for this job or for  the
   system.  (Refer to Section 2.2.2 and CRLNM and LNMST monitor calls.)

   ACCEPTS IN AC1:  function code in the left half, and  index  into  the
                    table of defined logical names in the right half

              AC2:  pointer to the string for storing the logical name

   RETURNS     +1:  failure, error code in AC1

               +2:  success, updated string pointer in AC2

   The available functions are:

        Code      Symbol         Meaning

          0       .INLJB    List the logical names defined for this job

          1       .INLSY    List the logical names defined for the system

   INLNM ERROR MNEMONICS:

   INLNX1:   index is beyond end of logical name table

   INLNX2:   invalid function

                              JFNS     JSYS 30

   Returns the file specification currently associated with the JFN.

   ACCEPTS IN AC1:  destination designator where the ASCIZ string  is  to
                    be written

              AC2:  indexable file handle (refer to GTJFN), or pointer to
                    string

              AC3:  format control bits to be  used  when  returning  the
                    string, or 0

              AC4:  pointer  to  string   containing   prefix   of   file
                    specification attribute

   RETURNS     +1:  always, updated string pointer, if pertinent, in AC1

   AC2 can have one of two formats, depending on B26(JS%PTR) in AC3.  The
   first  format  is  a word with either 0 or the flag bits returned from
   GTJFN in the left half and the JFN in the right half.  When  the  left
   half  is  0, the string returned is the exact specification associated
   with the JFN.  If the  given  JFN  is  associated  only  with  a  file
   specification  (i.e., it was obtained with B12(GJ%OFG) on in the GTJFN
   call), the string returned contains null fields for nonexistent fields
   or fields containing wildcards, and actual values for existent fields.
   When the left half is nonzero, the string returned  contains  wildcard
   characters  for  appropriate  fields  and 0, -1, or -2 as a generation
   number if the corresponding bit is on in the call.

   The second format (allowed only if B26(JS%PTR) of  AC3  is  on)  is  a
   pointer  to  the string to be returned.  This string is one field of a
   file specification.  The field is  determined  by  the  first  nonzero
   3-bit  field in AC3 or by the setting of B27(JS%ATR) or B28(JS%AT1) in
   AC3.  For example, if bits 6-8 (JS%NAM) of AC3 are nonzero,  then  the
   string  is interpreted as a filename field.  If B27(JS%ATR) is on, the
   string  is  interpreted  as  a  file  specification   attribute.    If
   B28(JS%AT1) is on, the string is concatenated to the string pointed to
   by AC4, and a colon is inserted  between  the  two  strings.   In  all
   cases,  the  string  is  output to the destination designator, and the
   appropriate punctuation is added.

   AC3 contains control bits for formatting the  string  being  returned.
   B0-B20 are divided into 3-bit bytes, each byte representing a field in
   the file specification.  The value of the byte  indicates  the  output
   for that field.  The values are:

        0    (.JSNOF)  do not output this field
        1    (.JSAOF)  always output this field
        2    (.JSSSD)  suppress this field if it is the system default

   The bits that can be set in AC3 are as follows:

        B0-B2(JS%DEV)   output for device field
        B3-B5(JS%DIR)   output for directory field
        B6-B8(JS%NAM)   output for filename field (2 is illegal)
        B9-B11(JS%TYP)  output for file type field (2 is illegal)
        B12-B14(JS%GEN) output for generation number field
        B15-B17(JS%PRO) output for protection field
        B18-B20(JS%ACT) output for account field
        B21(JS%TMP)     return ;T if appropriate
        B22(JS%SIZ)     return size of file in pages
        B23(JS%CDR)     return creation date
        B24(JS%LWR)     return date of last write
        B25(JS%LRD)     return date of last read
        B26(JS%PTR)     AC2 contains pointer to the string being returned
        B27(JS%ATR)     return   file   specification    attributes    if
                        appropriate
        B28(JS%AT1)     return the specific specification attribute whose
                        prefix  is  indicated by the string pointed to in
                        AC4.   This  bit  is  used  when  a  program   is
                        processing  attributes  one at a time.  If JS%ATR
                        is also set, all attributes will be returned.
        B32(JS%PSD)     punctuate the size and date fields
        B33(JS%TBR)     tab before all fields returned, except for  first
                        field
        B34(JS%TBP)     tab before all fields that may be returned (i.e.,
                        fields  whose  value  is given as 1 or 2), except
                        for first field
        B35(JS%PAF)     punctuate all fields from device through ;T

   If B32-B35 are 0, punctuation between fields is not used.

   If AC3 is 0, the string is output in the format

        dev:<directory>name.typ.gen;T

   with  fields  the  same  as  system  defaults  not  returned  and  the
   protection (;P) and account (;A) attributes returned if B9(GJ%PRO) and
   B10(GJ%ACT) in AC2 are  on.   The  temporary  attribute  (;T)  is  not
   returned  if the JFN is not associated with a file (refer to GJ%OFG in
   the GTJFN description) or the file is not temporary.

   The punctuation used on each field is shown below.   (The  punctuation
   is underscored.)

        dev:<directory>name.typ.gen;attribute
        ,size,creation date,write date,read date

   The GTJFN or GNJFN monitor call is used to  associate  a  JFN  with  a
   given file specification string.

   Generates an illegal instruction interrupt on error conditions below.

   JFNS ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   IOX11:    quota exceeded or disk full

                             KFORK     JSYS 153

   Kills one or more processes.  When a process is  killed,  all  private
   memory  acquired  by  the  process  and  its Process Storage Block are
   released.  Also, any JFNs the process has created  are  released,  and
   any  terminal  interrupt  assignments  that were acquired from another
   process are passed back.  (Note that because the  process  is  deleted
   asynchronously,  a  page of a file mapped into a lower process may not
   be unmapped before the KFORK call returns.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, unless the current process attempts  to  kill
                    itself

   The KFORK call will not release a process  handle  that  identifies  a
   process  already  killed  by another process.  In this case, the RFRKH
   call must be used to release the handle.

   The CFORK monitor call can be used to create an inferior process.

   Generates an illegal instruction interrupt on error conditions below.

   KFORK ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   KFRKX1:   illegal to kill top level process

   KFRKX2:   illegal to kill self

                              LGOUT     JSYS 3

   Kills the specified  job  and  appends  an  accounting  entry  to  the
   accounting  data  file.   However, no entry is appended if the job was
   never logged in (i.e., a CTRL/C was typed, but no login occurred).

   ACCEPTS IN AC1:  number of the job to be logged out,  or  -1  for  the
                    current job

   RETURNS     +1:  failure, error code in AC1

               +2:  success

   When a specific job number is given in AC1, it must refer to either  a
   PTY  job  controlled  by  the current job or a job logged in under the
   same user name as the current job.  Otherwise, to give a specific  job
   number,  the  process  must have WHEEL or OPERATOR capability enabled.
   An argument of -1 must be given if the  current  job  wishes  to  kill
   itself  (i.e.,  the job number given cannot be the same as the current
   job).  Note that this monitor call does not return if the argument  in
   AC1 is -1.

   The LGOUT monitor call outputs the time used (both CPU  and  console),
   the  job  number,  and the current date and time.  This information is
   output on the terminal to which the job being logged out is attached.

   LGOUT ERROR MNEMONICS:

   LOUTX1:   illegal to specify job number when logging out own job

   LOUTX2:   invalid job number

   LOUTX3:   WHEEL or OPERATOR capability required

   LOUTX4:   LOG capability required

   LOUTX5:   illegal to log out job 0

                             LNMST     JSYS 504

   Translates a logical name to its original definition  string.   (Refer
   to Section 2.2.2 and the CRLNM and INLNM monitor calls descriptions.)

   ACCEPTS IN AC1:  function code

              AC2:  pointer to the logical name

              AC3:  pointer to the string where the original logical name
                    definition is to be written

   RETURNS     +1:  failure, error code in AC1

               +2:  success, updated string pointer in AC3

   The codes for the functions are as follows:

   0    .LNSJB    Obtain the job-wide definition of the logical name.
   1    .LNSSY    Obtain the system definition of the logical name.

   LNMST ERROR MNEMONICS:

   GJFX22:   insufficient system resources (Job Storage Block full)

   LNSTX1:   no such logical name

   LNSTX2:   invalid function

                              LOGIN     JSYS 1

   Logs a job into the system.   Useful  for  logging  in  from  an  idle
   terminal on which a CTRL/C has been typed.

   ACCEPTS IN AC1:  36-bit user number under which user will log in

              AC2:  pointer to beginning of password string

              AC3:  account number in  bits  3-35  if  bits  0-2  are  5.
                    Otherwise  contains  a  pointer to an account string.
                    If a null byte is not seen, the string is  terminated
                    after 39 characters are processed.

   RETURNS     +1:  failure, error code in AC1

               +2:  success, date and time of  last  login  (in  internal
                    system  format;   refer to Section 2.8.2) in AC1, and
                    updated string pointers, if  pertinent,  in  AC2  and
                    AC3.

   The LOGIN monitor call does not require a password if the  controlling
   terminal  is  a pseudo-terminal and the controlling job either has the
   WHEEL or OPERATOR capability enabled or is logged in as the same  user
   being logged in for this job.

   If the call is successful, an accounting  entry  is  appended  to  the
   accounting  data file.  If the account validation facility is enabled,
   the LOGIN call verifies  either  the  account  given  or  the  default
   account of the user being logged in.

   LOGIN ERROR MNEMONICS:

   LGINX1:   invalid account identifier

   LGINX2:   directory is "files-only" and cannot be logged in to

   LGINX3:   internal format of directory is incorrect

   LGINX4:   invalid password

   LGINX5:   job is already logged in

   LGINX6:   no more job slots available for logging in

                             LPINI    JSYS 547

   Loads the direct access Vertical Formatting Unit (VFU) or  translation
   Random  Access  Memory  (RAM)  for  the  line  printer.   This call is
   executed at system startup by the program that configures the system.

   ACCEPTS IN AC1:  JFN of file containing VFU or RAM

              AC2:  status bits in the left half, and  function  code  in
                    the right half

              AC3:  unit number of line printer

   RETURNS     +1:  always

   The following status bit is currently defined.

       B0(MO%LCP)   Line printer is a lowercase printer.

   The available functions are as follows:

   Code      Symbol              Meaning

    32       .MOLVF    Load the VFU from the file indicated by the  given
                       JFN.

    34       .MOLTR    Load the translation RAM from the  file  indicated
                       by the given JFN.

   The LPINI monitor call requires the process to have WHEEL or  OPERATOR
   capability  enabled.  In addition, the line printer must not be opened
   by any process when this call is executed.  If a condition occurs that
   prevents  the  VFU or RAM from being loaded (e.g., the line printer is
   off line), the name of the file will be stored.  The VFU or  RAM  will
   then  be  loaded automatically the next time a process performs output
   to the line printer.

   Generates an illegal instruction interrupt on error conditions below.

   LPINI ERROR MNEMONICS:

   LPINX1:  invalid unit number

   LPINX2:  WHEEL or OPERATOR capability required

   LPINX3:  illegal to load RAM or VFU while device is OPEN

                             MRECV     JSYS 511

   Retrieves an IPCF (Inter-Process Communication Facility) message  from
   the  process'  input  queue.   Refer to the DECsystem-20 Monitor Calls
   User's Guide for an overview  and  description  of  the  Inter-Process
   Communication Facility.

   ACCEPTS IN AC1:  length of packet descriptor block

              AC2:  address of packet descriptor block

   RETURNS     +1:  failure, error code in AC1

               +2:  success.  The packet is retrieved and placed into the
                    block   indicated   by  word  .IPCFP  of  the  packet
                    descriptor block.  AC1 contains  the  length  of  the
                    next  entry  in  the  queue  in the left half and the
                    flags from the next packet in the right  half.   This
                    returned  word  is  called the associated variable of
                    the next entry in the queue.  If the queue is  empty,
                    AC1 contains 0.

   The format of the packet descriptor block is as follows:

        Word      Symbol              Meaning

          0       .IPCFL    Flags.    (Refer   to    the    MSEND    call
                            description.)

          1       .IPCFS    PID of sender.  The caller  does  not  supply
                            this  PID;   the  system fills it in when the
                            packet is retrieved.

          2       .IPCFR    PID of receiver.  This  PID  can  be  one  of
                            three values:  a specific PID, -1 to retrieve
                            messages  for  any  PID  belonging  to   this
                            process,  or  -2 to retrieve messages for any
                            PID belonging to this job.  When -1 or -2  is
                            supplied,  messages  are not retrieved in any
                            particular order except that messages from  a
                            specific  PID  are  returned  in the order in
                            which they were received.

          3       .IPCFP    Pointer to  block  where  message  is  to  be
                            placed  (length  of  message in the left half
                            and address where message is to be placed  in
                            the right half).

          4       .IPCFD    User number of sender.

          5       .IPCFC    Enabled capabilities of sender.

          6       .IPCSD    Directory  number   of   sender's   connected
                            directory.

          7       .IPCAS    Account  string  of   sender.    The   caller
                            supplies  a  pointer  to  the block where the
                            account is to be placed.

   The caller (i.e., receiver) does not supply the information in words 4
   through  7;   the  system  fills  in  the  words  when  the  packet is
   retrieved.  These words describe the sender at the  time  the  message
   was sent and permit the receiver to validate messages.

   Refer to the MSEND call description for the flags that can be  set  in
   word .IPCFL of the packet descriptor block.

   MRECV ERROR MNEMONICS:

   IPCFX1:   length of packet descriptor block cannot be less than 4

   IPCFX2:   no message for this PID

   IPCFX3:   data too long for user's buffer

   IPCFX4:   receiver's PID invalid

   IPCFX5:   receiver's PID disabled

   IPCFX7:   receiver quota exceeded

   IPCFX8:   IPCF free space exhausted

   IPCF10:   WHEEL capability required

   IPCF11:   WHEEL or IPCF capability required

   IPCF12:   no free PID's available

   IPCF13:   PID quota exceeded

   IPCF14:   no PID's available to this job

   IPCF15:   no PID's available to this process

   IPCF16:   receive and message data modes do not match

   IPCF19:   no PID for [SYSTEM]INFO

   IPCF24:   invalid message size

   IPCF25:   PID does not belong to this job

   IPCF26:   PID does not belong to this process

   IPCF27:   PID is not defined

   IPCF28:   PID not accessible by this process

   IPCF29:   PID already being used by another process

   IPCF31:   invalid page number

   IPCF32:   page is not private

   IPCF34:   cannot receive into an existing page

                             MSEND     JSYS 510

   Sends an IPCF (Inter-Process  Communication  Facility)  message.   The
   message  is  in  the  form  of  a packet and can be sent to either the
   specified PID or  the  system  process  <SYSTEM>INFO.   Refer  to  the
   DECsystem-20   Monitor   Calls   User's  Guide  for  an  overview  and
   description of the Inter-Process Communication Facility.

   ACCEPTS IN AC1:  length of packet descriptor block

              AC2:  address of packet descriptor block

   RETURNS     +1:  failure, error code in AC1

               +2:  success.  The packet is sent to the receiver's  input
                    queue.  Word .IPCFS of the packet descriptor block is
                    updated with the sender's PID.  This updating is done
                    in  case  the  PID  was being defaulted or created by
                    this call.

   The format of the packet descriptor block is as follows:

        Word      Symbol                   Meaning

          0       .IPCFL    Flags.  (See below.)

          1       .IPCFS    PID of sender, or 0  if  no  PID  exists  for
                            sender.  This word will be 0 if the caller is
                            creating a PID (i.e., flag bit IP%CPD is on).

          2       .IPCFR    PID  of  receiver,  or  0  if   receiver   is
                            <SYSTEM>INFO.

          3       .IPCFP    Pointer to message block (length  of  message
                            in  the  left  half  and  starting address of
                            message in the right half).  When a packet is
                            sent   to  <SYSTEM>INFO,  the  message  block
                            contains  the  request  being   made.    (See
                            below.)   b1;.lm0  The  following  flags  are
                            defined  in  word  .IPCFL   of   the   packet
                            descriptor  block.  These flags can be set on
                            both the MSEND and MRECV calls.

                            Flags Set By Caller
                            _____ ___ __ ______

      B0(IP%CFB)  Do not block process if there are no  messages  in  the
                  queue.   If this bit is set, an error is given if there
                  are no messages.

      B1(IP%CFS)  Use, as the sender's PID, the  PID  obtained  from  the
                  address specified in word .IPCFS.

      B2(IP%CFR)  Use, as the receiver's PID, the PID obtained  from  the
                  address specified in word .IPCFR.

      B3(IP%CFO)  Allow one send request above the quota.   (The  default
                  send quota is 2.)

      B4(IP%TTL)  Truncate the message, if it is larger  than  the  space
                  reserved.  If this bit is not set, an error is given if
                  the message is too large.

      B5(IP%CPD)  Create a PID to use as the sender's PID and  return  it
                  in word .IPCFS of the packet descriptor block.

      B6(IP%JWP)  Make the created PID be job wide (i.e., permanent until
                  the  job logs out).  If this bit is not set, the PID is
                  temporary until the process executes the RESET  monitor
                  call.  If B5(IP%CPD) is not set, B6 is ignored.

      B7(IP%NOA)  Do not allow other processes to use  the  created  PID.
                  If B5(IP%CPD) is not set, B7 is ignored.

      B18(IP%CFP) The packet is privileged.  (This bit can be set only by
                  a  process  with  WHEEL  capability  enabled.)  When  a
                  privileged sender sets this bit, the  MRECV  and  MUTIL
                  calls  return  it set for any reply.  An error is given
                  if this bit is set by the sender and  the  receiver  is
                  not privileged.

      B19(IP%CFV) The packet is a page  of  data.   Word  .IPCFP  of  the
                  packet  descriptor block contains 1000 in the left half
                  and the page number in the right half.   The  page  the
                  packet  is  being  sent  to, or is being received into,
                  must be private.

   Flags Returned After Call
   _____ ________ _____ ____

      B20(IP%CFZ) A zero-length message was sent, and the packet consists
                  of only the packet descriptor block.

      B24-B29     Error code field for errors encountered by <SYSTEM>INFO
      (IP%CFE)    during a send or receive request.

                  Code Symbol              Meaning

                  15   .IPCPI    insufficient privileges
                  16   .IPCUF    invalid function
                  67   .IPCSN    <SYSTEM>INFO needs name
                  72   .IPCFF    <SYSTEM>INFO free space exhausted
                  74   .IPCBP    PID has no name or is invalid
                  75   .IPCDN    duplicate name has been specified
                  76   .IPCNN    unknown name has been specified
                  77   .IPCEN    invalid name has been specified

      B30-B32     System and sender code.  This code can be set only by a
      (IP%CFC)    process with  WHEEL  capability  enabled.   The  system
                  returns  the  code  so  that  a  nonprivileged user can
                  examine it.

                  Code Symbol              Meaning

                  1    .IPCCC    sent by <SYSTEM>IPCF
                  2    .IPCCF    sent by system-wide <SYSTEM>INFO
                  3    .IPCCP    sent by receiver's <SYSTEM>INFO

      B33-B35     Field for  return of  special messages.  This field can
      (IP%CFM)    be set only by a process with WHEEL capability enabled.
                  The   system   returns   the   information  so  that  a
                  nonprivileged user can examine it.

                  Code Symbol              Meaning

                  1    .IPCFN    Process' input queue contains  a  packet
                                 that  could not be delivered to intended
                                 PID.

   When the MSEND call is used to send  a  packet  to  <SYSTEM>INFO,  the
   message  portion  of the packet (i.e., the first three words) contains
   the request.  This request has the following format:

        Word      Symbol                   Meaning

          0       .IPCI0    user-defined code in the left  half  and  the
                            function   (see  below)  <SYSTEM>INFO  is  to
                            perform in the right half.  The  user-defined
                            code  is  used to associate the response from
                            <SYSTEM>INFO with the appropriate request.

          1       .IPCI1    PID that is to receive  a  duplicate  of  the
                            response  from <SYSTEM>INFO.  If this word is
                            0,  the  response  is  sent   only   to   the
                            originator of the request.

          2       .IPCI2    argument for the  requested  function.   (See
                            below.)

   The functions that can be requested of <SYSTEM>INFO, along with  their
   arguments, are as follows:

      Function    Argument                 Meaning

      .IPCIW      name           Return  the  PID  associated  with   the
                                 specified  name.  The PID is returned in
                                 word .IPCI1.

      .IPCIG      PID            Return  the  name  associated  with  the
                                 specified  PID.  The name is returned in
                                 word .IPCI1.

      .IPCII      name in        Assign  the  specified  name  to the PID
                   ASCIZ         belonging  to  the  process  making  the
                                 request.   The  temporary  or  permanent
                                 status of the PID is specified  by  flag
                                 bit   IP%JWP(B6)   when   the   PID  was
                                 originally created.

      .IPCIJ      name in        Identical to the .IPCII function.
                   ASCIZ

      .IPCIS                     Disassociates all PIDs with names.  Used
                                 by  the  monitor  on  a  RESET  or LGOUT
                                 monitor  call.   This  function  is  not
                                 available to user programs.

   MSEND ERROR MNEMONICS:

   IPCFX1:   length of packet descriptor block cannot be less than 4

   IPCFX3:   data too long for user's buffer

   IPCFX4:   receiver's PID invalid

   IPCFX5:   receiver's PID disabled

   IPCFX6:   send quota exceeded

   IPCFX7:   receiver quota exceeded

   IPCFX8:   IPCF free space exhausted

   IPCFX9:   sender's PID invalid

   IPCF10:   WHEEL capability required

   IPCF11:   WHEEL or IPCF capability required

   IPCF12:   no free PID's available

   IPCF13:   PID quota exceeded

   IPCF14:   no PID's available to this job

   IPCF15:   no PID's available to this process

   IPCF16:   receive and message data modes do not match

   IPCF19:   no PID for [SYSTEM]INFO

   IPCF24:   invalid message size

   IPCF25:   PID does not belong to this job

   IPCF26:   PID does not belong to this process

   IPCF27:   PID is not defined

   IPCF28:   PID not accessible by this process

   IPCF29:   PID already being used by another process

   IPCF31:   invalid page number

   IPCF32:   page is not private

                             MSFRK     JSYS 312

   Starts a process in monitor mode.  The MSFRK call is legal only if  it
   is  called  from  monitor mode or if the process has WHEEL or OPERATOR
   capability enabled.   This  call  allows  job  0  to  create  multiple
   processes for handling various asynchronous monitor tasks.

   ACCEPTS IN AC1:  process handle

              AC2:  36-bit PC word, with user mode and other flags in the
                    left half and the virtual address in the right half

   RETURNS     +1:  always

   Because the starting context of the process is undefined, the  process
   being started should execute the following sequence of instructions at
   its starting address:

        FBGN:   MOVSI 1,UMODF    ;fake user PC
                MOVEM 1,FPC      ;simulate the JSYS call
                MCENTR           ;establish usual top-level JSYS context

   Generates an illegal instruction interrupt on error conditions below.

   MSFRK ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   CAPX1:    WHEEL or OPERATOR capability required

                             MSTR     JSYS 555

   Performs  various  structure-dependent  functions.   These   functions
   include   mounting   and   dismounting  structures,  incrementing  and
   decrementing mount counts for structures, and  setting  and  obtaining
   the  status  of  structures.   Some functions of the MSTR monitor call
   require the process to have WHEEL or OPERATOR capability  enabled.   A
   process with MAINTENANCE capability enabled can obtain the status of a
   disk unit (functions .MSRNU and .MSRUS).

   ACCEPTS IN AC1:  length of the argument block in  the  left  half  and
                    function code in the right half

              AC2:  address of the argument block

   RETURNS     +1:  always, with some functions  returning  data  in  the
                    argument   block.    (Refer  to  individual  function
                    descriptions below.)

   Generates an illegal instruction interrupt on all error conditions.

   The available functions are summarized below.

   Function       Symbol    Privileged               Meaning
     Code

        0         .MSRNU       Yes         Return the status of the  next
                                           disk unit.

        1         .MSRUS       Yes         Return the status of the given
                                           disk unit.

        2         .MSMNT       Yes         Mount the given structure.

        3         .MSDIS       Yes         Dismount the given structure.

        4         .MSGSS       No          Return the status of the given
                                           structure.

        5         .MSSSS       Yes         Change the status of the given
                                           structure.

        6         .MSINI       Yes         Initialize      the      given
                                           structure.

        7         .MSIMC       No          Increment the mount count  for
                                           the given structure.

        10        .MSDMC       No          Decrement the mount count  for
                                           the given structure.

        11        .MSGSU       No          Return the job numbers of  the
                                           users of the given structure.

   Obtaining the Status of the Next Disk Unit - .MSRNU
   _________ ___ ______ __ ___ ____ ____ ____ _ ______

   This function returns the status of the next disk unit on the  system.
   The  next disk unit is determined by searching the current channel and
   looking for the next physical unit on that channel.

   The .MSRNU function accepts the channel, controller, and unit  numbers
   in  the  first three words of the argument block.  The first time this
   function is executed, the value for  each  of  these  numbers  is  -1.
   After successful completion of this function, the channel, controller,
   and unit numbers are updated, and the software information  about  the
   disk  drive  is  returned in the argument block.  To locate all drives
   available for mounting structures, the channel, controller,  and  unit
   numbers  returned  from  one  .MSRNU function call are supplied on the
   next one until all units on all channels have been searched.  When all
   units have been searched, the MSTR monitor call returns error MSTX18.

   The format of the argument  block,  whose  length  is  .MSRLN,  is  as
   follows:

   Word      Symbol                        Meaning

     0       .MSRCH         Channel number (0-7)

     1       .MSRCT         Controller number (reserved for  future  use,
                            must be -1)

     2       .MSRUN         Unit number (0-7)

     3       .MSRST         Returned  software  status  of   unit.    The
                            following status bits are defined:

                            B0(MS%MNT)  Unit  is  part   of   a   mounted
                                        structure
                            B2(MS%DIA)  Unit is being used by an  on-line
                                        diagnostic program
                            B3(MS%OFL)  Unit is off line
                            B4(MS%ERR)  Unit  has  an  error   that   was
                                        detected during reading
                            B5(MS%BBB)  Unit has a  bad  BAT  block.   If
                                        this bit is on, the data returned
                                        in word .MSRSN (word  4)  and  in
                                        words   .MSRNS   through   .MSRFI
                                        (words   6   through    20)    is
                                        indeterminate.
                            B6(MS%HBB)  Unit has a bad HOME block
                            B7(MS%WLK)  Unit is write locked

                            B9-B17      Type of disk unit
                            (MS%TYP)
                                        1  .MSRP4   RP04
                                        5  .MSRP5   RP05
                                        6  .MSRP6   RP06

     4       .MSRSN         Pointer to ASCIZ string in which to store the
                            structure  name.   This pointer is updated on
                            return.

     5       .MSRSA         Pointer to ASCIZ string in which to store the
                            structure  alias.   The  alias is usually the
                            same as the structure  name.   The  alias  is
                            returned,  and  the  pointer updated, only if
                            the structure is on line.

     6       .MSRNS         Logical unit number within the  structure  of
                            this  unit  in  the  left half, and number of
                            units in the structure in the right half.

     7       .MSRSW         Number  of  pages  for   swapping   on   this
                            structure.

    10-12    .MSRUI         Unit ID (3 words of ASCII)

    13-15    .MSROI         Owner ID (3 words of ASCII)

    16-20    .MSRFI         File system ID (3 words of ASCII)

    21       .MSRSP         Number of sectors per page

    22       .MSRSC         Number of sectors per cylinder

    23       .MSRPC         Number of pages per cylinder

    24       .MSRCU         Number of cylinders per unit

    25       .MSRSU         Number of sectors per unit

    26       .MSRBT         Number of bit words in bit table per cylinder

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTX14:   invalid channel number

   MSTX15:   invalid unit number

   MSTX16:   invalid controller number

   MSTX18:   no more units in system

   MSTX27:   specified unit is not a disk

   CAPX2:    WHEEL, OPERATOR, or MAINTENANCE capability required

   Obtaining the Status of a Given Disk Unit - .MSRUS
   _________ ___ ______ __ _ _____ ____ ____ _ ______

   This function returns the status of the given disk unit.   It  accepts
   the  channel, controller, and unit numbers in the first three words of
   the argument block.  After successful completion of this function, the
   channel,  controller, and unit numbers are unchanged, and the software
   information about the given disk unit  is  returned  in  the  argument
   block.

   The difference between this function and the .MSRNU function  is  that
   .MSRUS  does  not search for the next disk unit but rather returns the
   status for the given unit.  The .MSRNU function searches for the  next
   disk unit and returns the status for that unit.

   The format of the argument  block  and  the  errors  possible  on  the
   failure  of  this  function  are  the same as described for the .MSRNU
   function.

   Mounting a Given Structure - .MSMNT
   ________ _ _____ _________ _ ______

   This function brings the given structure on line and normally makes it
   available  for  general  use.   Any  structure  other  than the public
   structure PS:  must be brought  on  line  with  this  function.   (The
   public  structure  PS:   is  brought on line during the system startup
   procedure.)

   It is recommended that the .MSRNU (Read Next Unit) function  be  given
   first  to  locate  all units in the structure.  Then the .MSMNT (Mount
   Structure) function can be given to read and verify the HOME blocks of
   each  unit  and  to  mount the structure.  If one or more units of the
   structure are write-locked, the structure cannot  be  mounted  and  an
   error is given.

   The format of the argument block is as follows:

      Word   Symbol                   Meaning

        0    .MSTNM         Pointer to the ASCIZ  string  containing  the
                            name of the structure.

        1    .MSTAL         Pointer to the ASCIZ  string  containing  the
                            alias of the structure.

        2    .MSTFL         Flag bits in the left half, and the number of
                            units  in the structure (.MSTNU) in the right
                            half.  The bits that can be set in  the  left
                            half are:

                            B0(MS%NFH)  If one  of  the  HOME  blocks  is
                                        incorrect,  do  not fix it and do
                                        return an error.  If this bit  is
                                        off and one of the HOME blocks is
                                        incorrect, the correct  block  is
                                        copied  into  the  bad HOME block
                                        and   the   mounting    procedure
                                        continues.

                            B1(MS%NFB)  If one of the BAT (Bad Allocation
                                        Table)  blocks  is  incorrect, do
                                        not  fix  it  and  do  return  an
                                        error.   If  this  bit is off and
                                        one  of   the   BAT   blocks   is
                                        incorrect,  the  correct block is
                                        copied into the bad BAT block and
                                        the mounting procedure continues.

                            B2(MS%XCL)  Mount the structure for exclusive
                                        use by this job.  This bit is set
                                        by  a  system  program  when   it
                                        initializes   or  reconstructs  a
                                        structure.  If this bit  if  off,
                                        the   structure  is  mounted  for
                                        general use.

                            B3(MS%IGN)  Ignore correctable errors in  the
                                        bit   table   and   in  the  root
                                        directory  on   this   structure.
                                        This  bit  is  set  by  a  system
                                        program when it reconstructs  the
                                        root  directory on a structure or
                                        rebuilds the bit table.  If  this
                                        bit   is  off  and  an  error  is
                                        detected, this  function  returns
                                        an error.

        3    .MSTUI         Beginning of unit information for  each  unit
                            in the structure.  The information is 3 words
                            long per unit, and the symbol for this length
                            is  .MSTNO.   The  first  3-word block is for
                            logical unit 0, and the last 3-word block  is
                            for  the  last  logical unit (.MSTNU-1).  The
                            offsets into the 3-word block are:

                            0     .MSTCH   Channel number of unit

                            1     .MSTCT   Controller  number   of   unit
                                           (currently must be -1)

                            2     .MSTUN   Unit number of unit

   After successful completion of this function, the given  structure  is
   mounted  and  available  for  general use (unless bit MS%XCL was on in
   word .MSTFL of the argument block).

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTRX4:   insufficient system resources

   MSTRX5:   drive is not on line

   MSTRX6:   home blocks are bad

   MSTRX7:   invalid structure name

   MSTRX8:   could not get OFN for ROOT-DIRECTORY

   MSTRX9:   could not MAP ROOT-DIRECTORY

   MSTX10:   ROOT-DIRECTORY bad

   MSTX11:   could not initialize Index Table

   MSTX12:   could not OPEN Bit Table File

   MSTX13:   backup copy of ROOT-DIRECTORY is bad

   MSTX14:   invalid channel number

   MSTX15:   invalid unit number

   MSTX16:   invalid controller number

   MSTX17:   all units in a structure must be of the same type

   MSTX19:   unit is already part of a mounted structure

   MSTX20:   data error reading HOME blocks

   MSTX23:   could not write HOME blocks

   MSTX25:   invalid number of swapping pages

   MSTX27:   specified unit is not a disk

   MSTX30:   incorrect Bit Table counts on structure

|  MSTX34:   unit is write-locked
|
|  MSTX35:   too many units in structure

   MONX01:   insufficient system resources

   Dismounting a Given Structure - .MSDIS
   ___________ _ _____ _________ _ ______

   This function indicates that the given structure can be  removed  from
   the system.  Any mounted structure other than the public structure PS:
   can be dismounted with this function.  (The public structure  PS:   is
   dismounted at system shutdown.)

   Files that are open at the  time  this  function  is  executed  become
   inaccessible, and the jobs that had the files open receive an error if
   they reference them.  Jobs that have mounted  the  structure  or  have
   connected  to  or  accessed  a  directory  on the structure receive an
   informational message on the terminal.  This message is

        [STRUCTURE name:  HAS BEEN DISMOUNTED]

   The format of the argument block is as follows:

      Word   Symbol                        Meaning

        0    .MSDNM         Pointer to ASCIZ string containing the  alias
                            of the structure, or device designator of the
                            structure.

   After successful completion of this function, the given  structure  is
   dismounted and can be physically removed from the system.

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX24:   illegal to dismount the Public Structure

   Obtaining the Status of a Given Structure - .MSGSS
   _________ ___ ______ __ _ _____ _________ _ ______

   This function returns the status of a mounted structure.   The  caller
   supplies  the designators for the structure and for the storage of the
   structure's physical ID.  After successful  completion  of  the  call,
   data is returned in the appropriate words in the argument block.

   The format of the argument  block,  whose  length  is  .MSGLN,  is  as
   follows:

      Word   Symbol                        Meaning

        0    .MSGSN         Pointer to ASCIZ string containing the  alias
                            of the structure, or device designator of the
                            structure.

        1    .MSGST         Returned status word.  The status bits are:

                            B0(MS%PS)   This  structure   is   a   public
                                        structure.

                            B1(MS%DIS)  This    structure    is     being
                                        dismounted  and  no further mount
                                        count increments are allowed.

                            B2(MS%DOM)  This  structure  is  a   domestic
                                        structure.

                            B3(MS%PPS)  This  structure  is  the  primary
                                        public structure.

                            B4(MS%INI)  This    structure    is     being
                                        initialized.

        2    .MSGNU         Number of units in structure.

        3    .MSGMC         Mount count for this structure.   This  value
                            is   determined   by  the  number  of  .MSIMC
                            (Increment Mount Count) functions  given  for
                            this   structure   by  all  users  since  the
                            structure was mounted.

        4    .MSGFC         Open file count (i.e., number of open  files)
                            for this structure.

        5    .MSGSI         Pointer to ASCIZ string in which to store the
                            structure's physical ID.

   After successful completion of this function, the status of the  given
   structure  is returned in the appropriate words of the argument block,
   and the pointer to the physical ID is updated to reflect the  returned
   string.

   The following errors are possible on the failure of this function.

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   Changing the Status of a Given Structure - .MSSSS
   ________ ___ ______ __ _ _____ _________ _ ______

   This function changes the status of a mounted structure.   The  caller
   can change only two of the status bits in the structure's status word:
   status of being dismounted and status of being domestic.

   The format of the argument block, whose length is .MSSLN is:

      Word   Symbol                        Meaning

        0    .MSSSN         Pointer to ASCIZ string containing the  alias
                            of the structure, or device designator of the
                            structure.

        1    .MSSST         Word containing the new values for  the  bits
                            being changed.

        2    .MSSMW         Mask containing the bits being changed.   The
                            bits that can be changed are

                            B1(MS%DIS)  Structure is being dismounted.

                            B2(MS%DOM)  Structure is domestic.

   After successful completion of this function, the status of the  given
   structure  is  changed  according to the data supplied in the argument
   block.

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX22:   illegal to change specified bits

   Initializing a Given Structure - .MSINI
   ____________ _ _____ _________ _ ______

   This function creates a new structure or repairs an existing structure
   during normal system operation.  The caller has the option of creating
   a new file system, reconstructing the root directory,  writing  a  new
   set of HOME blocks on the structure, or rebuilding the index block.

   The format of the argument block is as follows:

      Word   Symbol                        Meaning

        0    .MSINM         Pointer to ASCIZ string containing  the  name
                            of the structure.

        1    .MSIAL         Pointer to ASCIZ string containing the  alias
                            of the structure.

        2    .MSIFL         Flag bits in B0-B11, function value  (MS%FCN)
                            in  B12-B17, and number of units in structure
                            (.MSINU) in B18-B35.  The flag bits are:

                            B0(MS%NFH)  Do not fix HOME block if  one  is
                                        incorrect and do return an error.
                                        This bit  can  be  on  only  with
                                        function .MSRRD.  (See below.)

                            B1(MS%NFB)  Do not fix BAT block  if  one  is
                                        incorrect and do return an error.

                            B2(MS%XCL)  Mount    this    structure    for
                                        exclusive  use  by  this job.  If
                                        this bit is off, the structure is
                                        mounted for general use.

                            B3(MS%IGN)  Ignore errors in  the  bit  table
                                        and in the root directory on this
                                        structure.  If this  bit  is  on,
                                        B2(MS%XCL) must also be on.

                            The function values that can be given are:

                            1   .MSCRE  Create a new file system

                            2   .MSRRD  Reconstruct the root directory

                            3   .MSWHB  Write a new set of HOME blocks

                            4   .MSRIX  Rebuild the index table

      3-5    .MSISU         Beginning of unit information for  each  unit
                            in the structure.  The information is 3 words
                            long per unit, and the symbol for this length
                            is  .MSINO.   The  first  3-word block is for
                            logical unit 0, and the last 3-word block  is
                            for  the  last  logical unit (.MSINU-1).  The
                            offsets into the 3-word block are:

                            0   .MSICH  Channel number of unit

                            1   .MSICT  Controller   number    of    unit
                                        (currently must be -1)

                            2   .MSIUN  Unit number of unit

        6    .MSIST         Status word (reserved for future use).

        7    .MSISW         Number  of  pages  for   swapping   on   this
                            structure.

       10    .MSIFE         Number  of  pages  for  the  front-end   file
                            system.

      11-13  .MSIUI         Unit ID (3 words of ASCII)

      14-16  .MSIOI         Owner ID (3 words of ASCII)

      17-21  .MSIFI         File system ID (3 words of  ASCII)  (reserved
                            for future use)

       22    .MSIFB         Number of pages for the file BOOTSTRAP.BIN.

   Words 6 through 16 (.MSIST through .MSIOI) of the argument block  must
   be  supplied when the MSTR call is being executed to create a new file
   system or to write  a  new  set  of  HOME  blocks.   After  successful
   completion  of  the  .MSCRE function, the structure is initialized and
   the following directories are created:

        <ROOT-DIRECTORY>
        <SYSTEM>
        <SUBSYS>
        <ACCOUNTS>
        <SPOOL>
        <OPERATOR>

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTRX4:   insufficient system resources

   MSTRX5:   drive is not on line

   MSTRX6:   home blocks are bad

   MSTRX7:   invalid structure name

   MSTRX8:   could not get OFN for ROOT-DIRECTORY

   MSTRX9:   could not MAP ROOT-DIRECTORY

   MSTX10:   ROOT-DIRECTORY bad

   MSTX11:   could not initialize Index Table

   MSTX12:   could not OPEN Bit Table File

   MSTX13:   backup copy of ROOT-DIRECTORY is bad

   MSTX14:   invalid channel number

   MSTX15:   invalid unit number

   MSTX16:   invalid controller number

   MSTX17:   all units in a structure must be of the same type

   MSTX19:   unit is already part of a mounted structure

   MSTX20:   data error reading HOME blocks

   MSTX23:   could not write HOME blocks

   MSTX25:   invalid number of swapping pages

   MSTX26:   invalid number of Front-End-Filesystem pages

   MSTX27:   specified unit is not a disk

   MSTX28:   could not initialize Bit Table for structure

   MSTX29:   could not reconstruct ROOT-DIRECTORY

   MSTX30:   incorrect Bit Table counts on structure

   MONX01:   insufficient system resources

   Incrementing the Mount Count - .MSIMC
   ____________ ___ _____ _____ _ ______

   Users  indicate  that  they  are  actively  using   a   structure   by
   incrementing  the  structure's  mount  count.   A  nonzero mount count
   informs the operator that the structure should not be dismounted.  The
   .MSIMC function is used to increment a structure's mount count.

   The job receives an error if the given structure is in the process  of
   being  dismounted  (i.e., a job has given the .MSSSS function with the
   MS%DIS bit on).

   The format of the argument block is as follows:

      Word   Symbol                        Meaning

        0    .MSDEV         Pointer to ASCIZ string containing the  alias
                            of the structure, or device designator of the
                            structure.

   After successful completion of this function, the mount count  of  the
   given structure has been incremented.

   The following errors are possible on the failure of this function.

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX33:   structure is unavailable for mounting

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources

   STDVX1:   no such device

   STRX01:   structure is not mounted

   STRX02:   insufficient system resources

   Decrementing the Mount Count - .MSDMC
   ____________ ___ _____ _____ _ ______

   This function indicates that the given structure is  no  longer  being
   used by the job executing the call.  If the job executing the call has
   previously incremented the mount count  for  this  structure  via  the
   .MSIMC   (Increment   Mount   Count)  function,  the  mount  count  is
   decremented.  If the job has not incremented the mount count, the  job
   receives an error.

   The format of the argument block is as follows:

      Word   Symbol                        Meaning

        0    .MSDEV         Pointer to ASCIZ string containing the  alias
                            of the structure, or device designator of the
                            structure.

   The resource allocator receives an IPCF packet when  the  mount  count
   for  a structure is decremented.  The flag word (.IPCFL) of the packet
   descriptor block has a code of 1(.IPCCC) in  the  IP%CFC  field  (bits
   30-32).  This code indicates the message was sent by the monitor.  The
   first word of the packet data block contains  the  structure  dismount
   code  .IPCDS.  The second word contains the number of header words and
   the number of the job decrementing the mount count.   The  third  word
   contains the device designator of the structure.  Thus,

        .IPCFL/<.IPCCC>B32

        DATA/.IPCDS
        DATA+1/number of header words (2),, job number
        DATA+2/device designator of structure

   After successful completion of this function, the mount count  of  the
   structure has been decremented and the IPCF message has been sent.

   The following errors are possible on the failure of this function.

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX32:   structure was not mounted

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources

   STDVX1:   no such device

   STRX01:   structure is not mounted

   STRX02:   insufficient system resources

   Obtaining the Users on a Given Structure - .MSGSU
   _________ ___ _____ __ _ _____ _________ _ ______

   This function returns the job  numbers  of  the  users  of  the  given
   structure.   Users  of  a  structure  are  divided into three classes:
   users who have incremented the mount count (SMOUNT command), users who
   are  connected  to the structure (CONNECT command), and users who have
   accessed the structure (ACCESS command).   The  caller  specifies  the
   classes  of  users  for which information is to be returned by setting
   the appropriate bits in the argument block.

   The format of the argument block is as follows:

      Word   Symbol                        Meaning

        0    .MSUAL         Pointer to ASCIZ string containing the  alias
                            of the structure, or device designator of the
                            structure.

        1    .MSUFL         Flag bits in the left half and 0 in the right
                            half.  The bits that can be set are:

                            B0(MS%GTA)  Return users  who  have  accessed
                                        the structure.

                            B1(MS%GTM)  Return users who have incremented
                                        the mount count.

                            B2(MS%GTC)  Return users who are connected to
                                        the structure.

   After successful execution of this function, word 1 through  word  n+1
   (where  n  is  the  number  of  items  returned)  are updated with the
   following information.

      Word   Symbol                        Meaning

        1    .MSUFL         Right half contains the number of  items  (n)
                            being returned.  Left half is unchanged.

        2    .MSUJ1         Flag bits for the job in the left  half,  and
                            number of job in the right half.

        .                   .
        .                   .
        .                   .

      n + 1                 Flag bits for the job in the left  half,  and
                            number of job in the right half.

                            The bits returned for each  job  are  defined
                            as:

                            B0(MS%GTA)  Job has accessed structure.

                            B1(MS%GTM)  Job  has  incremented  the  mount
                                        count for structure.

                            B2(MS%GTC)  Job has connected to structure.

   The following errors are possible on the failure of this function.

   MSTRX1:   invalid function

   MSTRX3:   argument block too small

   STRX01:   structure is not mounted

   STDVX1:   no such device

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources

|  Specifying word and bits to be modified - .MSHOM
|
|  This function allows enabled WHEEL or OPERATOR program to specify word
|  of homeblock of mounted structure to be modified, which bits should be
|  modified, and what the new values should be.
|
|  The format of the argument block is as follows:
|
|     Word   Symbol                        Meaning
|
|       0    .MSHNM         Handle on alias such as pointer to string, or
|                           device designator.
|
|       1    .MSHOF         Offset  specifying  which  word   should   be
|                           changed.
|
|       2    .MSHVL         Value for new bits.
|
|       3    .MSHMK         Mask showing which bits should be changed.
|
|  The following errors are possible on the failure of this function:
|
|  MSTRX2:   insufficient privileges
|
|  MSTRX3:   argument block too small
|
|  MSTX21:   structure not mounted
|
|            any errors "MODHOM" routine returns

                             MTALN     JSYS 774

   Associates a  given  serial-numbered  magnetic  tape  drive  with  the
   specified logical unit number.  This monitor call requires the process
   to have WHEEL or OPERATOR capability enabled.  The  MTALN  call  is  a
|  temporary call and may not be defined in future releases.
|
|  ACCEPTS IN AC1:  slave type in left  half;   logical  unit  number  of
|                   magtape in right half

              AC2:  decimal serial number of magnetic tape drive

   RETURNS     +1:  always

|  All units are searched for the specified serial number and slave type.
|  When  they  are  found, the drive is associated with the given logical
|  unit number.  The original unit is now  associated  with  the  logical
   unit number that the specified serial-numbered drive had before it was
   reassigned.

|  The slaves recognized are
|
|       .MTT45    TU45 (The system default)
|       .MTT70    TU70
|       .MTT71    TU71
|       .MTT72    TU72

   Generates an illegal instruction interrupt on error conditions below.

   MTALN ERROR MNEMONICS:

   WHELX1:   WHEEL or OPERATOR capability required

   DEVX1:    invalid device designator

   OPNX7:    device already assigned to another job

                             MTOPR     JSYS 77

   Performs various device-dependent  control  functions.   This  monitor
   call  requires  that the device either be opened or be assigned to the
   caller if the device is an assignable device.

   Because of the device dependencies of the MTOPR call, programs written
   with  device-independent  code  should  not  use this call unless they
   first check for the type of device.

   ACCEPTS IN AC1:  JFN of the device

              AC2:  function code (see below)

              AC3:  function arguments or address of argument block  (see
                    descriptions of individual devices)

   RETURNS     +1:  always

   The functions listed for each device apply only to that device.  If  a
   function  applies to more than one device, its description is repeated
   for each applicable device.

   MTA Functions
   ___ _________

   The functions available for magnetic tapes (MTA) are described  below.
   Some  of  these  functions  accept  arguments  in  AC3  (refer  to the
   individual descriptions).

   Code      Symbol                    Meaning

    0        .MOCLE    Clear any error flags from a previous MTOPR call.

    31       .MONOP    Wait for all activity to stop.

    1        .MOREW    Rewind the tape.  This function waits for activity
                       to  stop  before  winding the tape.  If sequential
                       data is being output, the last partial  buffer  is
                       written  before  the  tape  is  rewound.   Control
                       returns to caller when rewinding begins.

    11       .MORUL    Rewind and unload  the  tape.   This  function  is
                       identical  to the .MOREW function and also unloads
                       the tape if the hardware supports tape unloading.

    10       .MOEOT    Advance forward until two  sequential  tape  marks
                       are  seen  and  position tape after the first tape
                       mark.

    3        .MOEOF    Write a tape mark.  This  function  requires  that
                       the  magnetic tape be opened for write access.  If
                       sequential data is being output, the last  partial
                       buffer is written before the tape mark.

    6        .MOFWR    Advance over one record in the direction away from
                       the  beginning of the tape.  If sequential data is
                       being read in the forward direction and not all of
                       the  record  has been read, this function advances
                       to the start of the next  record.   If  sequential
                       data  is  being  read in the reverse direction and
                       not all of the record has been read, this function
                       positions the tape at the end of that record.

    7        .MOBKR    Space backward over one record  in  the  direction
                       toward  the  beginning of the tape.  If sequential
                       data is being read in the  forward  direction  and
                       not all of the record has been read, this function
                       positions the tape  back  to  the  start  of  that
                       record.   If  sequential data is being read in the
                       reverse direction and not all of  the  record  has
                       been read, this function positions the tape to the
                       end  of  the  record  physically  preceding   that
                       record.

    16       .MOFWF    Advance to the  start  of  the  next  file.   This
                       function  advances  the tape in the direction away
                       from the beginning of the  tape  until  it  passes
                       over a tape mark.

    17       .MOBKF    Space backward over one file.  This function moves
                       the  tape in the direction toward the beginning of
                       the tape until it  passes  over  a  tape  mark  or
                       reaches  the  beginning  of  the  tape,  whichever
                       occurs first.

    2        .MOSDR    Set the direction of the  tape  motions  for  read
                       operations.  This function requires AC3 to contain
                       the desired direction.   If  AC3  =  0,  the  tape
                       motion  is  forwards;  if AC3 = 1, the tape motion
                       is backwards.

    26       .MORDR    Return the  direction  that  the  tape  is  moving
                       during  read  operations.  On a successful return,
                       AC3 = 0 if the direction of  the  tape  motion  is
                       forwards,  or AC3 = 1 if the direction of the tape
                       motion is backwards.

    5        .MOSRS    Set  the  size  of  the  records.   This  function
                       requires  AC3  to  contain  the  desired number of
                       bytes in the records.

    15       .MORRS    Return the size of the records.  On  a  successful
                       return,  AC3  contains  the number of bytes in the
                       records.

    24       .MOSDN    Set the density.  The  function  requires  AC3  to
                       contain the desired density:

|                      0    .SJDDN    default system density
|                      1    .SJDN2    200 BPI (8 rows/mm)
|                      2    .SJDN5    556 BPI (22 rows/mm)
|                      3    .SJDN8    800 BPI (31 rows/mm)
|                      4    .SJD16    1600 BPI (63 rows/mm)
|                      5    .SJD62    6250 BPI (246 rows/mm)

    12       .MORDN    Return  the  current  density   setting.    On   a
                       successful   return,   AC3  contains  the  current
                       density.

    4        .MOSDM    Set  the  hardware  data  mode  to  be  used  when
                       transferring  data  to  and  from  the tape.  This
                       function requires AC3 to contain the desired  data
                       mode:

                       0    .SJDDM    default system data mode
                       1    .SJDMC    dump mode (36-bit bytes)
                       2    .SJDM6    SIXBIT byte mode for 7-track drives
                       3    .SJDMA    ANSI ASCII mode (7  bits  in  8-bit
                                      bytes)
|                      4    .SJDM8    industry compatible mode
|                      5    .SJDMH    High-density mode for TU70 and TU72
|                                     tape  drives only (nine 8-bit bytes
|                                     in two words).

    14       .MORDM    Return the hardware data mode currently being used
                       in   transfers   to  and  from  the  tape.   On  a
                       successful return, AC3 contains the  current  data
                       mode.

    20       .MOSPR    Set the parity.  This  function  requires  AC3  to
                       contain the desired parity:

                       0    .SJPRO    odd parity
                       1    .SJPRE    even parity

    21       .MORPR    Return  the  current  parity.   On  a   successful
                       return, AC3 contains the current parity.

    27       .MOSID    Set the reel identification of the  tape  mounted.
                       The process must have WHEEL or OPERATOR capability
                       enabled.  This function requires  AC3  to  contain
                       the desired 36-bit reel ID.

    13       .MOERS    Erase three inches  of  tape  (i.e.,  erase  gap).
                       This  function  requires that the magnetic tape be
                       opened for write access.

    22       .MONRB    Return number of bytes remaining  in  the  current
                       record.   On a successful return, AC3 contains the
                       number of bytes remaining.  This function is  only
                       meaningful during sequential I/O.

    23       .MOFOU    Force any partial records  to  be  written  during
                       sequential output.

    25       .MOINF    Return information about the tape.  This  function
                       requires   AC3  to  contain  the  address  of  the
                       argument block in which the information is  to  be
                       returned.   The format of the argument block is as
                       follows:

                          Word   Symbol         Meaning

                            0    .MOICT   Length of argument block to  be
                                          returned  (not  including  this
                                          word)
                            1    .MOITP   MTA type code
                            2    .MOIID   MTA reel ID
                            3    .MOISN   Channel, controller,  and  unit
                                          in  the  left  half  and serial
                                          number in the right half.
                            4    .MOIRD   Number of reads done
                            5    .MOIWT   Number of writes done
                            6    .MOIRC   Record number from beginning of
                                          tape
                            7    .MOIFC   Number of files on tape
                            10   .MOISR   Number of soft read errors
                            11   .MOISW   Number of soft write errors
                            12   .MOIHR   Number of hard read errors
                            13   .MOIHW   Number of hard write errors

    30       .MOIEL    Inhibit error logging for the tape.

   LPT Functions
   ___ _________

   The functions available for line printers (LPT) are  described  below.
   Some  of  these  functions  accept the address of an argument block in
   AC3.  The first  word  of  the  argument  block  contains  the  length
   (including  this  word)  of  the  block.  Remaining words of the block
   contain arguments for the particular function.

   Code      Symbol                        Meaning

    27       .MOPSI    Enable for a software interrupt on nonfatal device
                       conditions.  Examples of these conditions are:

                       1.  Device changed from off line to on line.

                       2.  Device changed from on line to off line.

                       3.  Device's page counter has overflowed.

                       Other device errors or software conditions are not
                       handled  by  this  function;  instead they cause a
                       software interrupt on channel 11 (.ICDAE).

                       Argument Block

                       E:    3
                       E+1:  interrupt channel number
                       E+2:  flags.  The following flag is defined:

                             B0(MO%MSG)   Suppress  standard  CTY  device
                                          messages.

    31       .MONOP    Wait for all  activity  to  stop.   This  function
                       blocks  the  process  until  all data has actually
                       been sent to the printer  and  has  been  printed.
                       Because this function is transferring data, it can
                       return an IOX5 data error.

    32       .MOLVF    Load the line printer's VFU  (Vertical  Formatting
                       Unit)  from  the  file  indicated  in the argument
                       block.

                       Argument Block

                       E:    2
                       E+1:  JFN of the file containing the VFU

                       The system opens the file for input  with  a  byte
                       size  of 18 bits.  It closes the file and releases
                       the JFN when the loading of the VFU is complete.

    33       .MORVF    Read the name of the current VFU  file  stored  in
                       the monitor's data base.

                       Argument Block

                       E:    3
                       E+1:  pointer to destination area for  ASCIZ  name
                             string
                       E+2:  number of bytes in destination area

    34       .MOLTR    Load the line printer's  translation  RAM  (Random
                       Access  Memory)  from  the  file  indicated in the
                       argument block.

                       Argument Block

                       E:    2
                       E+1:  JFN of the file containing  the  translation
                             RAM

                       The system opens the file for input  with  a  byte
                       size  of 18 bits.  It closes the file and releases
                       the JFN when the loading of the translation RAM is
                       complete.

    35       .MORTR    Read the name of the current translation RAM  file
                       stored in the monitor's data base.

                       Argument Block

                       E:    3
                       E+1:  pointer to destination area for  ASCIZ  name
                             string
                       E+2:  number of bytes in destination area

    36       .MOSTS    Set the status of the line printer.

                       Argument Block

                       E:    3
                       E+1:  software status  word,  with  the  following
                             status bits settable by the caller:

                             B0(MO%LCP)   Set line  printer  as  a  lower
                                          case printer.

                             B12(MO%EOF)  Set bit MO%EOF in  the  printer
                                          status  word when all data sent
                                          to printer  has  actually  been
                                          printed.   The  status word can
                                          be  obtained  with  the  .MORST
                                          function.

                             B14(MO%SER)  Clear   the   software    error
                                          condition  on the line printer.
                                          This condition  usually  occurs
                                          on a character interrupt.

                             Other status  bits  can  be  read  with  the
                             .MORST  function  (see  below) but cannot be
                             set by the caller.

                       E+2:  value for page counter register.  The caller
                             can  indicate  the  number  of  pages  to be
                             printed by specifying a value of  up  to  12
                             bits  (4096).  Each time the printer reaches
                             the top of a new  page,  it  decrements  the
                             value  by one.  When the value becomes zero,
                             the  printer  sets  status  bit  MO%LPC  and
                             generates   an   interrupt   if  the  .MOPSI
                             function was given previously.

                             If the caller specifies a value of 0 in  the
                             register,  the system will maintain the page
                             counter and will not generate  an  interrupt
                             to  the caller when the page counter becomes
                             zero.

                             If the caller specifies a value of -1 in the
                             register, the value will be ignored.

    37       .MORST    Read the status of the line printer.   The  status
                       is  obtained from the front end, and the caller is
                       blocked until it receives the status.

                       Argument Block

                       E:    3
                       E+1:  status  word.   The   following   bits   are
                             defined:

                             B0(MO%LCP)   Line printer is  a  lower  case
                                          printer.   This bit is set only
                                          if a .MOSTS function  declaring
                                          the   printer  lower  case  was
                                          executed previously.

                             B1(MO%RLD)   Front end  has  been  reloaded.
                                          This  bit  is reset to zero the
                                          next  time  any  I/O   activity
                                          begins for the line printer.

                             B10(MO%FER)  A    fatal    hardware    error
                                          occurred.     This    condition
                                          generates a software  interrupt
                                          on channel 11 (.ICDAE).

                             B12(MO%EOF)  All data sent  to  printer  has
                                          actually been printed.

                             B13(MO%IOP)  Output to the line  printer  is
                                          in progress.

                             B14(MO%SER)  A   software    error    (e.g.,
                                          interrupt    character,    page
                                          counter overflow) occurred.

                             B15(MO%HE)   A  hardware   error   occurred.
                                          This error generates a software
                                          interrupt   on    channel    11
                                          (.ICDAE).     This    condition
                                          usually requires that the forms
                                          be realigned.

                             B16(MO%OL)   Line printer is off line.  This
                                          bit is set on the occurrence of
                                          any  hardware  condition   that
                                          requires operator intervention.

                             B17(MO%FNX)  Line printer does not exist.

                             B30(MO%RPE)  A RAM parity error occurred.

                             B31(MO%LVU)  The line printer has an optical
                                          (12-channel tape reader) VFU.

                             B33(MO%LVF)  A  VFU  error  occurred.    The
                                          paper has to be realigned.

                             B34(MO%LCI)  A character interrupt occurred.
                                          This   generates   a   software
                                          interrupt   on    channel    11
                                          (.ICDAE).

                             B35(MO%LPC)  The page counter  register  has
                                          overflowed.

                             Bits 2-17 contain the software  status  word
                             from  the  front end, and bits 20-35 contain
                             the hardware status word.

                       E+2:  value of page counter register.  A value  of
                             -1 indicates the printer has no page counter
                             value defined.

    40       .MOFLO    Flush any line printer output  that  has  not  yet
                       been printed.

   CDR Functions
   ___ _________

   The functions available for card readers (CDR)  are  described  below.
   Like  the  LPT  functions,  these  functions  accept the address of an
   argument block in AC3.  The first  word  of  the  block  contains  the
   length  (including  this  word)  of the block.  Remaining words in the
   block contain arguments for the particular function.

   Code      Symbol              Meaning

    27       .MOPSI    Enable for a software interrupt on nonfatal device
                       conditions.  Examples of these conditions are:

                       1.  Device changed from off line to on line.

                       2.  Device changed from on line to off line.

                       Other device errors or software conditions are not
                       handled  by  this  function;  instead they cause a
                       software interrupt on channel 11 (.ICDAE).

                       Argument Block

                       E:    3
                       E+1:  interrupt channel number
                       E+2:  flags.  The following flag is defined:

                             B0(MO%MSG)   Suppress  standard  CTY  device
                                          messages.

    37       .MORST    Read the status of the card reader.  The status is
                       obtained  from  the  front  end, and the caller is
                       blocked until it receives the status.

                       Argument Block

                       E:    2
                       E+1:  status word.  Bits 2-17 contain the software
                             status  word  from  the  front end, and bits
                             20-35 contain the hardware status word.

                             B0(MO%COL)   Card reader is on  line.   This
                                          bit  is  not  obtained from the
                                          front end.

                             B1(MO%RLD)   Front end  has  been  reloaded.
                                          This  bit  is reset to zero the
                                          next time I/O  activity  begins
                                          for the card reader.

                             B10(MO%FER)  A    fatal    hardware    error
                                          occurred.     This    condition
                                          generates a software  interrupt
                                          on channel 11 (.ICDAE).

                             B12(MO%EOF)  Card reader is at end of file.

                             B13(MO%IOP)  Input from the card  reader  is
                                          in progress.

                             B14(MO%SER)  A   software    error    (e.g.,
                                          interrupt character) occurred.

                             B15(MO%HE)   A  hardware   error   occurred.
                                          This error generates a software
                                          interrupt   on    channel    11
                                          (.ICDAE).

                             B16(MO%OL)   Card reader is off line.   This
                                          bit is set on the occurrence of
                                          any  hardware  condition   that
                                          requires operator intervention.

                             B17(MO%FNX)  Card reader does not exist.

                             B31(MO%SFL)  The output stacker is full.

                             B32(MO%HEM)  The input hopper is empty.

                             B33(MO%SCK)  A card did not stack  correctly
                                          in the output stacker.

                             B34(MO%PCK)  The card reader failed to  pick
                                          a card correctly from the input
                                          hopper.

                             B35(MO%RCK)  The card reader detected a read
                                          error when reading a card.

   PTY Functions
   ___ _________

   The functions  available  for  pseudo-terminals  (PTY)  are  described
   below.   Some  of  these functions accept arguments in AC3.  (Refer to
   the individual descriptions.)

   Code      Symbol              Meaning

    24       .MOAPI    Assign  PTY  interrupt  channels.   This  function
                       requires AC2 to contain
                       B0(MO%WFI)      enable waiting-for-input interrupt
                       B1(MO%OIR)      enable output-is-ready interrupt
                       B12-B17(MO%SIC) software interrupt channel  number
                                       for   output   to  the  PTY.   The
                                       channel number used for input from
                                       the  PTY  is  one greater than the
                                       channel number used for output  to
                                       the PTY.
                       B18-B35         function code

    25       .MOPIH    Determine if PTY job needs input.  On a successful
                       return,  AC2  contains 0(.MONWI) if PTY job is not
                       waiting for input or contains  -1(.MOWFI)  if  PTY
                       job is waiting for input.

    26       .MOBAT    Set batch control bit.  This function requires AC3
                       to  contain  0(.MONCB)  if  the  job  is not to be
                       controlled by batch or to contain 1(.MOJCB) if the
                       job  is to be controlled by batch.  To obtain this
                       value, the process can  execute  the  GETJI  JSYS,
                       function .JIBAT.

   FE Functions
   __ _________

   Code      Symbol                   Meaning

    3        .MOEOF    Send an end of file to the program  using  the  FE
                       device  on  the  front end.  This function is used
                       for synchronization between a program  running  on
                       the  DECsystem-20  and  a  program  running on the
                       front end.

    4        .MODTE    Assign the specified device to the DTE  controller
                       on  the  front  end.  This function, which must be
                       performed before I/O is  allowed  to  the  device,
                       requires  AC3  to  contain  the  device type.  The
                       process must have  WHEEL  or  OPERATOR  capability
                       enabled.

   TTY Functions
   ___ _________

    25       .MOPIH    Determine if TTY job needs input.  On a successful
                       return,  AC2  contains 0(.MONWI) if TTY job is not
                       waiting for input or contains  -1(.MOWFI)  if  TTY
                       job is waiting for input.

    26       .MOSPD    Set  the  terminal  line  speed.   This   function
                       accepts in AC3 the desired line speed (input speed
                       in the left half and output  speed  in  the  right
                       half).   The  left  half of AC2 contains flag bits
                       indicating  the  type  of  line  being  set.    If
                       B0(MO%RMT)  is  on, the line is a remote (dataset)
                       line.  If B1(MO%AUT) is on, the line is  a  remote
                       autobaud  line  (i.e., is automatically set at 300
                       baud, and the contents of AC3  are  ignored.   The
                       process  must  have  WHEEL  or OPERATOR capability
                       enabled to set B0(MO%RMT) and B1(MO%AUT).

    27       .MORSP    Return the terminal line speed.  On  a  successful
                       return,  the  left  half of AC2 contains flag bits
                       indicating the type of line, and AC3 contains  the
                       speed  (input  speed  in  the left half and output
                       speed in the right half).  If B0(MO%RMT) of AC2 is
                       on,  the  line is a remote line, and if B1(MO%AUT)
                       is on, the line is a remote  autobaud  line.   AC3
                       contains  the speed or contains -1 if the speed is
                       unknown or is not applicable.

    30       .MORLW    Return the terminal page width.  On  a  successful
                       return, AC3 contains the width.

    31       .MOSLW    Set  the  terminal  page  width.   This   function
                       requires AC3 to contain the desired width.

    32       .MORLL    Return the terminal page length.  On a  successful
                       return, AC3 contains the length.

    33       .MOSLL    Set  the  terminal  page  length.   This  function
                       requires AC3 to contain the desired length.

    34       .MOSNT    Specify if  terminal  line  given  in  AC1  is  to
                       receive  system  messages.  This function requires
                       AC3 to contain 0 (.MOSMY) to allow messages  or  1
                       (.MOSMN) to suppress messages.

    35       .MORNT    Return a code indicating if terminal line given in
                       AC1   is   to   receive  system  messages.   On  a
                       successful return,  AC3  contains  0  (.MOSMY)  if
                       messages are being sent to this line or 1 (.MOSMN)
                       if messages are being suppressed to this line.

    36       .MOSIG    Specify if input on this terminal line  is  to  be
                       ignored  when  the  line is inactive (i.e., is not
                       assigned or opened).  This function  requires  AC3
                       to contain 0 if characters on this line are not to
                       be ignored or 1 if characters on this line are  to
                       be  ignored.   When  input  is  being  ignored and
                       characters are typed, no CTRL/G (bell) is sent, as
                       is the normal case when characters are typed on an
|                      inactive line.
|
|  The functions available for DECnet-20  are  described  below.   For  a
|  complete  description  of  their  application,  refer  to  the TOPS-20
|  DECnet-20 Programmer's Guide and Operations Manual.
|
|  Code      Symbol                   Meaning
|
|   24       .MOACN    Allow a network task to enable software  interrupt
|                      channels for any combination of the following work
|                      types:
|
|                           o  connect event pending
|                           o  interrupt message available
|                           o  data available
|
|                      This function  requires  that  AC3  contain  three
|                      9-bit   fields   specifying  the  changes  in  the
|                      interrupt assignments for this link.  These fields
|                      are
|
|                      Field     Symbol    Used to Signal
|
|                      B0-B8     MO%CDN    Connect event pending
|                      B9-B17    MO%INA    Interrupt message available
|                      B18-B26   MO%DAV    Data available
|
|                      The contents of the fields are
|
|                      Value     Meaning
|
|                      nnn       The number of the channel to be enabled;
|                                0-5 and 23-35 decimal
|                      .MOCIA    Clear the interrupt
|                      .MONCI    No change
|
|   25       .MORLS    Read the link status and return a 36-bit  word  of
|                      information  regarding  the  status of the logical
|                      link.  AC3 contains flag bits in the left half and
|                      a  disconnect  code  in  the right half.  The flag
|                      bits are
|
|                      Symbol    Bit       Meaning
|
|                      MO%CON    B0        Link is connected
|                      MO%SRV    B1        Link is a server
|                      MO%WFC    B2        Link is waiting for a connect
|                      MO%WCC    B3        Link is waiting for a  connect
|                                          confirm
|                      MO%EOM    B4        Link has an entire message  to
|                                          be read
|                      MO%ABT    B5        Link has been aborted
|                      MO%SYN    B6        Link has been closed normally
|                      MO%INT    B7        Link has an interrupt  message
|                                          available
|                      MO%LWC    B8        Link   has   been   previously
|                                          connected
|
|                      The disconnect/reject codes are as follows:
|
|                      Symbol    Value     Meaning
|
|                      .DCX0       0       No special error
|                      .DCX1       1       Resource allocation failure
|                      .DCX2       2       Destination  node   does   not
|                                          exist
|                      .DCX3       3       Node shutting down
|                      .DCX4       4       Destination process  does  not
|                                          exist
|                      .DCX5       5       Invalid name field
|                      .DCX11     11       User    abort    (asynchronous
|                                          disconnect)
|                      .DCX32     32       Too many connections to node
|                      .DCX33     33       Too   many   connections    to
|                                          destination process
|                      .DCX34     34       Access not permitted
|                      .DCX35     35       Logical link services mismatch
|                      .DCX36     36       Invalid account
|                      .DCX37     37       Segment size too small
|                      .DCX38     38       Process aborted
|                      .DCX39     39       No path to destination node
|                      .DCX40     40       Link aborted due to data loss
|                      .DCX41     41       Destination process  does  not
|                                          exist
|                      .DCX42     42       Confirmation   of   DISCONNECT
|                                          INITIATE
|                      .DCX43     43       Image data field too long
|
|                      If a disconnect code does not apply to the current
|                      status  of the link, the right half of AC3 will be
|                      zeros.
|
|   26       .MORHN    Return the ASCII name of  the  host  node  at  the
|                      other  end  of  the  logical  link.  This function
|                      requires that AC3 contain a string pointer to  the
|                      location where the host name is to be stored.  (If
|                      the  byte  size  exceeds  eight  bits,  bytes  are
|                      truncated to eight bits.)
|
|                      The monitor call returns with an  updated  pointer
|                      in AC3, and the host name stored as specified.
|
|   27       .MORTN    Return the unique task  name  that  is  associated
|                      with  your  end  of  the logical link.  If you had
|                      defaulted  the  task  name  in  the  network  file
|                      specification,     the     call     returns    the
|                      monitor-supplied task  name.   In  DECnet-20,  the
|                      default task name is actually a unique number.

|                      This function requires that AC3 contain  a  string
|                      pointer  to the location where the task name is to
|                      be stored.  (If the byte size exceeds eight  bits,
|                      bytes are truncated to eight bits.)
|
|                      The monitor call returns with an  updated  pointer
|                      is AC3 and the task name stored as specified.
|
|   30       .MORUS    Return  the  source   task   user   identification
|                      supplied  in  the  connect initiate message.  This
|                      function  requires  that  AC3  contain  a   string
|                      pointer   to   the   location   where   the   user
|                      identification is to be stored.  (If the byte size
|                      exceeds  eight  bits, bytes are truncated to eight
|                      bits.
|
|                      The monitor call returns with an  updated  pointer
|                      in  AC3  and  the  user  identification  stored as
|                      specified.  If no user identification was supplied
|                      by  the source task, AC3 continues to point to the
|                      beginning of the string, and a null is returned as
|                      the only character.
|
|   31       .MORPW    Return the source task's password as  supplied  in
|                      the   connect  initiate  message.   This  function
|                      requires that AC3 contain a string pointer to  the
|                      location  where  the  password  is  to  be stored.
|                      (Passwords  are  binary,  therefore   the   string
|                      pointer should accomodate 8-bit bytes.)
|
|                      The monitor call returns with an  updated  pointer
|                      in  AC3  and  the source task's password stored as
|                      specified.  AC4 contains the number  of  bytes  in
|                      the  string;   a  zero  value  indicates  that  no
|                      password was supplied by the source task.
|
|   32       .MORAC    Return the account string supplied by  the  source
|                      task   in  the  connect  initiate  message.   This
|                      function  requires  that  AC3  contain  a   string
|                      pointer  to  the location where the account string
|                      is to be stored.  (If the byte size exceeds  eight
|                      bits, bytes are truncated to eight bits.)
|
|                      The monitor call return with an updated pointer in
|                      AC3 and the source task's account number stored as
|                      specified.  If no account string was  supplied  by
|                      the  source  task,  AC3  continues to point to the
|                      beginning of the string, and a null is returned as
|                      the only character.
|
|   33       .MORDA    Return the optional data supplied in  any  of  the
|                      connect  or  disconnect  messages.   This function
|                      requires that AC3 contain a string pointer to  the
|                      location  where  the  optional  user data is to be
|                      stored.  (This file is binary;  the string pointer
|                      should specify 8-bit bytes.)
|
|                      The monitor call returns with an  updated  pointer
|                      in  AC3 and the optional data stored as specified.
|                      AC4 contains the  number  of  bytes  in  the  data
|                      string;   a  zero value indicates that no optional
|                      data was supplied.

|   34       .MORCN    Return the object type that was used by the source
|                      task  to  address  this  connection.   The  result
|                      indicates whether the local task was addressed  by
|                      its generic type or its unique network task name.
|
|                      The monitor call returns with the object  type  is
|                      AC3.  A zero object type indicates that the target
|                      task was addressed  by  its  unique  network  task
|                      name;   a  nonzero  value  indicates  that  it was
|                      addressed by its generic object type.
|
|   35       .MORIM    Read interrupt message.   This  function  requires
|                      that  AC3  contain a byte pointer to the receiving
|                      buffer.  (If the byte  size  exceeds  eight  bits,
|                      bytes  are  truncated to eight bits.)  The maximum
|                      message length is 16 bytes, and  the  buffer  size
|                      should be at least 8 bits.
|
|                      The monitor call returns with an  updated  pointer
|                      in  AC3, the message stored in the buffer, and the
|                      count of bytes received in AC4.
|
|   36       .MOSIM    Send an interrupt message.  This function requires
|                      that  AC3  contain  a  byte pointer to the message
|                      (eight bytes maximum) and the AC4 contain a  count
|                      of  the  bytes  in  the interrupt message (sixteen
|                      bytes maximum).
|
|   37       .MOROD    Return the unique  identification  of  the  source
|                      task.   This  identification  is  in the format of
|                      object-descriptor, and the contents depend on  the
|                      DECnet  implementation  on  the  remote  host.  In
|                      addition, if the  source  task  is  running  on  a
|                      system  that  provides  for  group and user codes,
|                      this information is also returned.  If the  source
|                      task  name  is  on  a  DECnet-20  host,  the  data
|                      returned is TASK-taskname.  This function requires
|                      that  AC3 contain a string pointer to the location
|                      where the object-descriptor of the source task  is
|                      to  be  stored.   (If  the byte size exceeds eight
|                      bits, bytes are truncated to eight bits.)
|
|                      The monitor call returns with an  updated  pointer
|                      in   AC3   and  the  object-descriptor  stored  as
|                      specified.  In addition, if the source host system
|                      uses  group  and user codes (sometimes referred to
|                      as project and programmer  number  or  p,pn),  AC4
|                      contains  the  group code in the left half and the
|                      user code in the right half.  If the  source  host
|                      system  does  not provide for group or user codes,
|                      AC4 contains zeros.
|
|   40       .MOCLZ    Reject   a   connection   either   implicitly   or
|                      explicitly.   If  the  target  task closes its JFN
|                      (via the CLOSF monitor call) before accepting  the
|                      connection  either  implicitly  or explicitly, the
|                      local NSM assumes that the connection is  rejected
|                      and  sends  a  connect  reject message back to the
|                      source task.  The reason given is process  aborted
|                      (reject code 38).  The target task must the reopen
|                      its JFN in order  to  receive  subsequent  connect
|                      initiate messages.

|                      In order to explicitly reject a connect and at the
|                      same  time return a specific reject reason and set
|                      up 16 bytes of user data, the target task must use
|                      the  .MOCLZ  function  of  the MTOPR monitor call.
|                      The .MOLCZ function does not close the JFN.
|
|                      This function requires that
|
|                           AC2 contain a reject code in  the  left  half
|                           and  .MOCLZ  in  the  right half.  The reject
|                           code is a 2-byte, NSP-defined decimal  number
|                           indicating  the  reason that a target task is
|                           rejecting  a  connection.    Refer   to   the
|                           description of code 25, .MORLS, for a list of
|                           disconnect/reject codes.
|
|                           AC3 contain a string pointer to any  data  to
|                           be returned.  (If the byte size exceeds eight
|                           bits, bytes are truncated to eight bits.)
|
|                           AC4 contain the count of bytes  in  the  data
|                           string  (maximum=16).   A  zero  indicates no
|                           data
|
|   41       .MOCC     Accept   a   connection   either   implicitly   or
|                      explicitly.   Under  certain conditions, the local
|                      NSP assumes that the connection  is  accepted  and
|                      sends a connect confirm message back to the source
|                      task.  These implicit conditions are
|
|                           The target task attempts  to  output  to  the
|                           logical  link (issues a SOUT or SOUTR monitor
|                           call to the network).
|
|                           The target task submits a read request to the
|                           logical  link  (issues  a SIN or SINR monitor
|                           call to the network).
|
|                           The target task is in input wait  state  (has
|                           enabled   itself   for   a  "data  available"
|                           software interrupt).
|
|                      In order to explicitly accept a connect  and  also
|                      return  a  limited amount of data, the target task
|                      must use the .MOCC function of the  MTOPR  monitor
|                      call.   This  function requires that AC3 contain a
|                      string pointer to any data to  be  returned.   (If
|                      byte  size exceeds eight bits, bytes are truncated
|                      to eight bits.)  AC4 must  contain  the  count  of
|                      bytes in the data string to a maximum of 16 bytes.
|                      A zero indicates no data.
|
|   42       .MORSS    Returns the maximum segment size that can be  sent
|                      over  this  link.  This value is the lesser of the
|                      maximum segment sizes supported by the remote  NSP
|                      task  and the remote network task.  The local task
|                      can use this value to optimize the format of  data
|                      being transmitted over the link.
|
|                      The monitor call returns the maximum segment size,
|                      in bytes, in AC3.

   Generates an illegal instruction interrupt on error conditions below.

   MTOPR ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer  DESX5:
   file is not open

   IOX5:     device or data error

   MTOX1:    invalid function

   MTOX2:    record size was not set before I/O was done

   MTOX3:    function not legal in dump mode

   MTOX4:    invalid record size

   MTOX5:    invalid hardware data mode for magnetic tape

   MTOX6:    invalid magnetic tape density

   MTOX7:    WHEEL or OPERATOR capability required

   MTOX8:    argument block too long

   MTOX9:    output still pending

   MTOX10:   VFU or RAM file cannot be OPENed

   MTOX11:   data too large for buffers

   MTOX12:   input error or not all data read

   MTOX13:   argument block too small

   MTOX14:   invalid software interrupt channel number

   MTOX15:   device does not have Direct Access (programmable) VFU

   MTOX16:   VFU or Translation RAM file must be on disk

   MTOX17:   device is not on line

   MTOX18:   invalid software interrupt channel number

   MTOX19:   invalid terminal line width

   MTOX20:   invalid terminal line length

   TTYX01:   line is not active

                             MUTIL     JSYS 512

   Performs   various   IPCF   (Inter-Process   Communication   Facility)
   functions,  such  as  enabling and disabling PIDs, assigning PIDs, and
   setting quotas.  Refer to the DECsystem-20 Monitor Calls User's  Guide
   for  an  overview  and  description of the Inter-Process Communication
   Facility.

   ACCEPTS IN AC1:  length of argument block

              AC2:  address of argument block

   RETURNS     +1:  failure, error code in AC1

               +2:  success.  Responses from the requested  function  are
                    returned in the argument block.

   The format of the argument block is as follows:

        Word                          Meaning

          0            Code of desired function.  (See below.)
        1 through n    Arguments   for   the   desired   function.    The
                       arguments, which depend on the function requested,
                       begin in word 1 and are given in the  order  shown
                       below.   Responses from the requested function are
                       returned in these words.

   The available functions, along with  their  arguments,  are  described
   below.

   Code      Symbol                   Meaning

     1       .MUENB    Enable the specified PID to receive  packets.   If
                       the caller is not the owner of the PID, the caller
                       must have IPCF capability enabled.

                       Argument

                          PID

     2       .MUDIS    Disable the specified PID from receiving  packets.
                       If  the  caller  is  not the owner of the PID, the
                       caller must have IPCF capability enabled.

                       Argument

                          PID

     3       .MUGTI    Return the PID associated with <SYSTEM>INFO.   The
                       PID is returned in word 2 of the argument block.

                       Argument

                          PID or job number

     4       .MUCPI    Create a private  copy  of  <SYSTEM>INFO  for  the
                       specified   job.   The  caller  must  have  WHEEL,
                       OPERATOR, or IPCF capability enabled.

                       Arguments

                          PID to be assigned to <SYSTEM>INFO
                          PID or number of job creating private copy

     5       .MUDES    Delete the specified PID.  The caller must own the
                       PID being deleted.

                       Argument

                          PID

     6       .MUCRE    Creates a PID for the specified  process  or  job.
                       The  flags that can be specified are B6(IP%JWP) to
                       make the PID job wide and  B7(IP%NOA)  to  prevent
                       access  to  PID  from other processes.  The caller
                       must have  IPCF  capability  enabled  if  the  job
                       number  given  is not that of the caller.  The PID
                       created is returned in  word  2  of  the  argument
                       block.

                       Argument

                          flags,,process handle or job number

     7       .MUSSQ    Set send and receive quotas for the specified PID.
                       The caller must have IPCF capability enabled.  The
                       new send quota is given in B18-B26,  and  the  new
                       receive quota is given in B27-B35.

                       Arguments

                          PID
                          new quotas

     10      .MUCHO    Change  the  job  number   associated   with   the
                       specified  PID.   The  caller  must  have WHEEL or
                       OPERATOR capability enabled.

                       Arguments

                          PID
                          new job number or PID belonging to new job

     11      .MUFOJ    Return  the  job  number   associated   with   the
                       specified PID.  The job number is returned in word
                       2 of the argument block.

                       Argument

                          PID

     12      .MUFJP    Return all PIDs associated with the specified job.
                       Two  words are returned, starting in word 2 of the
                       argument block, for each PID.  The first  word  is
                       the  PID.   The  second word has B6(IP%JWP) set if
                       the PID is job wide and B7(IP%NOA) set if the  PID
                       is not accessible by other processes.  The list is
                       terminated by a 0 PID.

                       Argument

                          job number or PID belonging to that job

     13      .MUFSQ    Return  the  send  and  receive  quotas  for   the
                       specified  PID.  The quotas are returned in word 2
                       of the argument  block  with  the  send  quota  in
                       B18-B26 and the receive quota in B27-B35.

                       Argument

                          PID

     15      .MUFFP    Return all PIDs associated with the  same  process
                       as  that  of  the specified PID.  The list of PIDs
                       returned  is  in  the  same  format  as  the  list
                       returned for the .MUFJP function (12).

                       Argument

                          PID

     16      .MUSPQ    Set the maximum number of  PIDs  allowed  for  the
                       specified   job.    The   caller  must  have  IPCF
                       capability enabled.

                       Arguments

                          job number or PID
                          PID quota

     17      .MUFPQ    Return the maximum number of PIDs allowed for  the
                       specified  job.  The PID quota is returned in word
                       2 of the argument block.

                       Argument

                          job number or PID

     20      .MUQRY    Return the Packet Descriptor Block  for  the  next
                       packet  in the queue associated with the specified
                       PID.   An  argument  of  -1   returns   the   next
                       descriptor  block for the process, and an argument
                       of -2 returns the next descriptor  block  for  the
                       job.  The descriptor block is returned starting in
                       word 1 of the argument block.

                       Argument

                          PID

     21      .MUAPF    Associate the PID with the specified process.

                       Arguments

                          PID
                          process handle

     22      .MUPIC    Place the specified PID on  a  software  interrupt
                       channel.   An  interrupt  is then generated when a
                       message is received in the input queue  associated
                       with  the  PID.  If the channel number is given as
                       -1, the PID is removed from its current channel.

                       Arguments

                          PID
                          channel number

     23      .MUDFI    Set the PID of <SYSTEM>INFO.  An error is given if
                       <SYSTEM>INFO  already  has a PID.  The caller must
                       have IPCF capability enabled.

                       Argument

                          PID of <SYSTEM>INFO

     24      .MUSSP    Place the specified PID into the system PID  table
                       at  the given offset.  The caller must have WHEEL,
                       OPERATOR, or IPCF capability enabled.

                       Arguments

                          index into system PID table
                          PID

     25      .MURSP    Return a PID from the system PID table.   The  PID
                       is  returned in word 2 of the argument block.  The
                       system  PID  table  currently  has  the  following
                       entries:

                          0  .SPIPC   Reserved for DEC
                          1  .SPINF   PID of <SYSTEM>INFO
                          2  .SPQSR   PID of QUASAR
                          3  .SPMDA   PID of QSRMDA

                       Argument

                          index into system PID table

     26      .MUMPS    Return the maximum packet size for  the  specified
                       PID.   The  size  is  returned  in  word  2 of the
                       argument block.

                       Argument

                          PID

   MUTIL ERROR MNEMONICS:

   IPCFX2:   no message for this PID

   IPCFX3:   data too long for user's buffer

   IPCFX4:   receiver's PID invalid

   IPCFX5:   receiver's PID disabled

   IPCFX6:   send quota exceeded

   IPCFX7:   receiver quota exceeded

   IPCFX8:   IPCF free space exhausted

   IPCFX9:   sender's PID invalid

   IPCF10:   WHEEL capability required

   IPCF11:   WHEEL or IPCF capability required

   IPCF12:   no free PID's available

   IPCF13:   PID quota exceeded

   IPCF14:   no PID's available to this job

   IPCF15:   no PID's available to this process

   IPCF16:   receive and message data modes do not match

   IPCF17:   argument block too small

   IPCF18:   invalid MUTIL JSYS function

   IPCF19:   no PID for [SYSTEM]INFO

   IPCF20:   invalid process handle

   IPCF21:   invalid job number

   IPCF22:   invalid software interrupt channel number

   IPCF23:   [SYSTEM]INFO already exists

   IPCF24:   invalid message size

   IPCF25:   PID does not belong to this job

   IPCF26:   PID does not belong to this process

   IPCF27:   PID is not defined

   IPCF28:   PID not accessible by this process

   IPCF29:   PID already being used by another process

   IPCF30:   job is not logged in

   IPCF32:   page is not private

   IPCF33:   invalid index into system PID table

   IPCF35:   invalid IPCF quota