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

                              NIN     JSYS 225

   Inputs an integer number, with  leading  spaces  ignored.   This  call
   terminates on the first character not in the specified radix.  If that
   character is a carriage return followed by a line feed, the line  feed
   is also input.

   ACCEPTS IN AC1:  source designator

              AC3:  radix (2-10) of number being input

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

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

   NIN ERROR MNEMONICS:

   IFIXX1:   radix is not in range 2 to 10

   IFIXX2:   first nonspace character is not a digit

   IFIXX3:   overflow (number is greater than 2**35)

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

|  DESX5:    file is not open
|
|
|
|
|

|                            NODE     JSYS 567
|
|
|  Performs the following network  utility  functions:   set  local  node
|  name,  get  local  node  name,  set  local node number, get local node
|  number, set loopback port, clear  loopback  port,  and  find  loopback
|  port.
|
|  ACCEPTS IN AC1:  function code
|
|             AC2:  address of argument block
|
|  RETURNS    +1:   always.  If an error occurs, an  illegal  instruction
|                   trap is generated.
|
|  The available functions and their argument blocks are described below.
|
|    0       .NDSLN    Set local node name
|
|                      Argument Block
|
|                      0    .NDNOD    Pointer to ASCIZ node name.
|
|    1       .NDGLN    Get local node name

|                      Argument Block
|
|                      0    .NDNOD    Pointer to  destination  for  ASCIZ
|                                     name of local node.
|
|    2       .NDSNM    Set local node number
|
|                      Argument Block
|
|                      0    Number to set (greater than 2, less than 127)
|
|    3       .NDGNM    Get local node number.
|
|    4       .NDSLP    Set loopback port^1
|
|
|                      Argument Block
|
|                      0    .NDPRT NSP port number.
|
|                      1    .BTLID Pointer to line id.
|
|    5       .NDCLP    Clear loopback port^1
|
|                      Argument Block
|
|                      0    .NDPRT    NSP port number.
|
|    6       .NDFLP    Find loopback port^1
|
|                      Argument Block
|
|                      0    .NDPRT    NSP port number
|
|                                     1B0 (ND%LPR) Loopback running.
|
|                                     1B1    (ND%LPA)    Loopback    port
|                                     assigned.
|
|  NODE ERROR MNEMONICS:
|
|  ARGX02:   Invalid function
|
|  ARGX19:   Invalid unit number
|
|  CAPX2:    WHEEL, OPERATOR, or MAINTENANCE capability required
|
|  NODX02:   Line not turned off
|
|  NODX03:   Another line already looped

|  ------------------
|  1. DECSYSTEM-2020 only.

                             NOUT     JSYS 224

   Outputs an integer number.

   ACCEPTS IN AC1:  destination designator

              AC2:  number to be output

              AC3:  B0(NO%MAG) output the magnitude.  That is, output the
                               number as an unsigned 36-bit number (e.g.,
                               output -1 as 777777 777777).

                    B1(NO%SGN) output a plus sign for a positive number.

                    B2(NO%LFL) output leading filler.  If this bit is not
                               set,  trailing  filler  is output, and bit
                               3(NO%ZRO) is ignored.

                    B3(NO%ZRO) output 0's as the leading  filler  if  the
                               specified   number   of  columns  (NO%COL)
                               allows filling.  If this bit is  not  set,
                               blanks are output as leading filler if the
                               number of columns allows filling.

                    B4(NO%OOV) output on column overflow  and  return  an
                               error.   If  this  bit  is not set, column
                               overflow is not output.

                    B5(NO%AST) output asterisks on column  overflow.   If
                               this  bit is not set and bit 4 (NO%OOV) is
                               set, all necessary digits  are  output  on
                               column overflow.

                    B11-B17    number of columns (including  sign column)
                    (NO%COL)   to output.  If this field is  0,  as  many
                               columns as necessary are output.

                    B18-B35    radix (2-36) of number being output
                    (NO%RDX)

   RETURNS     +1:  failure, error code in AC3

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

   NOUT ERROR MNEMONICS:

   NOUTX1:   radix is not in range 2 to 36

   NOUTX2:   column overflow

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   IOX11:    quota exceeded or disk full

                             ODCNV     JSYS 222

   Converts the internal date and time format into separate  numbers  for
   local  weekday,  day,  month,  year, and time and does not convert the
   numbers to text.  (Refer to Section 2.8.2 for more  information.)  The
   ODCNV  call  gives  the caller the option of explicitly specifying the
   time zone and daylight savings time.

   ACCEPTS IN AC2:  internal date and time, or -1 for  current  date  and
                    time

              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 date.

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

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

                    B3(IC%JUD) apply Julian day format (Jan 1 is day 1 in
                               conversion)

                    B12-B17    time zone to use if B2(IC%UTZ) is on.
                    (IC%TMZ)

   RETURNS     +1:  always, with

                    AC2 containing the year in the  left  half,  and  the
                        numerical month (0=January) in the right half.

                    AC3 containing the day of the month (0=first day)  in
                        the left half, and the day of the week (0=Monday)
                        in the right half.

                    AC4 containing

                        B0 and B2   on for compatibility with  the  IDCNV
                                    call
                        B1(IC%ADS)  on if daylight savings was applied
                        B3(IC%JUD)  on if Julian day format was applied
                        B12-B17     time zone used
                        (IC%TMZ)
                        B18-B35     local time in seconds since midnight
                        (IC%TIM)

   Generates an illegal instruction interrupt on error conditions below.

   ODCNV ERROR MNEMONICS:

   DATEX6:   system date and time are not set

   TIMEX1:   time cannot be greater than 24 hours

   ZONEX1:   time zone out of range

                             ODTIM     JSYS 220

   Outputs the date and time by converting the  internal  format  of  the
   date and/or time to text.  (Refer to Section 2.8.2.)

   ACCEPTS IN AC1:  destination designator

              AC2:  internal date and time, or -1 for  current  date  and
                    time

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

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

   The format option flags in AC3 indicate the format in which  the  date
   and time are to be output.

                             ODTIM Option Flags
                             _____ ______ _____

      B0(OT%NDA)  do not output the date and ignore B1-B8.

      B1(OT%DAY)  output the day of the  week  according  to  the  format
                  specified by B2(OT%FDY).

      B2(OT%FDY)  output the full text for the day of the week.  If  this
                  bit is off, the 3-letter abbreviation of the day of the
                  week is output.

      B3(OT%NMN)  output the month as numeric and ignore B4(OT%FMN).

      B4(OT%FMN)  output the full text for the month.   If  this  bit  is
                  off, the 3-letter abbreviation of the month is output.

      B5(OT%4YR)  output the year as a 4-digit number.  If  this  bit  is
                  off,  the year is output as a 2-digit number if between
                  1900 and 1999.

      B6(OT%DAM)  output the day of the month after the month.   If  this
                  bit is off, the day is output before the month.

      B7(OT%SPA)  output  the   date   with   spaces  between  the  items
                  (e.g.,    6 Feb 76).  If B6(OT%DAM) is also on, a comma
                  is output after the day of the month (e.g., Feb 6, 76).

      B8(OT%SLA)  output the date with slashes (e.g., 2/6/76).

                  If B7-B8 are both off, the date is output  with  dashes
                  between the items (e.g., 6-Feb-76).

      B9(OT%NTM)  do not output the time and ignore B10-B13.

      B10(OT%NSC) do not output the seconds.  If this  bit  is  off,  the
                  seconds are output, preceded by a colon.

      B11(OT%12H) output the  time  in  12-hour  format  with  AM  or  PM
                  following  the  time.   If this bit is off, the time is
                  output in 24-hour format.

      B12(OT%NCO) output the time without a colon between the  hours  and
                  minutes.

      B13(OT%TMZ) output the time and follow it with a  "-"  and  a  time
                  zone (e.g., -EDT).

      B17(OT%SCL) suppress columnation of the date and time  by  omitting
                  leading  spaces  and  zeros.  This produces appropriate
                  output for a message.  If this bit is off, the date and
                  time are output in columns of constant width regardless
                  of the particular date or time.  However, full texts of
                  months and weekdays are not columnated.  This output is
                  appropriate for tables.

   If AC3 is 0, the ODTIM call outputs the date and time  in  columns  in
   the format

             dd-mmm-yy  hh:mm:ss

   For example, 6-Feb-76  15:14:03.

   If  AC3  is  -1,  the  ODTIM  call  interprets  the  contents  as   if
   B1-B2,B4-B7,  and B17 were on (i.e., AC3=336001000000) and outputs the
   date and time in the format

             weekday, month day, year hh:mm:ss

   as in Friday, February 6, 1976  15:14:03

   Additional examples are:

        Contents of AC3     Typical Text

        202201000000        Fri 6 Feb 76 1:06
        336321000000        Friday, February 6, 1976 1:06AM-EST
        041041000000        6/2/76 106:03
        041040000000        6/02/76 106:03

   Generates an illegal instruction interrupt on error conditions below.

   ODTIM ERROR MNEMONICS:

   DATEX6:   system date and time are not set

   TIMEX1:   time cannot be greater than 24 hours

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

                             ODTNC     JSYS 230

   Outputs the date and/or the time as separate numbers for  local  year,
   month,  day, or time.  (Refer to Section 2.8.2.) This JSYS is a subset
   of the ODTIM call because the output of dates and times not stored  in
   internal  format  is permitted.  Also, the caller has control over the
   time and zone printed.

   ACCEPTS IN AC1:  destination designator

              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
                    day  of the week (0=Monday), if desired, in the right
                    half

              AC4:  B1(IC%ADS)      apply daylight savings on output

                    B3(IC%JUD)      apply Julian day format on output

                    B12-B17(IC%TMZ) time zone in which to output

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

              AC5:  format  option  flags  (refer  to   ODTIM   for   the
                    description of these flags)

                                            NOTE

                        The only time zones that  can  be  output  by
                        B13(OT%TMZ) are Greenwich and USA zones.

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

   Generates an illegal instruction interrupt on error conditions below.

   ODTNC ERROR MNEMONICS:

   DATEX1:   year out of range

   DATEX2:   month is not less than 12

   DATEX3:   day of month too large

   DATEX4:   day of week is not less than 7

   ZONEX1:   time zone out or range

   ODTNX1:   time zone must be USA or Greenwich

   All I/O errors can occur.  These errors cause software  interrupts  or
   process terminations as described for the BOUT call description.

                             OPENF     JSYS 21

   Opens the given file.  Refer to the DECsystem-20 Monitor Calls  User's
   Guide for the explanations of the types of access allowed to a file.

   ACCEPTS IN AC1:  JFN in the right half of the file being opened.

              AC2:  B0-B5(OF%BSZ) Byte size (maximum of 36 decimal).

                    B6-B9(OF%MOD) File data mode.  A value of 0 indicates
                                  normal  data  mode for the device (dump
                                  mode  is  illegal).   A  value  of   17
                                  indicates   dump   mode  (byte  I/O  is
                                  illegal and byte size is  ignored).   A
                                  value  of  10  indicates  image mode, a
                                  value  of  13  indicates  image  binary
                                  mode,  and  a  value  of  14  indicates
                                  binary mode.

                    B18(OF%HER)   Halt on I/O device or data  error.   If
                                  this  bit  is on and a condition occurs
                                  that causes an I/O device or data error
                                  interrupt,  the process will instead be
                                  halted,  and  an  illegal   instruction
                                  interrupt  will  be generated.  If this
                                  bit is off and  the  condition  occurs,
                                  the   interrupt  is  generated  on  its
                                  normally-assigned channel.

                    B19(OF%RD)    Allow read access.

                    B20(OF%WR)    Allow write access.

                    B21(OF%EX)    Reserved for future use.

                    B22(OF%APP)   Allow append access.

                    B25(OF%THW)   Allow thawed access.  If  this  bit  is
                                  off,  the  file  is  opened  for frozen
                                  access.

                    B26(OF%AWT)   Block program and print  a  message  on
                                  the   job's   controlling  terminal  if
                                  access to  file  cannot  be  permitted.
                                  The  program is blocked until access is
                                  granted.

                    B27(OF%PDT)   Do not update access dates of the file.

                    B28(OF%NWT)   Return  an  error  if  access  to  file
                                  cannot be permitted.

                                  If  B26  and  B28  are  both  off,  the
                                  default is to return an error if access
                                  to the file cannot be granted.

                    B29(OF%RTD)   Allow restricted  access  (i.e.,  allow
                                  only one process to access the file).

                    B30(OF%PLN)   Disable  line   number   checking   and
                                  consider  a line number as 5 characters
                                  of text.

                    B31(OF%DUD)   Suppress   the   system   updating   of
                                  modified  pages  in  memory  to  thawed
                                  files on the disk.

                    B32(OF%OFL)   Open the device even if it is off line.

   RETURNS     +1:  failure, error code in AC1

               +2:  success

   A byte size of 0 opens the file in 36-bit (full word) bytes and can be
   given  when  subsequent  I/O  will be done with the PMAP call.  A byte
   size of 8 given for a JFN referring to a terminal opens  the  terminal
   in  binary mode.  (Refer to Section 2.4.3.) A byte size of 8 given for
   a JFN referring to a line printer opens  the  printer  in  8-bit  byte
   mode,  thereby  allowing  the  data  to  be  accessed  with 8-bit byte
   pointers.  (Refer to Section 2.4.1.) A byte size other  than  8  given
   for the printer results in using 7-bit bytes.

                                    NOTE

                  For sequential  I/O,  bytes  are  packed
                  into  a  36-bit  monitor  buffer and are
                  unpacked by a pointer standard  for  the
                  device  and  data  mode being used.  For
                  example, a byte size of 7 (which is  the
                  system standard for ASCII data) causes 5
                  7-bit bytes to be packed into the buffer
                  with  the  setting  of the remaining bit
                  being unpredictable.  If a byte size  is
                  then  used that retrieves all 36 bits of
                  data from the buffer, the  last  bit  of
                  each word is indeterminate.

   Even though each type of desired access can be indicated by a separate
   bit,  some  accesses  are  implied  when  specific  bits are set.  For
   example, the setting of the write access bit implies  read  access  if
   the process is allowed to read the file according to the file's access
   code.  This means that if the process has access to read the file  and
   it  sets  only  the  write  access bit, the process will have the file
   opened for read, write, and execute access.  However, if  an  existing
   file is opened and only write access is specified (only OF%WR is set),
   the contents of the file are  deleted,  and  the  file  is  considered
   empty.  Thus, to update an existing file, both OF%RD and OF%WR must be
   set.

   The CLOSF monitor call can be used to close a specific file.

   OPENF ERROR MNEMONICS:

   OPNX1:    file is already open

   OPNX2:    file does not exist

   OPNX3:    read access required

   OPNX4:    write access required

   OPNX5:    execute access required

   OPNX6:    append access required

   OPNX7:    device already assigned to another job

   OPNX8:    device is not on line

   OPNX9:    invalid simultaneous access

   OPNX10:   entire file structure full

   OPNX12:   list access required

   OPNX13:   invalid access requested

   OPNX14:   invalid mode requested

   OPNX15:   read/write access required

   OPNX16:   file has bad index block

   OPNX17:   no room in job for long file page table

   OPNX18:   Unit Record Devices are not available

   OPNX23:   disk quota exceeded

   OPNX25:   device is write-locked

   OPNX26:   illegal to open a string pointer

   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

   SFBSX2:   invalid byte size

   TTYX01:   line is not active

                              PBIN     JSYS 73

   Inputs the next sequential byte from  the  primary  input  designator.
   This call is equivalent to a BIN call with the source designator given
   as .PRIIN.

   RETURNS     +1:  always, with the byte right-justified in AC1

   Can cause several  software  interrupts  or  process  terminations  on
   certain  file  conditions.   (Refer  to  bit  OF%HER of the OPENF call
   description.)

   PBIN ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX5:    file is not open

   IOX1:     file is not open for reading

   IOX4:     end of file reached

   IOX5:     device or data error

                             PBOUT     JSYS 74

   Outputs a byte sequentially to the primary  output  designator.   This
   call  is  equivalent  to  a  BOUT call with the destination designator
   given as .PRIOU.

   ACCEPTS IN AC1:  byte to be output, right-justified

   RETURNS     +1:  always

   Can cause several  software  interrupts  or  process  terminations  on
   certain  file  conditions.   (Refer  to  bit  OF%HER of the OPENF call
   description.)

   PBOUT ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   IOX2:     file is not open for writing

   IOX5:     device or data error

   IOX6:     illegal to write beyond absolute end of file

   IOX11:    quota exceeded or disk full

                             PEEK     JSYS 311

   Transfers a block of words from the monitor to the  user  space.   The
   desired  monitor  pages  must  have read access.  This monitor call is
   used to obtain data from the monitor for maintenance and test purposes
   and should be executed only when GETAB information is not available.

   ACCEPTS IN AC1:  word count  in  the  left  half,  and  first  virtual
                    address of the monitor in the right half

              AC2:  first user address

   RETURNS     +1:  failure, error code in AC1

               +2:  success, the desired words are transferred.

   The PEEK monitor call requires the process to  have  the  MAINTENANCE,
   WHEEL, or OPERATOR capability enabled.

   PEEK ERROR MNEMONICS:

   CAPX1:    WHEEL or OPERATOR capability required

   PEEKX2:   read access failure on monitor page

|
|
|
|
|

|                            PLOCK     JSYS 561
|
|
|  Acquires physical memory  and  places  a  designated  section  of  the
|  process'  address  space in memory.  Allows the process to specify the
|  memory pages to be used, or permits the system to  select  the  pages.
|  The  PLOCK  monitor call requires the process to have WHEEL, OPERATOR,
|  or MAINTENANCE capability enabled.
|
|  ACCEPTS IN AC1:  address of first page if acquiring (locking) or -1 if
|                   unlocking.
|
|             AC2:  process handle (currently .FHSLF only)  in  the  left
|                   half and number of first page in the right half.
|
|             AC3:  control flags in the left half and  repeat  count  in
|                   the right half.  The control flags are
|
|                   B0 (LK%CNT) right half of AC3 contains a count of the
|                               number of pages to lock.
|
|                   B1 (LK%PHY) value in AC1 is the first  page  desired.
|                               If this bit is off and AC1 is not -1, the
|                               system selects pages.
|
|                   B2 (LK%NCH) pages will not be cached.
|
|                   B3 (LK%AOL) off-line pages are to be locked.
|
|  RETURNS     +1:  always
|
|  If the PLOCK call is unable to honor any one of the requests to unlock
|  any one of the pages specified by the repeat count, it will unlock all
|  of the others.
|
|  A page that was locked with the PLOCK call may be unmapped.  (Refer to
|  the PMAP call.)  This will unlock the process' page and return the now
|  unlocked physical page to its previous state.
|
|  The page selected by the user must be capable of being placed off-line
|  for the PLOCK call to acquire it.
|
|  Generates an illegal instruction interrupt on error conditions below.
|
|  PLOCK ERROR MNEMONICS:
|
|  ARGX22:   invalid flag
|
|  ARGX24    invalid count


                                 CHAPTER 3

                           TOPS-20 MONITOR CALLS
                           _______ _______ _____

                              PMAP     JSYS 56

   Maps one or more complete pages from a file to a process (for  input),
   from  a process to a file (for output), or from one process to another
   process.  Each of the three uses of PMAP is described below.

   Case I Mapping File Pages to a Process
   ____ _ _______ ____ _____ __ _ _______

   This use of the PMAP call does not actually  transfer  any  data;   it
   simply  changes  the  contents of the process' page map.  When changes
   are made to the  page  in  the  process,  the  changes  will  also  be
   reflected  in the page in the file, if write access has been specified
   for the file.

   ACCEPTS IN AC1:  JFN of the file in the left half, and the page number
                    in  the file in the right half.  This AC contains the
                    source.

              AC2:  process handle in the left half, and the page  number
                    in  the  process in the right half.  This AC contains
                    the destination.

              AC3:  B0(PM%CNT)  A count is in  the  right  half  of  AC3.
                                This   count   specifies  the  number  of
                                sequential pages to be mapped.

                    B2(PM%RD)   Permit read access to the page.

                    B3(PM%WR)   Permit write access to the page.

                    B4(PM%EX)   Reserved for future use.
                                The symbol PM%RWX  can  be  used  to  set
                                B2-B4.

                    B5(PM%PLD)  Preload the page being mapped (i.e., move
                                the  page  immediately instead of waiting
                                until it is referenced).

                    B9(PM%CPY)  Create a private copy of the page when it
                                is  written into (copy-on-write).  If the
                                page  is  mapped  between  two  processes
                                (Case  III  below),  both  processes will
                                receive a private copy of the page.

                    B18-B35     Number  of  pages   to   be   mapped   if
                    (PM%RPT)    B0(PM%CNT) is set.

   RETURNS     +1:  always

   This use of PMAP changes the map of the process such that addresses in
   the  page  in  the process specified by the right half of AC2 actually
   refer to the page in the file specified by the right half of AC1.  The
   present  contents of the page in the process are removed.  If the page
   in the file is currently nonexistent, it will be created  when  it  is
   written (i.e., when the corresponding page in the process is written).

   This use of PMAP is legal only if the file is opened for at least read
   access.  The access bits specified in the PMAP call are ANDed with the
   access  that  was  specified  when  the  file  was  opened.   However,
   copy-on-write is always granted, regardless of the file's access.  The
   access granted is placed in the process' map.

   The file cannot be closed while any of its pages are mapped  into  any
   process.  Thus, before the file is closed, pages must be unmapped from
   each process by a PMAP call with -1 in AC1 (see below).

   Case II Mapping Process Pages to a File
   ____ __ _______ _______ _____ __ _ ____

   This use of the PMAP  call  actually  transfers  data  by  moving  the
   contents of the specified page in the process to the specified page in
   the file.  The process' map for that page becomes empty.

   ACCEPTS IN AC1:  process handle in the left half, and the page  number
                    in  the  process in the right half.  This AC contains
                    the source.

              AC2:  JFN of the file in the left half, and the page number
                    in  the file in the right half.  This AC contains the
                    destination.

              AC3:  access bits and repetition count.  (Refer to Case I.)

   RETURNS     +1:  always

   The process page and  the  file  page  must  be  private  pages.   The
   ownership  of  the  process page is transferred to the file page.  The
   present contents of the page in the file is deleted.

   The access granted to the file page is determined by ANDing the access
   specified in the PMAP call with the access specified when the file was
   opened.

   When mapping pages from a process to  a  file,  the  end-of-file  byte
   pointer  and  the  byte size are not automatically updated in the File
   Descriptor Block (FDB).  To allow the file to be read  later  via  the
   sequential  I/O calls (e.g., BIN, SIN), the process executing the PMAP
   call should close the file keeping the JFN (CLOSF call,  bit  CO%NRJ),
   update the byte pointer and the byte size in the FDB (CHFDB call), and
   then release the JFN (RLJFN call).  (Refer to Section  2.2.8  for  the
   format of the FDB fields.)

   Case III Mapping One Process' Pages to Another Process
   ____ ___ _______ ___ ________ _____ __ _______ _______

   This use of the PMAP call normally does not  transfer  any  data;   it
   simply  changes  the contents of the page maps of the processes.  When
   changes are made to the page in one process, the changes will also  be
   reflected in the corresponding page in the other process.

   ACCEPTS IN AC1:  process handle in the left half, and the page  number
                    in  the  process in the right half.  This AC contains
                    the source.

              AC2:  a second process handle in the left  half,  and  page
                    number  in  that  process in the right half.  This AC
                    contains the destination.

              AC3:  access bits and repetition count.  (Refer to Case I.)

   RETURNS     +1:  always

   This use of PMAP changes the map of the destination process such  that
   addresses  in  the  page  specified  by the right half of AC2 actually
   refer to the page in the source process specified by the right half of
   AC1.  The present contents of the destination page are deleted.

   The access granted to the destination page is determined by the access
   specified in the PMAP call.

   Unmapping Pages In a Process
   _________ _____ __ _ _______

   As stated previously, a file cannot be closed if any of its pages  are
   mapped  in  any  process.  To unmap the file's pages from a process, a
   PMAP call is executed with

              AC1:  -1

              AC2:  process handle in the left half, and page  number  in
                    the process in the right half

              AC3:  B0(PM%CNT)  Repeat  count.   Only  the  process  page
                                numbers are incremented.

                    B18-B35     Number of pages to remove from process

   This format of the PMAP call removes the pages indicated in  AC2  from
   the process.

|  A page that was locked with the PLOCK call may be unmapped.  Doing  so
|  will  unlock  the  process'  page and return the now unlocked physical
|  page to its previous state.

   Illegal PMAP calls
   _______ ____ _____

   The PMAP call is illegal if:

        1.  Both AC1 and AC2 designate files.

        2.  Both AC1 and AC2 are 0.

        3.  The PMAP call designates a file with write-only access.

        4.  The PMAP call designates a file with append-only access.

   Can cause several software interrupts on certain file conditions.

   Generates an illegal instruction interrupt on error conditions below.

   PMAP ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   DESX7:    JFN cannot refer to output wildcard designators

   PMAPX1:   invalid access requested

   PMAPX2:   invalid use of PMAP

   PMAPX3:   illegal to move shared page into file

   PMAPX4:   illegal to move file page into process

   PMAPX5:   illegal to move special page into file

   PMAPX6:   disk quota exceeded

   PMAPX7:   illegal to map file on dismounted structure

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   FRKHX7:   process page cannot exceed 777

   LNGFX1:   page table does not exist and file not open for write

   IOX11:    quota exceeded or disk full

   ARGX06:   invalid page number

                             PMCTL     JSYS 560
|
|
|  Controls physical memory.  This call allows a  privileged  program  to
|  add  or  remove  most  pages  of physical memory and to control use of
|  cache memory.

   The PMCTL monitor call requires the process to have  WHEEL,  OPERATOR,
   or MAINTENANCE capability enabled.

   ACCEPTS IN AC1:  function code

              AC2:  length of the argument block

              AC3:  address of the argument block

   RETURNS     +1:  always

   The defined functions and their argument blocks are as follows:

   Function       Symbol                   Meaning

       0          .MCRCE    Return  the  status  of  cache  memory.   The
                            status  is  returned  in  word  .MCCST of the
                            argument block.

                            Argument Block

                            0   .MCCST   If B35(MC%CEN) is on, the  cache
                                         is enabled.

       1          .MCSCE    Set the status of cache memory.

                            Argument Block

                            0   .MCCST   Enable the cache if  B35(MC%CEN)
                                         is on.

|      2          .MCRPS    Return the status of the given page(s).   The
                            number  of  the page is given in word .MCPPN,
                            and its status is returned in word .MCPST.

                            Argument Block

|                           0   .MCPPN   Negative count in the left half;
|                                        number  of  physical page in the
|                                        right half

                            1   .MCPST   Returned   page   status.    The
                                         status  is represented by one of
                                         the following values:

                                         0   .MCPSA   Page  is  available
                                                      for normal use.

                                         1   .MCPSS   Page   is   in    a
                                                      transition state.

                                         2   .MCPSO   Page  is  off  line
                                                      because    it    is
                                                      nonexistent.
                                                      Nonexistent  memory
                                                      is  marked  as  off
                                                      line    at   system
                                                      startup.

                                         3   .MCPSE   Page  is  off  line
                                                      because the monitor
                                                      detected an error.

       3          .MCSPS    Set the status of the given page.  The number
                            of  the page is given in word .MCPPN, and the
                            status value is given in word .MCPST.

                            Argument Block

                            0   .MCPPN   Number of physical page.

                            1   .MCPST   Status for page.  The status  is
                                         represented   by   one   of  the
                                         following values:

                                         0   .MCPSA   Mark page available
                                                      for normal use.

                                         2   .MCPSO   Mark page off  line
                                                      because it does not
                                                      exist.

                                         3   .MCPSE   Mark page off  line
                                                      because  it  has an
|                                                     error.
|
|                                        4   .MCRME   Collect information
|                                                     about   MOS  memory
|                                                     errors.  Store  the
|                                                     information      in
|                                                     block addressed  by
|                                                     AC3  and update AC2
|                                                     on return.

|  A list of those pages that PMCTL cannot acquire follows:
|
|       the EPT
|       the monitor's UPT
|       any page containing a CST0 entry
|       any page containing an SPT entry
|       the page containing MMAP
|       any page belonging to the resident free space pool
|
|  In certain specialized monitors,  for  example  TOPS-20AN,  there  are
|  additional  pages that cannot be acquired.  An estimate of the size of
|  these areas follows:
|
|       CST0   one word for every page of memory supported (two  to  four
|              pages)
|       SPT    four pages
|       MMAP   one page
|       Resident Free Space Pool     two pages minimum

   Generates an illegal instruction interrupt on error conditions below.

   PMCTL ERROR MNEMONICS:

   CAPX2:    WHEEL, OPERATOR, or MAINTENANCE capability required

   PMCLX1:   invalid page state or state transition

   PMCLX2:   requested physical page is unavailable

   PMCLX3:   requested physical page contains errors

   ARGX02:   invalid function

   ARGX06:   invalid page number

                             PPNST     JSYS 557

   Translates a project-programmer number  (a  TOPS-10  36-bit  directory
   designator)  to  its corresponding string.  The string consists of the
   structure name and a colon followed by the directory name enclosed  in
   brackets.   This monitor call and the STPPN monitor call should appear
   only in  programs  that  require  translations  of  project-programmer
   numbers.   Both  calls  are  temporary calls and may not be defined in
   future releases.

   ACCEPTS IN AC1:  destination designator

              AC2:  project-programmer number (36 bits)

              AC3:  pointer to structure name string for which the  given
                    project-programmer number applies

   RETURNS     +1:  always, string written to destination,  with  updated
                    string pointer, if pertinent, in AC1

   If the structure name  string  is  a  logical  name,  then  the  first
   structure appearing in the logical name definition is used.

   Generates an illegal instruction interrupt on error conditions below.

   PPNST ERROR MNEMONICS:

   PPNX1:    invalid PPN

   PPNX2:    structure is not mounted

   GJFX22:   insufficient system resources (Job Storage Block full)

   STDVX1:   no such device

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   DELFX6:   internal format of directory is incorrect

   DIRX1:    invalid directory number

   DIRX2:    insufficient system resources

   DIRX3:    internal format of directory is incorrect

   STRX01:   structure is not mounted

   STRX06:   no such user number

   IOX11:    quota exceeded or disk full

                             PRARG     JSYS 545

   Returns and/or sets arguments for the specified process.

   ACCEPTS IN AC1:  function code in the left half, and a process  handle
                    in the right half

              AC2:  address of argument block

              AC3:  length of argument block

   RETURNS     +1:  always, with the number  of  words  in  the  argument
                    block in AC3

   The codes for the functions are as follows:

      1      .PRARD    return the  arguments  beginning  at  the  address
                       specified in AC2

      2      .PRAST    set the arguments using the argument block at  the
                       address specified in AC2

   Generates an illegal instruction interrupt on error conditions below.

   PRARG ERROR MNEMONICS:

   PRAX1:    invalid PRARG function code

   PRAX2:    no room in monitor data base for argument block

   PRAX3:    PRARG argument block too large

                             PSOUT     JSYS 76

   Outputs a string sequentially to the primary output designator.

   ACCEPTS IN AC1:  pointer to an ASCIZ string in  the  caller's  address
                    space

   RETURNS     +1:  always, updated string pointer in AC1

   Can cause several  software  interrupts  or  process  terminations  on
   certain  file  conditions.   (Refer  to  bit  OF%HER of the OPENF call
   description.)

   PSOUT ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   IOX2:     file is not open for writing

   IOX5:     device or data error

   IOX6:     illegal to write beyond absolute end of file

   IOX11:    quota exceeded or disk full

                             RCDIR     JSYS 553

   Translates the given directory  string  to  its  corresponding  36-bit
   directory number.  The directory string consists of the structure name
   or logical name and a colon followed by the directory name enclosed in
   either  square  brackets  or  angle  brackets.   No  spaces can appear
   between the structure name and the  directory  name,  and  each  field
   given  must include its punctuation.  An example of a directory string
   is PS:<SMITH>.  If the structure name is omitted from the string,  the
   user's  connected structure is used.  If the directory name is omitted
   from the string, the user's connected directory is used.

   Recognition can be used on the string but only on the  directory  name
   field;   recognition  cannot  be  used  on  the  structure name field.
   Partial  recognition  can  be  allowed  so  that  a  user  can  employ
   recognition  when typing the name of a subdirectory.  When recognition
   is used on the directory name field and  the  directory  name  is  not
   ambiguous, the closing bracket is not required.

   The directory name field can contain wildcard characters, and repeated
   RCDIR  calls  can be executed to obtain the numbers of the directories
   whose characters match the given directory.   After  the  first  call,
   each subsequent RCDIR call returns the number of the next directory in
   the group.

   ACCEPTS IN AC1:  flag bits in the left half

              AC2:  pointer to ASCIZ string to be translated,  a  JFN,  a
                    36-bit  user  number,  or  a  36-bit directory number
                    (given for the purpose of checking its validity)

              AC3:  36-bit directory number (given when stepping  to  the
                    next directory in a group of directories)

   RETURNS     +1:  always, with

                    AC1 containing flag bits in the left half

                    AC2 containing  an  updated  string  pointer  (if   a
                        pointer   was  supplied  as  the  argument).   If
                        recognition was used, this pointer  reflects  the
                        remainder  of the string that was appended to the
                        original string.

                    AC3 containing a 36-bit directory number if execution
                        of the call was successful

   The flag bits supplied in the left half of AC1 are as follows:

   B14(RC%PAR)    Allow partial recognition on the  directory  name.   If
                  the  name  given  matches  more than one directory, bit
                  RC%AMB is set on return and the string  is  updated  to
                  reflect  the  unique portion of the directory name.  If
                  bit RC%PAR is not set, the name given matches more than
                  one  directory,  and  recognition  is  being  used, bit
                  RC%AMB is set on return, but the string is not updated.

   B15(RC%STP)    Step to the next directory in the group and return  the
                  number  of  that  directory.   AC1 must have bit RC%AWL
                  set.  AC2 must contain  a  pointer  to  a  string  that
                  contains  wildcard  characters  in  the  directory name
                  field.  AC3 must contain a directory number.

   B16(RC%AWL)    Allow  the   directory   name   to   contain   wildcard
                  characters.  No recognition is performed on a directory
                  name that  contains  wildcard  characters.   Also,  the
                  directory  name  must  include its terminating bracket.
                  This bit must be set if bit RC%STP is also set.

   B17(RC%EMO)    Match the given string exactly.  When both  the  RC%PAR
                  and  RC%EMO bits are on, recognition is not used on the
                  string, and the string is matched exactly.  If this bit
                  is off, recognition is used on the string.

   The flag bits returned in the left half of AC1 are as follows:

   On success
   __ _______

   B0(RC%DIR)     Directory can be used only by connecting to  it  (i.e.,
                  it is a files-only directory).  If this bit is off, the
                  user can also login to (if  the  directory  is  on  the
|                 public structure) or access this directory.
|
|  B1(RC%ANA)     Obsolete

   B2(RC%RLM)     All messages from <SYSTEM>MAIL.TXT are  repeated  every
                  time  the  user  logs in.  If this bit is off, messages
                  are printed only once.

   B6(RC%WLD)     The directory name given contained wildcard characters.

   On failure
   __ _______

   B3(RC%NOM)     No match was found for the string given.  This  bit  is
                  returned if either 1) bit RC%EMO was on in the call and
                  a string was given that matched more than one directory
                  or 2) the syntax of the fields in the string is correct
                  but the structure is not mounted or the directory  does
                  not exist.

   B4(RC%AMB)     The argument given was ambiguous.  This bit is returned
                  if  bit RC%EMO was off in the call and the string given
                  either matched more  than  one  directory  or  did  not
                  include  the  beginning  bracket  of the directory name
                  field.

   B5(RC%NMD)     There  are  no  more  directories  in  the   group   of
                  directories.   This bit is returned if RC%STP was on in
                  the call and the numbers of all the directories in  the
                  group have been returned.

   The RCDIR monitor call can be used in one of two ways.   The  simplest
   way  is  to  translate a directory string that corresponds to only one
   directory to its corresponding 36-bit directory  number.   The  string
   can  be  either recognized or matched exactly.  Instead of accepting a
   string, the program can supply a JFN  or  a  36-bit  user  number  and
   translate this argument to a directory number.  When a JFN is supplied
   as  an  argument,  the  number  returned  is  that  of  the  directory
   containing  the  file  associated with the JFN.  When a user number is
   supplied  as  an  argument,  the  number  returned  is  the  logged-in
   directory  for that user.  Finally, the program can supply a directory
   number to check the number's  validity,  and  if  the  RCDIR  call  is
   successful, this same number is returned.

   The second way of using the RCDIR call is to accept a directory string
   that  corresponds  to  more than one directory and to step through all
   the directories matching the given string to obtain all the  directory
   numbers.   Repeated  RCDIR  calls are executed until the number of the
   last directory is returned.  This use of RCDIR requires AC2 to contain
   a pointer to a string containing wildcard characters and is ignored if
   the string does not  contain  wildcard  characters  or  if  any  other
   argument is given in AC2.

   The first RCDIR call executed must have bit RC%AWL set in AC1 and  the
   pointer to the string in AC2.  If execution of the call is successful,
   AC3 contains the number of the directory corresponding  to  the  first
   directory  in the group.  For example, if the string given is <SMITH*>
   and the  call  is  successful,  the  number  returned  corresponds  to
   <SMITH>.   Subsequent  RCDIR  calls must set bits RC%STP and RC%AWL in
   AC1, reset the pointer in AC2 (because it is updated on  a  successful
   RCDIR  call),  and leave in AC3 the directory number returned from the
   previous RCDIR call.  (The directory number in AC3 is accepted only if
   RC%STP  is  set  in  AC1 and a pointer to a string containing wildcard
   characters  is  given  in  AC2.)  On  successful  execution  of   each
   subsequent  RCDIR  call, the number returned in AC3 corresponds to the
   next directory in the group.  When the number of the last directory in
   the  group  has been returned, a subsequent RCDIR call sets bit RC%NMD
   in AC1;  the content of AC3 is indeterminate.

   The RCUSR monitor call can be used to translate a user name string  to
   its  corresponding user number.  The DIRST monitor call can be used to
   translate  either  a  directory  number  or  a  user  number  to   its
   corresponding string.

   Generates an illegal instruction interrupt on error conditions below.

   RCDIR ERROR MNEMONICS:

   RCDIX1:   insufficient system resources

   RCDIX2:   invalid directory specification

   RCDIX3:   invalid structure name

   RCDIX4:   monitor internal error

   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

   DESX8:    file is not on disk

   DESX10:   structure is dismounted

   STRX01:   structure is not mounted

                              RCM     JSYS 134

   Returns the word mask of the  activated  interrupt  channels  for  the
   specified  process.  (Refer to Section 2.5.1 and the AIC and DIC calls
   for information on  activating  and  deactivating  software  interrupt
   channels.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, 36-bit word in AC1, with  bit  n  on  meaning
                    channel n is activated

   Generates an illegal instruction interrupt on error conditions below.

   RCM ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RCUSR     JSYS 554

   Translates the given user name string to its corresponding 36-bit user
   number.   The user name string consists of the user's name without any
   punctuation.  The string  must  be  associated  with  a  directory  on
   structure PS:  that is not a files-only directory.

   Recognition can be used on the string.  In addition,  the  string  can
   contain wildcard characters.

   ACCEPTS IN AC1:  flag bits in the left half

              AC2:  pointer to ASCII string to be translated

              AC3:  36-bit user number (given when stepping to  the  next
                    user name in a group)

   RETURNS     +1:  always, with

                    AC1 containing flag bits in the left half

                    AC2 containing  an  updated   string   pointer.    If
                        recognition  was  used, this pointer reflects the
                        remainder of the string that is appended  to  the
                        original string.

                    AC3 containing a 36-bit user number if  execution  of
                        the call was successful

   The flag bits supplied in the left half of AC1 are  as  follows.   For
   additional  information on these bits, refer to the RCDIR monitor call
   description.

   B14(RC%PAR)    Allow partial recognition on the user name string.

   B15(RC%STP)    Step to the next user name in the group.

   B16(RC%AWL)    Allow the user name to contain wildcard characters.

   B17(RC%EMO)    Match the given string exactly.

   The flag bits returned in the left half of AC1 are  as  follows.   For
   additional  information on these bits, refer to the RCDIR monitor call
   description.

|  On success
|  __ _______
|
|  B1(RC%ANA)     Obsolete

   B2(RC%RLM)     User sees all messages from <SYSTEM>MAIL.TXT every time
                  he  logs  in.   If  this  bit is off, the user sees the
                  messages only once.

   B6(RC%WLD)     The user name given contained wildcard characters.

   On failure
   __ _______

   B3(RC%NOM)     No match was found for the string given.  This bit will
                  be  on  if  the  string  given  refers  to a files-only
                  directory, if there is no directory  on  PS:   that  is
                  associated with the user name string, or bit RC%EMO was
                  on in the call and a string was given that matched more
                  than one user.

   B4(RC%AMB)     The string given was ambiguous because it matched  more
                  than one user.

   B5(RC%NMD)     There are no more user names in the group.

   The RCDIR monitor call can be used to translate a directory string  to
   its  corresponding  directory  number.   The DIRST monitor call can be
   used to translate either a user number or a directory  number  to  its
   corresponding string.

   Generates an illegal instruction interrupt on error conditions below.

   RCUSR ERROR MNEMONICS:

   RCUSX1:   insufficient system resources

   RCDIX4:   monitor internal error

   STRX07:   invalid user number

   STRX08:   invalid user name

                             RDTTY     JSYS 523

   Reads input from  the  primary  input  designator  (.PRIIN)  into  the
   caller's  address space.  Input is read until either a break character
   is encountered or the given byte count is exhausted, whichever  occurs
   first.  Output generated as a result of character editing is output to
   the primary output designator (.PRIOU).

   The RDTTY call handles the following editing functions:

        1.  Delete the last character input (DELETE).

        2.  Delete back to the last punctuation character (CTRL/W).

        3.  Delete back to the beginning of the current line or,  if  the
            current  line is empty, back to the beginning of the previous
            line (CTRL/U).

        4.  Retype the current line from its beginning or, if the current
            line is empty, retype the previous line (CTRL/R).

        5.  Accept the next character without regard to its usual meaning
            (CTRL/V).

   By handling these functions, the RDTTY call  serves  as  an  interface
   between the terminal and the user program.

   ACCEPTS IN AC1:  pointer to string in  caller's  address  space  where
                    input is to be placed

              AC2:  B0(RD%BRK)  Break on CTRL/Z or ESC.
                    B1(RD%TOP)  Break on  CTRL/G,  CTRL/L,  CTRL/Z,  ESC,
                                carriage return, line feed.
                    B2(RD%PUN)  Break on punctuation (see below).
                    B3(RD%BEL)  Break on end of line (carriage return and
                                line feed, or line feed only).
                    B4(RD%CRF)  Suppress a carriage return and  return  a
                                line feed only.
                    B5(RD%RND)  Return to user program if user  tries  to
                                delete  beyond  beginning  of  the  input
                                buffer (e.g.,  user  types  a  CTRL/U  or
                                DELETE  past  the  first character in the
                                buffer).  If this bit  is  not  set,  the
                                call  rings the terminal's bell and waits
                                for more input.
                    B7(RD%RIE)  Return to user program if input buffer is
                                empty.   If this bit is not set, the call
                                waits for more input.
                    B10(RD%RAI) Convert lower-case  input  to  upper-case
                                input.

                    B11(RD%SUI) Suppress CTRL/U indication (i.e., do  not
                                print  XXX,  and on display terminals, do
                                not  delete  the  characters   from   the
                                screen).
                    B18-B35     Number of bytes available in the  string.
                                The  input  is terminated when this count
                                is exhausted, even if the specified break
                                character has not yet been typed.

                    If the left half of AC2 is 0, the input is terminated
                    on end of line only.

              AC3:  pointer to prompting-text (CTRL/R) buffer, or 0 if no
                    buffer.   The  text  in  this buffer, followed by any
                    text in the input buffer, is output if the user types
                    CTRL/R   in   his   first   line  of  input.   If  no
                    prompting-text buffer exists or the user types CTRL/R
                    on  other than the first line of input, only the text
                    on the current line will be output.

   RETURNS     +1:  failure, error code in AC1

               +2:  success, updated string pointer in  AC1,  appropriate
                    bits  set  in the left half of AC2, and updated count
                    of available bytes in the right half of AC2

   The bits returned in the left half of AC2 on a successful return are:

                    B12(RD%BTM) Break character terminated the input.  If
                                this  bit  is  not  set,  the  input  was
                                terminated because  the  byte  count  was
                                exhausted.
                    B13(RD%BFE) Control  was  returned  to  the   program
                                because  the  user tried to delete beyond
                                the beginning of  the  input  buffer  and
                                RD%RND was on in the call.
                    B14(RD%BLR) The backup limit for editing was reached.

                                    NOTE

                  Bits not described are reserved for  use
                  by the monitor.  The state of these bits
                  on  completion  of  the  RDTTY  call  is
                  undefined.

   The punctuation break character set (RD%PUN) is as follows:

        CTRL/A-CTRL/F       ASCII codes 34-36
        CTRL/H-CTRL/I       ASCII codes 40-57
        CTRL/K              ASCII codes 72-100
        CTRL/N-CTRL/Q       ASCII codes 133-140
        CTRL/S-CTRL/T       ASCII codes 173-176
        CTRL/X-CTRL/Y

   Upon completion of the call, the terminating character  is  stored  in
   the  string, followed by a NULL (unless the byte count was exhausted).
   Also, any CTRL/V, along with the character following it, is stored  in
   the string.

   RDTTY ERROR MNEMONICS:

   RDTX1:    invalid string pointer

   IOX11:    quota exceeded or disk full

                              RELD     JSYS 71

   Releases one or all devices assigned to the job.   When  a  device  is
   released  by  the job, the resource allocator receives an IPCF packet.
   (Refer to the ALLOC monitor call description for  the  format  of  the
   packet sent to the allocator.)

   ACCEPTS IN AC1:  device designator,  or  -1  to  release  all  devices
                    assigned to this job

   RETURNS     +1:  failure, error code in AC1

               +2:  success

   The ASND monitor call can be used to assign a device to the caller.

   RELD ERROR MNEMONICS:

   DEVX1:    invalid device designator

   DEVX2:    device already assigned to another job

                             RESET     JSYS 147

   Resets and initializes the current process.  It is a good  programming
   practice  to  include  this  call  at  the  beginning of each assembly
   language program.

   RETURNS     +1:  always

   The RESET monitor call performs the following:

        1.  Closes all files at or below the current process and releases
            all  JFNs.   If  a  file is nonexistent (i.e., has never been
            closed), it is closed and then expunged.

        2.  Kills all inferior processes.

        3.  Clears the current process' software interrupt  system.   The
            channel  table  and  priority  level  table  addresses remain
            unchanged from any previous settings.

        4.  Sets the following fields of the controlling  terminal's  JFN
            mode word (refer to Section 2.4.3.1):

            TT%WAK(B18-B23) to wake up on every character
            TT%ECO(B24)     to cause echoing
            .TTASI(B29)     to translate both echo and output (ASCII data
                            mode)

            Remaining fields of the mode word are not changed.

        5.  Releases all of the current process' PIDs.

        6.  Dequeues all of the current process' ENQ requests.

        7.  Clears the compatibility package's entry vector.

        8.  Releases all process handles that can be released.  (Refer to
            the RFRKH call description.)

                             RFACS     JSYS 161

   Returns the ACs of the specified process.

   ACCEPTS IN AC1:  process handle

              AC2:  address of the beginning of a 20(octal) word table in
                    the caller's address space where the AC values of the
                    specified process are to be stored

   RETURNS     +1:  always

   The SFACS monitor call can be used to set  the  ACs  for  a  specified
   process.

   Generates an illegal instruction interrupt on error conditions below.

   RFACS ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   FRKHX4:   process is running

                             RFBSZ     JSYS 45

   Returns the byte size for a specific opening of a file.  (Refer to the
   OPENF or SFBSZ call description for setting the byte size.)

   ACCEPTS IN AC1:  JFN

   RETURNS     +1:  failure, error code in AC1

               +2:  success, byte size right-justified in AC2

   RFBSZ 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

                             RFCOC     JSYS 112

   Returns the control character output  control  (CCOC)  words  for  the
   specified terminal.  (Refer to Section 2.4.3.2.)

   ACCEPTS IN AC1:  file designator

   RETURNS     +1:  always, with output control words in AC2 and AC3

   The CCOC words consist of 2-bit  bytes,  each  byte  representing  the
   output  control  for  one  of  the  ASCII  codes  0-37.   If the given
   designator is not associated with  a  terminal,  the  CCOC  words  are
   returned  in  AC2 and AC3 with each 2-bit byte containing a value of 2
   (send actual code and account format action).

   The SFCOC monitor call can be  used  to  set  the  CCOC  words  for  a
   specified terminal.

   Generates an illegal instruction interrupt on error conditions below.

   RFCOC ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   DEVX2:    device already assigned to another job

   TTYX01:   line is not active

                             RFMOD     JSYS 107

   Returns the JFN mode word associated with the specified file.   (Refer
   to  Section 2.4.3.1.)  The MTOPR monitor call should be used to return
   the page length and width fields,  especially  when  the  fields  have
   values  greater  than  127.   The RFMOD call returns these fields as 1
   when their values are greater than 127.

   ACCEPTS IN AC1:  source designator

   RETURNS     +1:  always, with mode word in AC2

   If the designator is not a terminal, the RFMOD call returns in  AC2  a
   word in the following format

    7B3+^D66B10+^D72B17+ 4 mode bits from the OPENF for the designator

   This setting of the left half of AC2 indicates that the designator has
   mechanical  form  feed, mechanical tab, lower case, page length of 66,
   and page width of 72.

   The SFMOD and STPAR monitor calls can be used to set various fields of
   the JFN mode word.

   RFMOD ERROR MNEMONICS:

   TTYX01:   line is not active

                             RFORK     JSYS 155

   Resumes one or more processes that had  been  directly  frozen.   This
   monitor  call  does  not  resume  a  process  that has been indirectly
   frozen.  (Refer to Section 2.6.2.1.)  Also, the RFORK call  cannot  be
   used  to  resume a process that is suspended because of a monitor call
   intercept.  (Refer to the UTFRK call.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always

   The RFORK monitor call is a no-op if the referenced process(s) was not
   directly frozen.

   The FFORK monitor call can be used to freeze one or more processes.

   Generates an illegal instruction interrupt on error conditions below.

   RFORK ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RFPOS     JSYS 111

   Returns the current position  of  the  specified  terminal's  pointer.
   (Refer  to  Section 2.4.3.4 for information on page lengths and widths
   of terminals.)

   ACCEPTS IN AC1:  device designator

   RETURNS     +1:  always, AC2 contains position within  a  page  (i.e.,
                    line  number) in the left half, and position within a
                    line (i.e., column number) in the right half

   AC2 contains 0 if the designator is not associated with a terminal.

   The SFPOS monitor call  can  be  used  to  set  the  position  of  the
   terminal's pointer.

   Generates an illegal instruction interrupt on error conditions below.

   RFPOS ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX5:    file is not open

   DEVX2:    device already assigned to another job

   TTYX01:   line is not active

                             RFPTR     JSYS 43

   Returns the current position of the specified file's pointer.

   ACCEPTS IN AC1:  JFN

   RETURNS     +1:  failure, error code in AC1

               +2:  success, byte number in AC2

   The SFPTR monitor call can be used to set the position of  the  file's
   pointer.

   RFPTR 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

                             RFRKH     JSYS 165

   Releases the specified handle of a process.  A handle can be  released
   only  if  it describes either an existent process inferior to at least
   one other process in the job or a process that  has  been  killed  via
   KFORK (i.e., a nonexistent process).

   ACCEPTS IN AC1:  process handle, or -1 to release all relative handles
                    that can be released

   RETURNS     +1:  failure, error code in AC1

               +2:  success

   The process handles released when AC1 is -1 are the ones released on a
   RESET or a KFORK monitor call.

   RFRKH ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RFSTS     JSYS 156

   Returns the status of the specified process.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, with the status word in AC1 and the PC in AC2

   The process status word has the following format:

        B0(RF%FRZ)          The process is frozen.  If this bit  is  off,
                            the process is not frozen.

        B1-B17(RF%STS)      The  status  code  for  the   process.    The
                            following values are possible:

                            Value   Symbol                Meaning

                              0     .RFRUN      The process is runnable.

                              1     .RFIO       The process is  dismissed
                                                for I/O.

                              2     .RFHLT      The process is  dismissed
                                                by    voluntary   process
                                                termination   (HFORK   or
                                                HALTF)   or   was   never
                                                started.

                              3     .RFFPT      The process is  dismissed
                                                by     forced     process
                                                termination.       Forced
                                                termination  occurs  when
                                                bit  17(SC%FRZ)  of   the
                                                process  capability  word
                                                is not set.

                              4     .RFWAT      The process is  dismissed
                                                waiting    for    another
                                                process to terminate.

                              5     .RFSLP      The process is  dismissed
                                                for a specified amount of
                                                time.

                              6     .RFTRP      The process is  dismissed
                                                because  it  attempted to
                                                execute a call  on  which
                                                an intercept has been set
                                                by its superior (via  the
                                                TFORK call).

                              7     .RFABK      The process is  dismissed
                                                because it encountered an
                                                instruction on  which  an
                                                address   break  was  set
                                                (via the ADBRK call).

        B18-B35(RF%SIC)     The number of the software interrupt  channel
                            that caused the forced process termination.

   The RFSTS call returns with  -1  in  the  left  half  of  AC1  if  the
   specified  handle  is  assigned  but refers to a deleted process.  The
   call generates an illegal  instruction  interrupt  if  the  handle  is
   unassigned.

   Generates an illegal instruction interrupt on error conditions below.

   RFSTS ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RFTAD     JSYS 533

   Returns the dates and times associated with the specified file.

   ACCEPTS IN AC1:  source designator

              AC2:  address of argument block

              AC3:  length of argument block

   RETURNS     +1:  always, dates returned in the argument block

   The format of the argument block is as follows:

      Word   Symbol         Meaning

       0     .RSWRT    Internal date and time file was last written.

       1     .RSCRV    Internal date and time file was created.

       2     .RSREF    Internal date and time file was last referenced.

       3     .RSCRE    Internal system date and time of last write.

   On a successful return, the values for the number of  words  specified
   in  AC3  are  returned  in  the argument block.  Words in the argument
   block contain -1 if any one of the following occurs:

        1.  The corresponding date does not exist for the file.

        2.  The designator is not associated with a file.

        3.  The corresponding date is not currently assigned  (i.e.,  the
            argument block contains more than 4 words).

   The SFTAD monitor call  can  be  used  to  set  the  dates  and  times
   associated with a specified file.

   Generates an illegal instruction interrupt on error conditions below.

   RFTAD ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX7:    JFN cannot refer to output wildcard designators

                              RIN     JSYS 54

   Inputs a byte nonsequentially  (i.e.,  random  byte  input)  from  the
   specified file.  The size of the byte is that given in the OPENF call.
   The RIN call can be used only when reading data from disk files.

   ACCEPTS IN AC1:  JFN

              AC3:  byte number within the file

   RETURNS     +1:  always, with the byte right-justified in AC2

   If the end of the file is reached, AC2 contains 0.   The  program  can
   process  this  end-of-file  condition if an ERJMP or ERCAL is the next
   instruction following the RIN call.  Upon successful execution of  the
   call, the file's pointer is updated for subsequent I/O to the file.

   The ROUT monitor call can be used to output a byte nonsequentially  to
   a specified file.

   Can cause several  software  interrupts  or  process  terminations  on
   certain  file  conditions.   (Refer  to  bit  OF%HER of the OPENF call
   description.)

   RIN 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

   IOX1:     file is not open for reading

   IOX3:     illegal to change pointer for this opening of file

   IOX4:     end of file reached

   IOX5:     device or data error

                              RIR     JSYS 144

   Returns the  channel  and  priority  level  table  addresses  for  the
   specified  process.   (Refer  to Section 2.5.3.) These table addresses
   are set by the SIR monitor call.  The RIR monitor call is useful  when
   several  independent  processes  in  one  job  want  to share software
   interrupt tables.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, with the priority level table address in  the
                    left  half  of  AC2, and the channel table address in
                    the right half of AC2

   AC2 contains 0 if the SIR monitor call has not been  executed  by  the
   designated process.

   Generates an illegal instruction interrupt on error conditions below.

   RIR ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RIRCM     JSYS 143

   Returns the mask for reserved  software  interrupt  channels  for  the
   specified  process.   A  process  is  able  to  read  its  own  or its
   inferiors' channel masks.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always,  with  the  reserved  channel  mask  for  the
                    specified process in AC2

   The SIRCM monitor call can be  used  to  set  the  mask  for  reserved
   software interrupt channels.

   Generates an illegal instruction interrupt on error conditions below.

   RIRCM ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RLJFN     JSYS 23

   Releases the specified JFNs.  A  JFN  cannot  be  released  unless  it
   either  has never been opened or has already been closed.  Also, a JFN
   cannot be released if it is currently being  assigned  by  a  process,
   unless  that process is the same as the one executing the RLJFN and is
   not at interrupt level.  The GS%ASG bit returned from a GTSTS call for
   the JFN indicates if the JFN is currently being assigned.

   ACCEPTS IN AC1:  JFN, or -1 to release all JFNs that  do  not  specify
                    open files

   RETURNS     +1:  failure, error code in AC1

               +2:  success

   RLJFN ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   RJFNX1:   file is not closed

   RJFNX2:   JFN is being used to accumulate filename

   RJFNX3:   JFN is not accessible by this process

   OPNX1:    file is already open

                              RMAP     JSYS 61

   Acquires a handle on a page in  a  process  to  determine  the  access
   allowed for that page.

   ACCEPTS IN AC1:  process handle in the left half, and  a  page  number
                    within the process in the right half

   RETURNS     +1:  always, with a handle on the page in AC1, and  access
                    information   in   AC2.   The  handle  in  AC1  is  a
                    process/file designator in the left half and  a  page
                    number in the right half.

   The access information returned in AC2 is as follows:

        B2(RM%RD)  read access allowed
        B3(RM%WR)  write access allowed
        B4(RM%EX)  execute access allowed
        B5(RM%PEX) page exists
        B9(RM%CPY) copy-on-write access

   On rare conditions, if the specified page is shared with a file but no
   JFN is associated with the file, AC1 contains -1 and AC2 contains 0.

   Generates an illegal instruction interrupt on error conditions below.

   RMAP ERROR MNEMONICS:

   FRKHX1:   invalid process handle

                             RNAMF     JSYS 35

   Renames an existing file.  The JFNs of both the existing file and  the
   new file specification must be closed.

   ACCEPTS IN AC1:  JFN of existing file  to  be  renamed  (i.e.,  source
                    file)

              AC2:  JFN of new file specification (i.e., destination file
                    specification)

   RETURNS     +1:  failure, error code in AC1

               +2:  success, JFN in AC1 is released, and the JFN  in  AC2
                    is  associated  with  the  file  under  its  new file
                    specification

   If the JFN of the new file specification already refers to an existing
   file, the existing file's contents are expunged.

   When a file is renamed, many of the attributes of  the  existing  file
   are given to the renamed file.  The settings of the following words in
   the FDB (refer to Section 2.2.8) are copied from the existing file  to
   the renamed file.

        Word      .FBCTL (FB%LNG, FB%DIR, FB%NOD, FB%BAT, FB%FCF)
        Word      .FBADR
        Word      .FBCRE
        Word      .FBGEN (FB%DRN)
        Word      .FBBYV (FB%BSZ, FB%MOD, FB%PGC)
        Word      .FBSIZ
        Word      .FBCRV
        Word      .FBWRT
        Word      .FBREF
        Word      .FBCNT
        Word      .FBUSW

   Note that the setting of FB%PRM (permanent file) does not get  copied.
   Thus,  if  a  file with bit FB%PRM on is renamed, the renamed file has
   FB%PRM off.  The existing file is left in a  deleted  state  with  its
   contents empty but its FDB existent.

   RNAMF ERROR MNEMONICS:

   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

   OPNX1:    file is already open

   RNAMX1:   files are not on same device

   RNAMX2:   destination file expunged

   RNAMX3:   write or owner access to destination file required

   RNAMX4:   quota exceeded in destination of rename

   RNAMX5:   destination file is not closed

   RNAMX6:   destination file has bad page table

   RNAMX7:   source file expunged

   RNAMX8:   write or owner access to source file required

   RNAMX9:   source file is nonexistent

   RNMX10:   source file is not closed

   RNMX11:   source file has bad page table

   RNMX12:   illegal to rename to self

   RNMX13:   insufficient system resources

                              ROUT     JSYS 55

   Outputs a byte nonsequentially  (i.e.,  random  byte  output)  to  the
   specified  file.  The size of the byte is that given in the OPENF call
   for the JFN.  The ROUT call can be used only when writing data to disk
   files.

   ACCEPTS IN AC1:  JFN

              AC2:  the byte to be output, right-justified

              AC3:  the byte number within the file

   RETURNS     +1:  always

   Upon successful execution of the call, the file's pointer  is  updated
   for subsequent I/O to the file.

   The RIN monitor call can be used to input a byte nonsequentially  from
   a specified file.

   Can cause several  software  interrupts  or  process  terminations  on
   certain  file  conditions.   (Refer  to  bit  OF%HER of the OPENF call
   description.)

   ROUT 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

   IOX2:     file is not opened for writing

   IOX3:     illegal to change pointer for this opening of file

   IOX5:     device or data error

   IOX6:     illegal to write beyond absolute end of file

   IOX11:    quota exceeded or disk full

                             RPACS     JSYS 57

   Returns the accessibility of a page.

   ACCEPTS IN AC1:  process/file designator in the left  half,  and  page
                    number within the file in the right half

   RETURNS     +1:  always,   with   AC2   containing    the    following
                    information:

                    B2(PA%RD)   read access allowed
                    B3(PA%WT)   write access allowed
                    B4(PA%EX)   execute access allowed
                    B5(PA%PEX)  page exists
                    B6(PA%IND)  indirect pointer
                    B9(PA%CPY)  copy-on-write
                    B10(PA%PRV) private page
                    B20(P1%RD)  read access allowed in first pointer
                    B21(P1%WT)  write access allowed in first pointer
                    B22(P1%EX)  execute access allowed in first pointer
                    B23(P1%PEX) page exists in first pointer
                    B27(P1%CPY) copy-on-write in first pointer

   The bits in the left half are  the  result  of  tracing  any  indirect
   pointer  chains,  and  the  bits in the right half contain information
   about the first pointer (the one in the map directly indicated by  the
   argument)  only.   The  left  half  and right half information will be
   different only if an indirect pointer was  encountered  in  the  first
   map.   In  this  case, B6(PA%IND) is set, the left half access is less
   than or equal to the right half access, and B9(PA%CPY) is  set  if  it
   was  found  set at any level.  B5(PA%PEX) and B10(PA%PRV) always refer
   to the last pointer (i.e., first non-indirect pointer) encountered.

   The SPACS monitor call can be used to set the accessibility of a page.

   Generates an illegal instruction interrupt on error conditions below.

   RPACS ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX5:    file is not open

   DESX8:    file is not on disk

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RPCAP     JSYS 150

   Returns the capabilities for the specified process.  (Refer to Section
   2.6.1 for the description of the capability word.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, capabilities possible  for  this  process  in
                    AC2, and capabilities enabled for this process in AC3

   The EPCAP monitor call can be used to enable  the  capabilities  of  a
   process.

   Generates an illegal instruction interrupt on error conditions below.

   RPCAP ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX3:   invalid use of multiple process handle

                             RSCAN     JSYS 500

   Places a text string in, or reads a text string from, the job's rescan
   buffer  (an  area of storage in the Job Storage Block).  This facility
   allows a program to receive information that will be used  as  primary
   input  for  another program before this other program reads input from
   the terminal.

   The RSCAN call has two steps:  the acceptance and the use of the  text
   string.   Each  step has a different calling sequence.  The first step
   is to accept the text string to be used as input  and  to  place  this
   string  in  the  rescan  buffer.   The  calling sequence for this step

   specifies, in AC1, a pointer to the text  string  to  be  input.   The
   second  step is to cause the string to be available to the program for
   reading via the BIN call.  The calling sequence for this  second  step
   specifies  a  function  code  of 0(.RSINI) in AC1 to indicate that the
   last string entered at command level from the  terminal  is  available
   for  reading.  The program executing the RSCAN call can determine when
   the data has been read by issuing a function code of 1(.RSCNT),  which
   returns the number of characters remaining in the buffer.

   In other words, the first RSCAN call  specifying  a  new  text  string
   stores  the  string  in  the rescan buffer but does not cause it to be
   read.  A second RSCAN call must be given  before  the  string  can  be
   read.   This  second RSCAN causes the system to provide input from the
   most recent string stored and can be  given  only  once.   After  this
   second  RSCAN,  nothing  will  be  read  from  the rescan buffer until
   another RSCAN call specifying a different text string  is  given.   In
   addition,  the  job  receives input from the rescan buffer only if the
   source for input in the  BIN  call  is  the  JFN  of  the  controlling
   terminal.   Therefore,  if  the  source  for  input  is other than the
   controlling terminal, input will not come from the rescan buffer.

   ACCEPTS IN AC1:  pointer to a new text string, or 0 in the  left  half
                    and function code in the right half

   RETURNS     +1:  failure, error code in AC1

               +2:  success

   The defined functions are as follows:

   Function       Symbol                   Meaning

       0          .RSINI    Make the data  in  the  buffer  available  as
                            input  to any process in the current job that
                            is  reading   data   from   its   controlling
                            terminal.

       1          .RSCNT    Return the number of characters remaining  to
                            be  read  in  the buffer.  This function does
                            not cause data to be read;   it  is  used  to
                            determine  when  all  the  data has been read
                            after making the data available.

   On a successful return, AC1 contains an updated string  pointer  if  a
   pointer  was given in the call.  Otherwise, AC1 contains the number of
   characters in the rescan buffer or 0 if there are no characters.

   RSCAN ERROR MNEMONICS:

   RSCNX2:   invalid function code

                             RTFRK     JSYS 322

   Returns the handle of the process that  was  suspended  because  of  a
   monitor  call  intercept  and  the  monitor  call that the process was
   attempting to execute.  The superior process monitoring the intercepts
   can  receive only one interrupt at a time.  Thus, the superior process
   should execute the RTFRK call after receiving an interrupt to identify
   the process that caused the interrupt.

   The system maintains a queue of the processes that have been suspended
   and  that are waiting to interrupt the superior process monitoring the
   intercepts.  The RTFRK call advances the processes on the  queue,  and
   if the call is not executed, subsequent interrupts are not generated.

   Refer to the TOPS-20AN Monitor Calls User's Guide for an overview  and
   description of the monitor call intercept facility.

   RETURNS     +1:  always, with AC1 containing the handle of the process
                    that  generated the interrupt, and AC2 containing the
                    monitor call instruction that caused the  process  to
                    be  suspended.   If no process is currently suspended
                    because of a monitor  call  intercept,  AC1  and  AC2
                    contain 0 on return.

   Because the process handle returned  in  AC1  is  a  relative  process
   handle,  it is possible that a process is currently suspended but that
   all relative handles are in use.  In  this  case,  the  caller  should
   release a relative process handle with the RFRKH call and then reissue
   the RTFRK call.

   Generates an illegal instruction interrupt on error conditions below.

   RTFRK ERROR MNEMONICS:

   FRKHX6:   all relative process handles in use

                             RTIW     JSYS 173

   Reads the terminal interrupt word (refer to  Section  2.5.6)  for  the
   specified process or the entire job and returns the terminal interrupt
   word mask.

   ACCEPTS IN AC1:  B0(RT%DIM) return  the  mask  for  deferred  terminal
                               interrupts

                    B18-B35    process handle, or -5 for entire job
                    (RT%PRH)

   RETURNS     +1:  always, with the terminal interrupt mask in AC2,  and
                    the  deferred  terminal  interrupt  mask in AC3.  The
                    deferred interrupt mask  is  returned  only  if  both
                    B0(RT%DIM)  is on and the right half of AC1 indicates
                    a specific process.

   The STIW monitor call can be used to set the terminal  interrupt  word
   masks.

   Generates an illegal instruction interrupt on error conditions below.

   RTIW ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RUNTM     JSYS 15

   Returns the runtime of the specified process or of the entire job.

   ACCEPTS IN AC1:  process handle, or -5 for the entire job

   RETURNS     +1:  always,    with     runtime     (in     milliseconds)
                    right-justified  in AC1, a divisor to convert time to
                    seconds in AC2, and console time (in milliseconds) in
                    AC3.   AC2  always  contains  1000;   thus, it is not
                    necessary to examine its contents.

   Generates an illegal instruction interrupt on error conditions below.

   RUNTM ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   RUNTX1:   invalid process handle -3 or -4

                              RWM     JSYS 135

   Returns the word mask for the interrupts waiting on software  channels
   for the specified process.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, with

                    AC1 containing a 36-bit word with bit n on meaning an
                        interrupt on channel n is waiting.

                    AC2 containing  the  status  of  the  interrupts   in
                        progress.   Bit  n  on  in the left half means an
                        interrupt of priority level  n  occurring  during
                        execution  of user code is in progress.  Bit 18+n
                        on in  the  right  half  means  an  interrupt  of
                        priority  level  n  occurring during execution of
                        monitor code is in progress.

   Generates an illegal instruction interrupt on error conditions below.

   RWM ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

                             RWSET     JSYS 176

   Releases the working set by removing all of the current process' pages
   from  its  working  set.  The pages are moved to secondary storage and
   are not preloaded the next time  the  process  is  swapped  in.   This
   operation is invisible to the user.

   RETURNS     +1:  always