Professional Documents
Culture Documents
ROSCOE - B001632e - Extended Facilities For System Programmers Guide
ROSCOE - B001632e - Extended Facilities For System Programmers Guide
Interactive Environment
This Documentation may not be copied, transferred, reproduced, disclosed, modified or duplicated, in whole or in
part, without the prior written consent of CA. This Documentation is confidential and proprietary information of CA
and protected by the copyright laws of the United States and international treaties.
Notwithstanding the foregoing, licensed users may print a reasonable number of copies of the documentation for
their own internal use, and may make one copy of the related software as reasonably required for back-up and
disaster recovery purposes, provided that all CA copyright notices and legends are affixed to each reproduced copy.
Only authorized employees, consultants, or agents of the user who are bound by the provisions of the license for
the product are permitted to have access to such copies.
The right to print copies of the documentation and to make a copy of the related software is limited to the period
during which the applicable license for the Product remains in full force and effect. Should the license terminate for
any reason, it shall be the user’s responsibility to certify in writing to CA that all copies and partial copies of the
Documentation have been returned to CA or destroyed.
EXCEPT AS OTHERWISE STATED IN THE APPLICABLE LICENSE AGREEMENT, TO THE EXTENT PERMITTED BY
APPLICABLE LAW, CA PROVIDES THIS DOCUMENTATION “AS IS” WITHOUT WARRANTY OF ANY KIND, INCLUDING
WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
OR NONINFRINGEMENT. IN NO EVENT WILL CA BE LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY
LOSS OR DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS DOCUMENTATION, INCLUDING WITHOUT
LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF CA IS EXPRESSLY
ADVISED OF SUCH LOSS OR DAMAGE.
The use of any product referenced in the Documentation is governed by the end user’s applicable license
agreement.
Provided with “Restricted Rights.” Use, duplication or disclosure by the United States Government is subject to the
restrictions set forth in FAR Sections 12.212, 52.227-14, and 52.227-19(c)(1) - (2) and DFARS Section 252.227-
7014(b)(3), as applicable, or their successors.
All trademarks, trade names, service marks, and logos referenced herein belong to their respective companies.
Contents iii
3.9.1.12 SESSION Function . . . . . . . . . . . . . . . . . . . . . . . . 3-29
3.9.1.13 SPIE Function . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30
3.9.1.14 TIMEOUT Function . . . . . . . . . . . . . . . . . . . . . . . 3-31
3.9.2 Exception Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32
3.10 $WRK and $WRKEND Macros . . . . . . . . . . . . . . . . . . . . . . 3-34
Contents v
8.17 MONEXIT: Monitor Invocation Exit . . . . . . . . . . . . . . . . . . . 8-70
8.18 OUTEXIT: Job Output Exit . . . . . . . . . . . . . . . . . . . . . . . . 8-73
8.19 RCSEXIT: Roscoe Communication Services . . . . . . . . . . . . . . 8-77
8.20 RDSEXIT: ROSCOE Communication Services . . . . . . . . . . . . . 8-79
8.21 ROSMAILS Program Exit . . . . . . . . . . . . . . . . . . . . . . . . . 8-81
8.22 ROS3@ATH: DB2 Authorization Exit . . . . . . . . . . . . . . . . . . 8-82
8.23 RPSEXIT: Roscoe Printing Services Exit . . . . . . . . . . . . . . . . . 8-88
8.24 RPVEXIT: PRINT Command Exit . . . . . . . . . . . . . . . . . . . . 8-95
8.25 RTFEXIT: RTF Routine Exit . . . . . . . . . . . . . . . . . . . . . . . . 8-101
8.26 SCREXIT: SCREEN Command Exit . . . . . . . . . . . . . . . . . . . 8-103
8.27 SETEXIT: SET Commands Exit . . . . . . . . . . . . . . . . . . . . . . 8-105
8.28 SIGEXIT: Sign-on Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-108
8.29 SMFEXIT: Accounting Exit . . . . . . . . . . . . . . . . . . . . . . . . 8-112
8.30 SUBEXIT: Submit Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-115
8.31 UPSMEXIT: The UPS Exit . . . . . . . . . . . . . . . . . . . . . . . . . 8-119
8.32 ZAPEXIT: ZAP Routine Exit . . . . . . . . . . . . . . . . . . . . . . . 8-122
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X-1
CHAPTER DESCRIPTION
1 Describes Advantage CA-Roscoe data areas that are
available for site use.
2 Describes site-written Monitor routine requirements and
restrictions.
3 Describes the distributed macros that can be used to handle
Monitor routine linkage conventions, subtasking and
reentrancy, etc.
4 Describes the AWS Interface (AWSI) and how it can be used
by site-written Monitor routines.
5 Describes the Library Interface (LIBI) and how it can be
used by site-written Monitor routines.
6 Describes the types of exits and their call order.
7 Describes information and conventions that should be used
by all site-written exit routines.
8 Describes the individual exits, including when exit calls
occur, exit routine coding conventions, entrance parameters,
data areas and return codes.
9 Describes the load modules and service routines that can be
used in site-written Monitor routines, exit routines and/or
programs.
Appendix A Describes functionally stabilized Monitor routine linkage
conventions that are now handled by the distributed
Monitor macros.
Index Provides a quick way to locate specific information.
When installing and using the JCK monitor to check JCL in Advantage
CA-Roscoe's AWS, a blank screen is often encountered without any error
messages or indication of any kind that there is a problem. Messages and
options have been added to specify and list out the options passed to
JCLCHECK. New options for JCL include: -D, -X, and -A. JCK-D display
parms passed to JCLCHECK. JCK-X turns off Advantage CA-Roscoe's SVC
screening of issues and JCK-A places output to an Advantage CA-Roscoe
AWS.
New messages have been added to describe problems that can occur during
execution of JCK that would have normally returned with no indication of a
problem.
Editorial and minor technical changes have been made throughout this
manual.
Exit Facilities
■ BEXEXIT: This exit can now be used to provide security for the Advantage
CA-Roscoe user library system through the LIBUTIL program.
■ UPSMEXIT: Two new indicators were included for two new user
privileges:
92 UPS Administrator privileges indicator.
93 Library Administrator privileges indicator.
Miscellaneous
■ Editorial and minor technical changes have been made throughout this
manual.
Title Contents
Advantage CA-Earl Reference Guide Contains detailed information about
Advantage CA-Earl statements,
parameters, and coding rules. Also
explains the Advantage CA-Earl
Reporting Service.
Advantage CA-Earl User Guide Designed for users interested in
learning about Advantage CA-Earl. It
presents an introduction to
Advantage CA-Earl features and
capabilities.
Advantage CA-Earl Systems Lists the installation options for
Programmer Guide Advantage CA-Earl and instructions
for modifying them. Also describes
size requirements and program
execution.
Advantage CA-Earl Examples Guide Contains sample programs that show
a variety of common applications.
COMMAND
Required parameters appear on the same horizontal line (the main path of the
diagram) as the command or statement. The parameters must be separated by
one or more blanks.
Where you see a vertical list of parameters as shown in the following example,
you must choose one of the parameters. This indicates that one entry is
required and only one of the displayed parameters is allowed in the statement.
You can choose one of the parameters from the vertical list, such as in the
following examples:
COMMAND PARM1
COMMAND PARM2
COMMAND PARM3
If you specify the command, you must write one of the following:
A single optional parameter appears below the horizontal line that marks the
main path.
Optional Parameter
──COMMAND──┬───────────┬──────────────────────────────────────
└─PARAMETER─┘
You can choose (or not) to use the optional parameter, as shown in the
following examples:
COMMAND
COMMAND PARAMETER
If you have a choice of more than one optional parameter, the parameters
appear in a vertical list below the main path.
You can choose any of the parameters from the vertical list, or you can write
the statement without an optional parameter, such as in the following
examples:
COMMAND
COMMAND PARM1
COMMAND PARM2
COMMAND VALUEX
COMMAND VALUEX VALUEY
COMMAND VALUEX VALUEX VALUEZ
If the repeat symbol contains punctuation such as a comma, you must separate
multiple parameters with the punctuation. The following example includes the
repeat symbol, a comma, and parentheses.
COMMAND (VALUEC)
COMMAND (VALUEB,VALUEC)
COMMAND (VALUEB,VALUEA)
COMMAND (VALUEA,VALUEB,VALUEC)
The following example shows a list of parameters with the repeat symbol.
COMMAND PARM1
COMMAND PARM1 PARM2 PARM3
COMMAND PARM1 PARM1 PARM3
For example, YES in the following diagram, its special treatment indicates it is
the default value for the parameter. If you do not include the parameter when
you write the statement, the result is the same as if you had actually specified
the parameter with the default value.
COMMAND PARM2
Choices you can make from this syntax diagram therefore include (but are not
limited to) the following:
COMMAND PARM1
COMMAND PARM3
COMMAND PARM3 PARM4
Note: Before you can specify PARM4 or PARM5 in this command, you must
specify PARM3.
──COMMAND──┬─────────┬────────────────────────────────────────
(1)
└─PARM1─── ┘
Note:
1 This is a note about the item.
When you are writing online exit routines or Monitor routines you may need
information that is either global to the online system or local to a terminal
user, in addition to such information as is passed in parameter lists. The
following sections give a brief description of the Advantage CA-Roscoe data
areas from which such information may be obtained.
Except as noted in the descriptions, all of the data areas described in this
chapter are read-only to site-written code.
Caution
The Advantage CA-Roscoe staff retains the right to change or delete any or
all undocumented data areas.
Notes
■ With the exception of the fields ROTUSER1 through ROTUSER6, the ROT
is read-only to site-written code.
■ The Advantage CA-Roscoe staff retains the right to change or delete any or
all undocumented fields in the ROT.
1.2.1 ATT1
The ATT1 (Active Terminal Table 1) is a DECB used for all event
synchronization for a user session. A chain field (CHAINTO2) connects the
ATT1 to its corresponding SCB.
1.2.2 SCB
The SCB (Session Control Block) contains information global to a user session.
1.2.3 PCB
Each SCB has two PCBs. A PCB (Presentation Area Control Block) controls a
presentation area.
This segment of the manual describes the facilities provided to assist sites in
writing Monitor routines. These facilities include:
■ Information about Monitor routine requirements and restrictions.
■ Monitor macros, which can be used to handle such areas as linkage
conventions, subtasking and reentrancy plus reading from and writing to
the terminal, an AWS or library member.
■ The AWS Interface, which can be used to create, edit and/or delete data in
an AWS.
■ The User Library Interface, which can be used to find, create, delete,
rename and alter library members.
2.1 Requirements
This section describes how site-written Monitor routines must:
■ Conform to specific naming conventions.
■ Exist in the Advantage CA-Roscoe load library.
■ Be defined in the Advantage CA-Roscoe JCL.
The following sample JCL can be used to assemble and link-edit a site-written
monitor routine.
Notes
| ■ You must use the IBM High Level Assembler as shown in the preceding
| sample.
■ The Advantage CA-Roscoe macro library (CAI.CRO60MAC) is always
concatenated as the first element with SYS1.MACLIB as ASM.SYSLIB. The
assembly should pass the temporary object module output into the link
step. The linkage-editor procedure uses the temporary object module
output as SYSLIB to resolve external references.
As described in the Advantage CA-Roscoe Installation and System Reference
guides, Advantage CA-Roscoe provides product usermods (MRO60xx
installation sample JCL members) for user modifications to some of the
distributed monitor routines.
A string, not exceeding 200 characters in length, can also be passed to the
routine.
If the RUN command is used to initiate execution of the Monitor routine (for
example, RUN COB...), additional information may be passed to the Monitor
routine. RUN enables the Monitor routine to process both a character string
and a library member name (allowing input from a source other than the
terminal). See the Command Reference Guidefor a detailed description of the
RUN command.
2.2 Restrictions
The following rules are applicable to all site-written Monitor routines.
■ Currently, the Monitor facility only recognizes AMODE24.
■ A Monitor routine must be established as a subtask if it uses the AWSI
and/or LIBI Interfaces and/or performs any I/O to data sets. (The $PROC
macro can be used to establish subtasking.)
If the routine is not established as a subtask:
– All dispatching of other Advantage CA-Roscoe activity is suspended
until the return from the routine.
– The following partial list of system facilities may not be used if the
routine is not a subtask. If such facilities are requested, the results are
unpredictable and may cause a system crash or lock-out.
ABEND (unless for testing)
CHAP
CHKPT
CIRB
CPUTIMER
ESPIE
ESTAE
GETMAIN (unconditional form)
SPIE
SNAP (unless for testing)
STAE
STIMER
SYNCH
TTIMER
WTOR
XCTL
■ Monitor routines may not access Advantage CA-Roscoe library members
or terminals by any means other than those provided by the Advantage
CA-Roscoe Monitor facilities.
■ I/O should, if possible, be unbuffered. It is the responsibility of the user to
ensure that sufficient memory is available if buffered I/O is used. The use
of dynamic buffering should be avoided.
This chapter describes macros that are provided to assist sites writing their
own Monitor routines. The macros can be used to handle the linkage
conventions between Advantage CA-Roscoe and the Monitor routine or
between the Monitor routine and any subroutine. They also assist in such areas
as subtasking and establishing reentrancy. The macros are distributed on
CAI.CRO60MLD and include:
$PROC establishes the entry point interface for the Monitor routine
and, optionally, establishes the routine as a subtask of
Advantage CA-Roscoe. If subtasking is not established, all
dispatching of other Advantage CA-Roscoe activity is
suspended until the return from the Monitor routine. $PROC
must be the first macro used in the routine.
$ROSCOE handles the communications between the Monitor routine
and Advantage CA-Roscoe.
$WRK indicates the beginning of the routine's local work area.
$WRKEND indicates the end of the local work area.
MONM generates static messages that are to be written by the
Monitor routine to the terminal.
$MONMSG generates static and variable messages that are to be written
to the terminal.
$PROCEND indicates the physical end of the routine. This macro must be
the last instruction of the routine.
$CALL Macro
──┬─────┬──$CALL──ROUTINE=─┬─(,label)─┬───────────────────────
└─tag─┘ └─(reg)─────┘
──┬──────────────────┬──┬──────────────┬───────────────────────
│ ┌─,──┐ │ └─,ERROR=label─┘
parm┴─)─┘
└─,PARM=(──
Notes
■ The $CALL macro reserves registers 0, 1, 14 and 15.
■ Notation used in the macro description:
(,label) generates L Rx,label
(reg) generates LR Rx,reg
where the value of 'x' is generated by the macro.
■ Control is returned to the calling routine by the $RETURN macro.
■ If a code of 0 is returned by the called routine, execution begins with the
instruction immediately following the $CALL macro.
If a code other than 0 is returned, control transfers to the instruction
associated with the label identified by ERROR=.
Example: In the following example, the routine FIRST calls the routine
SECOND and passes two parameters to SECOND:
The routine FIRST loads the address of the data area AFIELD into register 5.
When SECOND is called, the address of the ROT is placed in the area
ROTADDR and the contents of register 5 is placed in the area R5VALUE.
When SECOND has completed its task, control returns to FIRST by the
$RETURN macro. If register 15 contains a value other than 0 on return to
FIRST, control is transferred to the area identified as ERROR01.
$GBL Macro
──┬─────┬──$GBL───────────────────────────────────────────────
└─tag─┘
$GBLEND Macro
──&GBLEND─────────────────────────────────────────────────────
tag is the name to be used with the generated DSECT. If omitted, the
name specified with the GLOBAL= parameter of the $PROC
macro is used.
Notes
■ Data that is to be known and/or modified by multiple routines must be
defined between a $GBL and $GBLEND macro.
The area between $GBL and $GBLEND is cleared to binary zeros initially
and not modified during the execution of the Monitor routine. With the
$WRK and $WRKEND macros, the area is cleared to zeros every time the
routine is called. Therefore, the $GBL and $GBLEND macros should be
used to define a work area that is to be known to the routine in which it
appears and to all routines calling or called by the routine.
■ A DSECT is generated immediately following the $GBL macro.
Example: Assume that the routine GBLTEST contains the following code:
The code generated by the $GBL and $GBLEND macros would be like:
$GBL
+GAREA DSECT
NAME1 DS F
NAME2 DS F
$GBLEND
+ DS D
+GAREALN EQU -GAREA
Since no tag was specified on the $GBL macro, the generated code uses the
name specified with the GLOBAL= parameter of the $PROC macro.
Notes
■ If the tag is specified with the MSGLIST= parameter of the $ROSCOE
macro, the $ROSCOE macro will generate the code necessary to write the
message to the terminal or the active AWS.
■ Use the $MONMSG macro to send a variable-text message.
Examples
1. The following example shows how static messages must be set up when
the label of the MONM macro is not referenced by a $ROSCOE macro.
2. The following example shows how the same static message is written
when the label of a MONM macro is referenced by the $ROSCOE macro,
using the PUTTERM function.
GETKEY EQU
$ROSCOE FUNC=PUTTERM,MSGLIST=MSG1
...
MSG1 MONM 'NAME ADDRESS'
$MONMSG Macro
──tag──$MONMSG──'text',(V,'var-text.)...──┬─────────┬──────────
└─,TRAP=v─┘
──┬────────────────────┬───────────────────────────────────────
│ ┌─ERROR─┐ │
└─,LEVEL=─┴─INFO──┴──┘
Notes
■ A maximum of four combinations of static and variable text may be
included in a single message.
■ Use the PUTMSG function of $ROSCOE macro to write the message to the
terminal.
■ All consecutive blanks in the text or variable text segment are compressed
out.
Example: In the following example, the value INIT is loaded into LIBFUNC.
If an error should occur when the LIBI function is attempted, control transfers
to LIBFAIL. The FUNCT=PUTMSG of the $ROSCOE macro is then used to
indicate the location of both the error message (AAA01) and the variable text
(LIBFUNC) that is to be included in that message.
$PRM Macro
──$PRM────────────────────────────────────────────────────────
$PRMEND Macro
──$PRMEND─────────────────────────────────────────────────────
Example: In the following example, the addresses of ABC and DEF are
passed by the $CALL macro to ABCADDR and DEFADDR in the routine
identified as NEXT:
$PROC Macro
──tag──$PROC──MODE=─┬─ROSCOE─┬───┬──────────────────┬──────────
└─ROSSUB─┘ │ ┌─NO──┐ │
└─,ASYNC=─┴─YES─┴──┘
──┬─────────────┬──┬─────────────┬──┬──────────────┬────────────
└─,WORK=label─┘ └─,PARM=label─┘ └─,GLOBALlabel─┘
──┬───────────────────┬──┬────────────┬─────────────────────────
│ ┌─-───┐ │ └─,ISA=bytes─┘
└─ERROR=─┴─label─┴──┘
──┬───────────────────┬────────────────────────────────────────
│ ┌─NOGEN─┐ │
└─PRINT=─┴─GEN───┴──┘
ISA=bytes is the size of the storage area needed by the routine, specified
in bytes. If omitted, the default is 4096 (4K).
PRINT= designate whether the code generated by the $PROC macro
is to be printed. If omitted, the default is NOGEN. Specify
either:
GEN print expanded code
NOGEN do not print expanded code
Notes
■ The $PROC and $PROCEND macros are required if the $ROSCOE macro
is used.
■ $PROC generates the linkage necessary to handle the communications
between the Advantage CA-Roscoe main task and the routine. If it is
used, it must be the first macro in the routine. (All of the code for the
routine follow the $PROC macro and precede the $PROCEND macro.)
■ $PROC reserves the following registers:
Register Use
12 Routine's base address register.
13 Base address register for DSECT generated for the local
work area.
11 Base address register for DSECT generated if GLOBAL= is
specified.
10 Base address register for DSECT generated if PARM= is
specified.
Location Contents
Byte 1 X'00'
Byte 2 First character of the command identifier (for example, I
for IMPORT).
Byte 3 Fourth character of the routing name. It is not specified, a
binary zero is presented.
Byte 4 Optional appendage to the identifier (for example, B in
(ZAP-B). If there is no appendage, the byte i set to X'00'.
$PROCEND Macro
┌─NOGEN─┐
──$PROCEND──PRINT=─┴─GEN───┴──────────────────────────────────
Notes
■ The $PROCEND macro must be specified if the $PROC macro is also
specified. It must be the last statement of the routine.
$RETURN Macro
──┬─────┬──$RETURN──┬─────────────────────┬───────────────────
└─tag─┘ └─R15=─┬─label─────┬──┘
├─(,label)─┤
└─(reg)─────┘
Notes
■ $RETURN restores registers before passing control back from the called to
the calling routine.
■ The $RETURN macro reserves registers 0, 1, 14 and 15.
■ Notation used in macro description:
label generates LA Rx,label
(,label) generates L Rx,label
(reg) generates LA Rx,reg
where the value of 'x' is generated by the macro.
■ See the $CALL macro for an example of $RETURN.
$ROSCOE Macro
──tag──$ROSCOE──┬─┬────────────────────────────────┬─┬────────
│ └─FUNC=function─┬─────────────┬──┘ │
│ └─,ATTN=label─┘ │
├─┬─────────┬────────────────────────┤
│ └─DROP=Rn─┘ │
└─┬────────┬──┬───────────────────┬──┘
└─USE=Rn─┘ └─,BLOCK=─┬─ROS──┬──┘
├─ATTI─┤
├─SCB──┤
└─PCB──┘
Notes
■ Notation used in macro description:
label generates LA Rx,label
(,label) generates L Rx,label
(reg) generates LR Rx,reg
where the value of 'x' is generated by the macro.
The following list introduces the $ROSCOE functions. The functions are
described alphabetically in the remainder of this section.
Function Purpose
GETTERM reads a line from the terminal.
PUTTERM writes a line to the terminal.
PUTMSG writes a message containing both static and variable text to
the terminal.
GETAWS gets the next 80-character line from the AWS or library
member.
PUTAWS writes an 80-character line to the active AWS.
GETAWSX reads the next line from the active AWS or library member.
PUTAWSX writes a line to the active AWS.
SPIE passes Advantage CA-Roscoe the address of a pseudo-SPIE
exit routine.
PAUSE causes a Pause State.
TIMEOUT causes a time-out.
REALWAIT causes the Monitor to return control to Advantage
CA-Roscoe which waits on the user's ATT1 ECB.
SESSION writes an accounting record.
PVR puts or gets data from the Advantage CA-Roscoe Program
Variable Pool.
FINAL designates the final return. The routine is terminated.
FINAL Function
──tag──$ROSCOE──FUNC=FINAL──┬─────────────┬───────────────────
└─,ATTN=label─┘
Notes
■ On return, the value in the low-order two bytes of register 0 is taken as a
return code.
■ The return code is set to 998 if the Monitor routine is made unavailable
because of an 0Cx exception or an invalid parameter returned to
Advantage CA-Roscoe.
■ The return code may be accessed by RPF programs as the value of the
session variable S.RC. This variable is reset to 0 when a RUN command is
executed or a Monitor routine is invoked. (See the Advantage CA-Roscoe
Interactive Environment RPF Language Guide for additional information.)
■ After this function is executed, there are no further calls to the Monitor
routine.
GETAWS reads the next 80-character line from an active AWS or library
member.
GETAWS Function
──tag──$ROSCOE──FUNC=GETAWS──┬─────────────┬──────────────────
└─,ATTN=label─┘
Notes
■ On return:
– Register 0 will contain binary zero.
– Register 1 will contain either 0 (no data passed from Advantage
CA-Roscoe to the routine) or the address of the line of the active AWS
or library member being read.
■ Record format: 74 characters of data followed by the six-digit sequence
number (as a binary fullword).
■ A Monitor routine may direct Advantage CA-Roscoe to pass data from the
active AWS or a library member without overlaying the contents of
columns 75 through 80 with the sequence number by ORing X'40' into
SWITCH06 in the SCB. This switch setting is reset before initial entrance to
a Monitor routine, but is not reset by Advantage CA-Roscoe during
execution of the routine.
■ Use GETAWSX when sequentially reading lines that do not exceed 255
characters in length.
■ Use the AWSI or LIBI Interface when the access to the AWS or library
member is other than sequential.
GETAWSX reads the next variable-length line from an active AWS or library
member.
GETAWSX Function
──tag──$ROSCOE──FUNC=GETAWSX──┬─────────────┬─────────────────
└─,ATTN=label─┘
Notes
■ On return:
– Register 0 will contain binary zero.
– Register 1 will contain the address of the active AWS or library
member record being read.
■ Record format: An eight-byte header precedes the data. The header
consists of a length field (containing the length of the data plus eight
If the record contains no data, the length field will contain 8, the length of
the header.
■ Use GETAWS when sequentially reading 80-character lines.
■ Use the AWSI or LIBI Interface when the access to the AWS or library
member is other than sequential.
GETTERM Function
──tag──$ROSCOE──FUNC=GETTERM──┬─────────────┬─────────────────
└─,ATTN=label─┘
Notes
■ On return:
– Register 0 will contain binary zero.
– Register 1 will contain the address of a 200-byte area containing the
reply from the terminal. (If the area contains all blanks, the terminal
user pressed the ENTER key with no reply.). The length of the reply
can be determined by scanning backward for a nonblank character. All
terminal control characters will have been deleted.
PAUSE Function
──tag──$ROSCOE──FUNC=PAUSE──┬─────────────┬───────────────────
└─,ATTN=label─┘
Notes
■ PAUSE can be used by CPU-bound Monitor routines executing at the main
task level.
■ When PAUSE is specified and control returns to Advantage CA-Roscoe,
the Monitor routine is reentered (dispatched) again only when all pending
work for the other terminals has come to a break point. (The purpose of
the pause state is to allow other users to dispatch in this fashion.) Pending
work is represented to Advantage CA-Roscoe by an ECB that is posted to
indicate completion of some request (for example, I/O). A break point
means that the user last dispatched has reentered a wait state (for example,
pending completion of an I/O request). If a Monitor routine returns in a
pause state when there is no pending work for any other user of the
system, the Monitor routine is immediately redispatched.
■ After some number of consecutive pause-state returns from the Monitor
routine, the terminal user is permitted to terminate execution of the
Monitor routine when the following message is issued:
PAUSE ... ENTER "STOP" TO TERMINATE
The value of the pause limit is preset to 120. It may be changed in two
ways:
– With the Advantage CA-Roscoe initialization parameter PAUSE, as
defined in the Programs and Utilities Guide.
– by the ROZAP command, as described in the Advantage CA-Roscoe
Interactive Environment System Commands Guide.
■ The $ROSCOE macro provides additional facilities for delaying the
reentrance to the Monitor routine. These facilities, TIMEOUT and
REALWAIT, are mutually exclusive (for a single return from the Monitor
routine) and are designed for different purposes. Each facility can be used
only when the Monitor returns in a pause state.
PUTAWS Function
──tag──$ROSCOE──FUNC=PUTAWS──,MSGLIST=label──┬─────────────┬──
└─,ATTN=label─┘
Notes
■ Lines written to the AWS are assigned sequence numbers beginning with
one and incrementing by one. When a Monitor routine makes its first
request to write to the active AWS, the previous contents of that AWS are
lost.
■ Use PUTAWSX when sequentially writing lines that do not exceed 255
characters in length.
■ the AWSI or LIBI Interface when the access to the AWS or library member
is other than sequential.
PUTAWSX Function
──tag──$ROSCOE──FUNC=PUTAWSX──,MSGLIST=label───────────────────
──┬─────────────┬──────────────────────────────────────────────
└─,ATTN=label─┘
Notes
■ The first byte of the MSGLIST= address list must contain a X'80' and the
address must point to the record to be written. The format of the record is:
1 3 7 9 263
┌────────┬──────────┬────┬─────────────┐
│ │ │ │ │
│ length │ seq. no. │ │ data (255) │
└────────┴──────────┴────┴─────────────┘
Lines written to the AWS are assigned sequence numbers beginning with
one and incrementing by one. When a Monitor routine makes its first
request to write to the active AWS, the previous contents of that AWS are
lost.
■ Use PUTAWS when sequentially writing 80-character lines.
■ Use the AWSI or LIBI Interface when the access to the AWS or library
member is other than sequential.
PUTMSG Function
──tag──$ROSCOE──FUNC=PUTMSG──,MSGLIST=label────────────────────
──┬─────────────────┬──┬──────────────────┬─────────────────────
│ ┌─,──┐ │ │ ┌─NO──┐ │
addr┴─)─┘ └─,ALARM=─┴─YES─┴──┘
└─,SUB=(──
──┬─────────────────┬──┬─────────────┬─────────────────────────
│ ┌─NO──┐ │ └─,ATTN=label─┘
└─,MASK=─┴─YES─┴──┘
Notes
■ Messages written by the PUTMSG function observe the terminal user's use
of the SET MONLEVEL and SET MONTRAP commands (or the site
default values for these commands).
PUTTERM Function
──tag──$ROSCOE──FUNC=PUTTERM──,MSGLIST=label───────────────────
──┬──────────────────┬──┬─────────────────┬──┬─────────────┬───
│ ┌─NO──┐ │ │ ┌─NO──┐ │ └─,ATTN=label─┘
└─,ALARM=─┴─YES─┴──┘ └─,MASK=─┴─YES─┴──┘
PVR puts data into or gets data from the Advantage CA-Roscoe Program
Variable Pool.
PVR Function
──tag──$ROSCOE──FUNC=PVR──,PARM=label──┬─────────────┬────────
└─,ATTN=label─┘
Notes
■ Any valid RPF variable may be specified with this function, as in:
... DC C'L1' Local variable
... DC C'S.SEQ' Session variable
... DC C'D.DSN' Data Set variable
... DC C'P.name' Panel variable
... DC C'NAME<5>' User-defined index variable.
Note that when referencing panel variables, the panel must be active.
■ Get Data:
To get data from the Advantage CA-Roscoe Program Variable Pool,
PARM= must contain the address of an address list, as in:
$ROSCOE FUNC=PVR,PARM=GET
MVC DATA1(26),1(R1)
The address list must contain the address of the request to get the data.
For example, the code to obtain the contents of local variable L1 might
look like:
GET DS F POINTS TO ACTION REQUESTED
VARNAME DS F POINTS TO VARIABLE
...
ACTION DC F'1' GET REQUESTED
VARIABLL DC AL1(L'VARA') VARIABLE LENGTH
VARA DC C'L1 VARIABLE NAME
On return, register 1 will contain the address of the data formatted as a
1-byte length field immediately followed by the data.
■ Put Data:
If data is to be placed into the Advantage CA-Roscoe Program Variable
Pool, PARM= must contain the address of an address list, as in:
$ROSCOE FUNC=PVR,PARM=PUT
The address list must contain the address of the request to place the data,
the variable containing the data and the data itself. The following example
illustrates how data may be placed into a variable:
PUT DS F POINTS TO ACTION REQUESTED
VARNAME DS F POINTS TO VARIABLE
DATAADR DS F POINTS TO DATA DATA
...
ACTION DC F'2' PUT REQUESTED
VARIABLL DC AL1(L'VARB') VARIABLE LENGTH
VARB DC C'P.COMMENT' VARIABLE NAME
DATA DC AL1(L'DATA1') DATA LENGTH
DATA1 DC C'DATA TO BE PUT IN VARIABLE'
REALWAIT Function
──tag──$ROSCOE──FUNC=REALWAIT──┬─────────────┬────────────────
└─,ATTN=label─┘
Notes
■ If ASYNC=YES is coded in the $PROC macro associated with this
$ROSCOE macro, the REALWAIT function cannot be used. Instead, the
routine should use the OS WAIT macro.
If ASYNC=NO is coded in the $PROC macro, the REALWAIT function
should be used after issuing any I/O macros. With the REALWAIT
function, SWITCH02 in the SCB is ORed with X'02'. Advantage CA-Roscoe
does not return to dispatch the Monitor routine until the user's ATT1 ECB
is posted. This facility is also designed for subtask communications
between the Monitor routine and its subroutines. If the Monitor routine
attaches a subtask and then has nothing to do until completion of the
subtask (or of a request by the subtask for input, and so forth), it should
pass to the subtask the address of the field ECB in the ATT1. The subtask
should then post the ECB when appropriate. The Monitor routine is
meanwhile in a wait state which ends only when the ECB is posted. Once
the ECB is posted, Advantage CA-Roscoe: 1) copies the contents of field
ECB into field LASTECB in the ROT, 2) clears the ECB and 3) dispatches
the Monitor routine.
■ If the Monitor routine does not ensure that the ECB is eventually posted,
the terminal will be locked out until Advantage CA-Roscoe is shut down.
For some subtasks, particularly those which perform no input or output
operations, the ECB may be specified as the operand of the ECB= keyword
of ATTACH. Normally, though, this ECB is needed to control ongoing
communication between the Monitor routine and the subtask; it is then
necessary to specify an exit routine address (using the ETXR=keyword of
ATTACH) and arrange for the specified exit routine to notify the Monitor
routine when the subtask has completed.
■ After a Monitor routine is entered with the must-stop condition (R0 =
X'FF000000'), it is permitted to request a real wait before making its final
return. This is to permit orderly disposal of subtasks and the like. It is the
responsibility of the Monitor routine to ensure against a processing loop in
this state.
SESSION Function
──tag──$ROSCOE──FUNC=SESSION──,RECORD=(req)──┬─────────────┬──
└─,ATTN=label─┘
SPIE Function
──tag──$ROSCOE──FUNC=SPIE──,PARM=label──┬─────────────┬───────
└─,ATTN=label─┘
Notes
■ Advantage CA-Roscoe intercepts all program exception interrupts (except
significance) occurring under the first PRB of the Advantage CA-Roscoe
job-step task with its own SPIE/ESPIE exit routine. (Interruption occurring
in subtasks or under SVRBs are not intercepted.)
■ If ASYNC=YES is coded on the $PROC macro, the routine is a subtask.
FUNC=SPIE cannot be specified. The Monitor routine should, therefore,
provide its own SPIE or ESPIE exit routine. If a program exception
interrupt should occur and the Monitor routine does not have an exit
routine, only the subtask will abend.
If ASYNC=NO is coded on the $PROC macro, the routine is running at the
main-task level. FUNC=SPIE should be designated on the first call to
Advantage CA-Roscoe following the $PROC macro. (The SPIE function
and associated address are ignored if the S subparameter is not coded on
the Advantage CA-Roscoe RUN= initialization parameter for the Monitor.)
■ If the Monitor routine has its own pseudo-SPIE exit, Advantage CA-Roscoe
passes it control after having intercepted an interrupt. A pseudo-SPIE exit
routine is simply a SPIE exit routine written according to all conventions
defined by OS. The contents of the registers and linkage conventions are
precisely as though the pseudo-SPIE exit had received control directly
from the operating system. Advantage CA-Roscoe always invokes the exit
routine with a parameter list that is identical to that provided for a SPIE
TIMEOUT Function
──tag──$ROSCOE──FUNC=TIMEOUT──┬─────────────┬─────────────────
└─,ATTN=label─┘
Notes
■ Advantage CA-Roscoe will not dispatch the Monitor routine again until
one-tenth of a second has elapsed. The reentrance may be somewhat
delayed if there are many users with work pending on the dispatching list.
It may also occur earlier if a timer request is already pending for another
user.
Location Contents
Byte 1 X'FF'
Byte 2 X'00'
Byte 3 X'00'
Byte 4 Code identifying the type of exception condition.
Examples
1. This example shows how the PUTTERM function causes the address of
MSG1 to be loaded into register 1 and a return code of 4 to be placed in
register 15. The message is then written to the terminal. The GETAWS
function is then used to obtain the user's response and place it in register
1.
2. This example shows how the address of NEXTLINE is loaded into register
1, which allows R1 to be specified with the PUTAWS function. This causes
the function to use the address in register 1 and place the return code into
register 15.
LA R1,NEXTLINE
$ROSCOE FUNC=PUTAWS,MSGLIST=(R1)
...
NEXTLINE MONM ' ROSCOE '
GETROT EQU
$ROSCOE USE=R5,BLOCK=ROT
4. In this example, if an error should occur when the INIT function of LIBI is
attempted, control transfers to LIBFAIL. The PUTMSG function notes the
location of the error message (AAA01) and the variable text (LIBFUNC)
that is to be included in that message.
$WRK Macro
──$WRK────────────────────────────────────────────────────────
$WRKEND Macro
──$WRKEND─────────────────────────────────────────────────────
Notes
■ A DSECT is generated immediately following the $WRK macro. Its name
is the name specified with the WORK= parameter of the $PROC macro. It
is a 128-byte area and contains the OS save area. Any data areas that may
be modified must be defined within this area.
■ Every time a $PROC macro is executed, the area between the $WRK and
$WRKEND macros is cleared to binary zeros.
■ Data areas that may be referenced or modified by multiple routines should
be defined between a $GBL and $GBLEND macro. These macros maintain
the data across calls.
Example
The code generated by these $WRK and $WRKEND macros would be:
...
$WRK
+WAREA DSECT
+ DS XL($$SVLN) SAVE AREA
NAME1 DS ...
NAME2 DS ...
$WRKEND
+ DS D
+WAREALN EQU -WAREA
...
At sign-on time, AWSMGR creates an AWS for the terminal user. An AWS is
initially empty, and expands and contracts as records are added and deleted.
The maximum number of records in an AWS is established by site
management as described in the Advantage CA-Roscoe Interactive Environment
System Reference Guide. (The INFO function of AWSI can be used to obtain this
value.)
Individuals using the Interface need only concern themselves with the AWSI
macro.
Record Format: The AWSI Interface accepts data in either of two formats.
Use the XRF= parameter of the AWSI macro to designate which format of the
data you want to work with.
When XRF=YES is specified, records not exceeding 263 bytes in length are
expected. The length field includes the length of the data plus eight bytes. The
format is:
1 2 7 9 263
┌────────────┬──────────────┬────┬───────────────────┐
│ │ │ │ │
│ hex length │ hex seq. no. │ │ EBCDIC data (255) │
└────────────┴──────────────┴────┴───────────────────┘
Data Areas: The AWSI macro uses two data areas which must be defined in
the program or in dynamically obtained storage. The two areas are:
1. The AWSRB (AWS Request Block) is required for all functions. It is a
32-byte communication aligned on a fullword boundary. The area must be
obtained before the first call on AWSI and must remain intact until the
final call. A DSECT mapping the AWSRB is generated by the Advantage
CA-Roscoe macro AWSRB.
2. The AWSPB (AWS Parameter Block) is required by the Interface for many
function calls. It is a variable-length parameter list. The list is used in
conjunction with the AWSI macro to specify the function to be performed
by the AWSMGR. (The parameter list can be mapped by the AWSPB
DSECT generated by the Advantage CA-Roscoe macro AWSPB.)
When the AWSI Interface is initially invoked, the contents of the field
AWSRNBPT in the AWSRB identifies the terminal user's AWS. If another
AWS is needed, the contents of this field must be saved before activating the
new AWS. This is because the result of activating a new AWS causes the prior
contents of AWSRNBPT to be overlaid with information identifying the new
AWS.
Points to Remember:
■ The AWSI Interface expects the field AWSRNBPT to identify the current
AWS. When working with multiple AWSs, be sure to save and restore the
contents of this field so that the appropriate AWS is always identified.
■ When the processing of an AWS is completed, use the FREE function of
AWSI to release it to the AWSMGR. Be very careful not to inadvertently
release:
1. The wrong AWS, or
2. An AWS controlled by the main task.
■ Working with multiple AWSs is limited by the number of AWSs defined
by the site.
Linkage Conventions
■ Standard OS linkage conventions must be observed when using AWSI.
Register 13 must point to an 18-fullword save area.
■ On return from AWSI, the contents of registers 2 through 13 are restored.
Register 15 contains a return code of:
0 No errors or exception condition.
4 Error or exception condition. The field AWSRXRC in the
AWSRB contains a one-byte extended return code permitting an
exact determination of the nature of the exception. It is the
responsibility of the caller to take appropriate action after an
exception occurs.
AWSI Macro
──┬─────┬──AWSI──FUNC=─┬──────────┬───,AWSRB=─┬─label─────┬────
└─tag─┘ ├─ACTIVATE─┤ ├─(,label)─┤
├─CKPTIO───┤ └─(reg)─────┘
├─Copy─────┤
├─DELETE───┤
├─FREE─────┤
├─GET──────┤
├─INFO─────┤
├─INIT─────┤
├─MOVE─────┤
├─POINT────┤
├─PUT──────┤
├─RENUMBER─┤
├─RESETI───┤
├─SETI─────┤
├─STATUS───┤
└─TERM─────┘
──┬───────────────────────┬──┬────────────────────┬─────────────
└─,PARM=─┬─label─────┬──┘ └─,ERROR=─┬─+4───┬──┘
├─(,label)─┤ └─label─┘
└─(reg)─────┘
──┬────────────────┬───────────────────────────────────────────
└─,XRF=─┬─NO──┬──┘
└─YES─┘
Notes
■ Notation used in macro description:
label generates LA Rx,label
(,label) generates L Rx,label
(reg) generates LR Rx,reg
where the value of 'x' is generated by the macro. If (reg) is coded and is
equal to the register generated by AWSI, no instruction is generated.
■ The AWSI macro generates code to do the following:
– Load the address of the PARM into register 0.
– Load the address of the AWSRB into register 1.
– Move an entry code into the AWSRB.
– Load a pointer (from AWSRB to the AWSI) into register 15.
– Call the Interface (AWSI) using a BALR 14,15.
■ AWSI is dynamically loaded on the INIT call and freed on the TERM call.
Parameters
AWSPM set the first halfword of AWSPM to the terminal user's protect
code. (This can be obtained from the SCB field ACCNUMX.) Set
the next three bytes to the user's prefix (contained in the SCB
field PREFIX). The remaining three bytes are reserved and must
contain blanks.
Parameter Representation
Notes
■ This information is used during SAVEAWS processing.
■ On a successful return from ACTIVATE, the contents of the field
AWSRNBPT in the AWSRB uniquely identifies the newly created AWS.
(Before executing this function, be sure to have saved the contents of
AWSRNBPT.)
Position in AWS
Not Applicable.
Parameters
None
Notes
■ The purpose of this function is to guarantee the integrity of AWS data. If
CKPTIO is not used, all modified buffers are written to disk when any
buffer becomes full.
■ If the application fills the buffers quickly (as with a FETCH command), it
is unnecessary and wasteful to force a checkpoint. If, however, the
application fills the buffers slowly, with each line being added after a
comparatively lengthy computational process, or if the application
continuously modifies data lines which are all in the same block, it may be
advisable to invoke the CKPTIO function from time to time.
Position in AWS
Not Applicable.
Parameters
AWSPM specify the start of the range to be copied as a sequence number
or positional value.
AWSPN specify the end of the range to be copied as a sequence number
or a record count.
AWSPO specify the destination of the operation as a sequence number or
positional expression.
AWSPP specify the increment to be used when inserting records at their
destination. If this optional parameter is omitted, an increment
value of 1 is used. If specified, the increment must be a positive
value. If 0 is specified, it is treated as though 1 is specified.
AWSPQ specify the duplication count to be used when inserting multiple
copies of a record or records at the destination. If this optional
parameter is omitted, a duplication value of 1 is assumed. If
specified, it must be a positive value. If 0 is specified, it is
treated as though 1 is specified.
Parameter Representation
Notes
■ If both the source range (AWSPM and AWSPN) and the destination
(AWSPO) are positional expressions, the original current position is used
to calculate both actual locations.
See the description of the POINT function for information about specifying
a range of sequence numbers or a relative position.
Examples
1. Copy records 10 through 30 after record 200, using 5 as the increment:
AWSPM: 0 10
AWSPN: 0 30
AWSPO: 0 200
AWSPP: 0 5
AWSPQ: 0 0
2. Copy records 500 through 600 after the current record, using 1 as the
increment, duplicating the records 3 times:
AWSPM: 0 500
AWSPN: 0 600
AWSPO: 0 0
AWSPP: 0 1
AWSPQ: 0 3
3. Copy the ten records, beginning with the tenth record preceding the
current record, to after the tenth record following the current record, using
10 as the increment.
AWSPM: 0 10
AWSPN: 0 10
AWSPO: 0 10
AWSPP: 0 10
AWSPQ: 0 0
The destination (AWSPO) may not lie within the source range. For
example, 10, 100, and 50 constitute invalid values for AWSPM, AWSPN
and AWSPO, respectively.
Position in AWS
At last record copied.
Parameters
AWSPM specify the start of the range to be deleted as a sequence number
or positional value.
AWSPN specify the end of the range to be deleted as a sequence number
or a record count.
Parameter Representation
Notes
■ AWSPM and AWSPN must define the entire range of records to be
deleted. A description of how to specify sequence numbers and a
description of how to specify relative positioning are given under POINT.
■ The entire AWS may be deleted by omitting the parameter, as in:
AWSI FUNC=DELETE,AWSRB=awsrb,ERROR=error
Examples
1. Delete record 10:
AWSPM: 0 10
AWSPN: 0 10
AWSPM: 0 0
AWSPN: 0 1
AWSPM: 0 30
AWSPN: 0 100
4. Delete four records beginning with the fifth record preceding the current
one:
AWSPM: 0 5
AWSPN: 0 4
5. To delete two records beginning with the seventh record following the
current one:
AWSPM: 0 7
AWSPN: 0 2
Notes
■ For a simple release, no parameters are passed. The AWSMGR will free the
AWS identified by the contents of the AWSRNBPT field of the AWSRB.
■ When exchanging AWSs, the parameter must be the contents of the
AWSRNBPT that identifies the AWS to be retained. (The contents of the
field AWSRNBPT of the AWSRB must identify the AWS to be freed (the
AWS originally owned by the main task).)
Exchanging AWSs occurs when a new AWS created by the subtask is to
replace the terminal user's AWS. The terminal user's AWS is released and
the new AWS is returned to the main task for use by the terminal user.
■ All AWSs activated by the caller must be freed. Be sure you do not
inadvertently free the AWS owned by the main task. The AWS released by
FREE is the one identified by the contents of the AWSRNBPT field in the
AWSRB when FREE is invoked.
Position in AWS
Not Applicable.
Parameter Representation
Notes
■ To retrieve the next record beginning at the current position, no
parameters are passed.
■ Setting a logical end-of-AWS limits the action of a GET. With this action,
data in the AWS can be partitioned into logical segments defined by
sequence numbers. These sequence numbers define an inclusive segment.
■ GET returns the appropriate information unless the end of the AWS has
been reached. The end-of-AWS condition can be forced when a parameter
is passed limiting the retrieval range.
■ The format of the record depends on the XRPF= parameter specified with
the AWSI macro.
– If XRF=YES is specified, GET returns the address of the record in the
field AWSRPARM in the AWSRB. The first two bytes of the record
contain the length of the record and represent the actual data length
plus eight bytes. The data can be a maximum of 255 bytes in length.
(See the PUT function for a description of the record format.)
– If XRF=NO is specified, GET returns the address of the record in the
AWSRPARM field. If the record exceeds 80 bytes in length, only the
first 80 are available. (See the PUT function for a description of the
record format.)
Position in AWS
At record obtained.
Parameters
addr pointer to an AWS Information Block (AWSIB). The block is eight
bytes long, and is mapped by the Advantage CA-Roscoe macro
AWSIB. The caller must set the first two bytes to X'0308' before
issuing an INFO request.
Notes
■ On return from AWSI, the second halfword of AWSIB will contain a value
equal to the maximum number of records allowed in the AWS (AWSSIZE).
The second word will contain the highest possible sequence number
permitted (99999999).
Position in AWS
Not Applicable.
Parameters
AWSPM specify the ROT address.
AWSPN specify address of the ATT1. Subsequent AWS operations are
performed on the AWS maintained for the terminal user by the
main task
Parameter Representation
AWSPM: 0 A(ROT)
AWSPN: 0 A(ATT1)
Notes
■ The AWSRB must be initialized to binary zeros before the INIT function is
invoked. After the INIT function completes, the contents of the
AWSRNBPT field in the AWSRB uniquely identify the terminal user's
AWS.
Position in AWS
Not Applicable.
Parameters
AWSPM specify the start of the range to be moved as a sequence number
or positional value.
AWSPM specify the end of the range to be moved as a sequence number
or record count.
AWSPO specify the destination of the operation as a sequence number or
positional expression.
AWSPP specify the increment to be used when inserting records at their
destination. If this optional parameter is omitted, an increment
value of 1 is used. If specified, it must be a positive value. If 0 is
specified, it is treated as though the value 1 is specified.
Parameter Representation
Notes
■ If both the source range (AWSPM and AWSPN) and the destination
(AWSPO) are positional values, the original current position is used to
calculate both actual locations.
See the description of the POINT function for information about specifying
sequence numbers and how to specify relative positioning.
Examples
1. Move records 10 through 30 after record 200, using 5 as the increment:
AWSPM: 0 0
AWSPN: 0 30
AWSPO: 0 200
AWSPP: 0 5
2. Move records 500 through 600 after the current record, using 1 as the
increment:
AWSPM: 0 500
AWSPN: 0 600
AWSPO: 0 0
AWSPP: 0 1
3. Move the ten records, beginning with the tenth record preceding the
current record, to after the tenth record following the current record, using
10 as the increment.
AWSPM: 0 10
AWSPN: 0 10
AWSPO: 0 10
AWSPP: 0 10
The destination may not lie within the source range (10, 100, and 50
constitute invalid values for AWSPM, AWSPN and AWSPO, respectively).
Position in AWS
At last record moved.
Notes
■ When using the first parameter list format:
The high-order byte of AWSPM and the high-order byte of AWSPN must
be 0. The AWS is searched for the first record whose sequence number
lies within the specified range.
– If a record is found, the return code is 0 and AWSRPARM in the
AWSRB contains the sequence number.
– If no record is found, the return code contains a non-zero value.
If the specified range begins after the last line of the AWS, the return code
is 0 and AWSRPARM contains a zero.
■ When using the second parameter list format, the current record pointer is
moved forward record by record until the count is exhausted or until the
current record pointer points to the last record of the AWS.
■ When using the third parameter list format, the current record pointer is
moved backward record by record until the count is exhausted or the AWS
is positioned at the first record in the AWS.
Examples
1. Point to record 30 if it exists:
AWSPM: 0 30
AWSPN: 0 30
AWSPM: 0 30
AWSPN: 0 0
AWSPM: 4 5
AWSPM: 8 5
Position in AWS
At record pointed to.
Parameter
addr address of the record to be placed in the AWS.
Notes
■ The expected format of the record depends on how the XRF= parameter is
specified with the AWSI macro.
If XRF=NO is specified, the format of the record is expected to be:
1 81 82 84
┌──────────────────┬───┬─────────┐
│ │ │ │
│ data (length 8) │ │ seq.no. │
└──────────────────┴───┴─────────┘
Position in AWS
At record INPUT.
Parameters
AWSPM specify the new starting sequence number.
AWSPN specify the increment value.
Parameter Representation
Notes
■ The first record in the AWS is assigned a sequence number equal to the
contents of AWSPM. Each subsequent record is assigned a sequence
number equal to that of the previous record, plus increment.
AWSPM: 0 10
AWSPN: 0 10
Position in AWS
At last record of AWS.
Parameters
None
Position in AWS
At last record inserted.
Parameters
The same as for POINT. Refer to the description of POINT.
Notes
■ When insert mode is in effect, subsequent PUT functions cause new
records to be inserted after the current record. Inserted records must have
ascending sequence numbers. While in insert mode, the only valid
functions are: CKPTIO, INFO, PUT and RESETI. Any other function causes
insert mode to be terminated. (No error or exception condition is
returned.) Use the RESETI function to terminate insert mode. RESETI also
causes records following those inserted to be renumbered until there is no
sequence number conflict.
■ When insert mode is not in effect, inserted records overlay any existing
records.
AWSPM: 0 30
AWSPN: 0 0
Position in AWS:
At insert point.
Parameters
addr pointer to an AWS Status Block (AWSSB). The block is eight
bytes long, and is mapped by the Advantage CA-Roscoe macro
AWSSB. The caller must set the first two bytes to X'0C08' before
issuing the STATUS request.
Notes
■ On return from AWSI, the second halfword of AWSSB will contain a value
equal to the number of records in the AWS and the second word will
contain the highest sequence number.
Position in AWS
Not Applicable.
Parameters
None
Notes:
■ INIT must be invoked after all other functions. It does not free AWSs
obtained by ACTIVATE requests; the caller must explicitly free any AWSs
activated.
Position in AWS
Not Applicable.
Notes
■ On return from the AWSMGR, the following functions return information
in the AWSRPARM field:
Function Returns
FREE parameter from ACTIVATE for 8 bytes starting with
AWSRPARM and continuing through AWSRWORK.
POINT sequence number of record pointed to.
The following symbols (defined in the AWSRB macro) are used to describe
exception conditions returned by the AWSMGR. (Each symbol is defined in the
AWSRB macro and is a one-byte value mutually exclusive with all other
values, rather than a mask.)
The LIBI Interface can be used by individuals writing Monitor routines and
other special-purpose routines that perform online library operations. It
provides functions that use many of the facilities contained in LIBIO. LIBI
consists of:
■ The LIBI macro (distributed on CAI.CRO60MLD), and
■ The LIBI routine (distributed on ROSCOE.ROSLIB).
Individuals using the Interface need only concern themselves with the LIBI
macro.
Caution
When using LIBI, the library read and write protection remains in effect.
Review the section describing the User Profile System security groups in
the Advantage CA-Roscoe Interactive Environment System Reference Guide.
A separate LIBI macro call to the LIBI routine must be made for each function
(for example, ADD, PUT) to be performed by LIBIO. The macro provides
functions that can be used to:
■ Add a new or replace an existing library member on the library.
■ Obtain and place records in a library member.
■ Locate a member's index entry.
■ Alter attributes in a library index entry.
■ Delete a member from the library.
■ Obtain information about the library.
Data Areas:
The LIBI macro uses three data areas, two of which must be defined in the
calling program or in dynamically obtained storage. The two areas which must
be defined are:
1. A 32-byte communication area. This area is the LBRB (Library Request
Block) and is required for all functions specified in the LIBI macros. It
must be obtained before the first call on the LIBI routine and must remain
intact until the final call. A DSECT to map the LBRB is generated by the
macro LBRB.
2. An area for the parameter list which can be mapped by the LBPMDEF
DSECT generated by the macro LBPMDEF.
The third area is the LBDB (Library Definition Block) which can be mapped by
the LBDB macro. LBDB is created and maintained by LIBIO. It contains
information about the most recently activated library resource. Any request on
LIBIO is performed upon the library resource identified by LBDB. The address
of the current LBDB is placed in the field LBRBDBPT of the LBRB by LIBI. The
LBDB is only of interest when working with multiple library resources.
Note: The LBDB is allocated above the 16MB line at MVS/XA sites.
Working with Multiple Users: Monitor routines may be written to use the
data from library member(s) belonging to one Advantage CA-Roscoe user to
produce new member(s) for the same user or another user.
Linkage Conventions
■ Register 13 must point to an 18-fullword save area. The LIBI routine saves
and restores the contents of registers 2 through 13.
■ On return, register 15 contains a return code of:
0 No error or exception condition.
4 Error or exception condition. The field LBRBXRC in the LBRB
contains a one-byte extended return code permitting an exact
determination of the nature of the exception. It is the
responsibility of the caller to take appropriate action after an
exception occurs.
LIBI Macro
──┬─────┬──LIBI──FUNC=─┬──────────┬───,PARM=─┬─(,label)─┬─────
└─tag─┘ ├─ACTIVATE─┤ └─(reg)─────┘
├─ADD──────┤
├─ALTER────┤
├─DEL──────┤
├─FIND─────┤
├─FREE─────┤
├─GET──────┤
├─GETKEY───┤
├─GETPFX───┤
├─INFO─────┤
├─INIT─────┤
├─INITX────┤
├─LIB──────┤
├─NOTE─────┤
├─POINT────┤
├─PUT──────┤
├─RENAME───┤
├─SPACE────┤
├─STATUS───┤
└─TERM─────┘
──,LBRB=─┬─label─────┬───┬────────────────────┬────────────────
├─(,label)─┤ └─,ERROR=─┬─+4───┬──┘
└─(reg)─────┘ └─label─┘
Notes
■ Notation used in macro description:
label generates LA Rx,label
(,label) generates L Rx,label
(reg) generates LR Rx,reg
where the value of x is generated by the macro. If (reg) is coded and it is
equal to the register generated by LIBI, no instruction is generated.
■ The macro generates the code to do the following:
– Load the address of PARM into register 0.
– Load the address of LBRB into register 1.
– Move an entry code into the LBRB.
– Load the address of the LIBI routine into register 15.
– Call the LIBI routine using a BALR 14,15.
■ The macro expansion includes a LOAD macro for the LIBI CSECT. The
CSECT address is saved in the user's LBRB.
Parameters
LBPMPFIX specify a three-byte terminal user's prefix. This value is
obtained from the ATTLBPFX field of the user's SCB.
LBPMCODE specify a two-byte user's protect code. This value is obtained
from the ACCNUMX field of the user's SCB.
Notes
■ The value of the user's prefix and protect code must be obtained from the
SCB before the ACTIVATE is issued.
■ The number of library resources available to the user can be determined by
adding the number of concurrent Advantage CA-Roscoe subsessions
defined for the TERMSO= initialization parameter to the number of extra
libraries defined for the LIBXLIB= initialization parameter. (See the
Advantage CA-Roscoe Interactive Environment Programs and Utilities Guide for
details on these parameters.)
■ Any references in this manual to a library resource that has been activated
assumes that a user's prefix and protect code are associated with it.
Parameters
LBPMFLAG is a one-byte reserved flag and must be X'00'.
LBPMRNAM specify an 11-byte field name of the library member to be
added or replaced. The name must consist of a
three-character prefix (or two characters and a blank) and a
name not exceeding eight characters in length. Names less
than eight characters must be padded with spaces.
LBPMUNUS is a one-byte reserved for future expansion of the name field.
LBPMAFL1 is a one-byte flag indicating which attribute should be set.
Specify:
X'01' add/replace member as 'PPR' (Post-Processor).
X'02' reserved.
X'04' add/replace member as RESTRICTED.
X'08' add member as SHARED or reset RESTRICTED to
SHARED.
Notes
■ The fields LBPMCLNT, LBPMSQLN and LBPMDESC are optional if
LBPMAFL3 is not set
Parameters
LBPMFLAG is a one-byte reserved flag and must be '00'.
LBMPRNAM specify an 11-byte name of the library member whose
attributes are to be changed. The member name must consist
of a three-character (or two characters and a blank) and a
name not exceeding eight characters in length. Names less
than eight characters must be padded with spaces.
LBPMUNUS is a one-byte flag reserved for future expansion of the name
field.
Notes
■ The fields LBPMCLNT, LBPMSQLN and LBPMDESC are optional if
LBPMAFL3 is not set.
Parameters
LBPMFLAG is a one-byte reserved flag and must be '00'.
LBPMRNAM specify the 11-byte name of the member to be deleted. The
name must consist of a three-character prefix (or two
characters and a blank) and a name not exceeding eight
characters in length. Names less than eight characters must
be padded with spaces.
LBPMUNUS is a one byte reserved for future expansion.
Parameters
LBPMFLBF is a one-byte reserved flag and must be '00'.
LBPMLIBE specify the 11-byte name of the member to be located. The
member name must consist of a three-character prefix (or
two characters and a blank) and a name not exceeding eight
characters in length. Names less than eight characters must
be padded with spaces.
LBPMFUNS is a one-byte flag reserved for future expansion.
LBPMREST is 58 bytes reserved for the remainder of the index entry.
Notes
■ Use the Advantage CA-Roscoe macro LBINDEX to map the format of the
index entry.
Parameters: None
Notes
■ All library resources activated by the calling program must be released.
Parameters
LBPMLNLN is a two-byte maximum length of the record. The maximum
record length will not exceed 263 bytes (255 bytes for the line
plus eight control bytes). Trailing blanks are not included in
the length.
LBPMLNSQ is a four-byte sequence number.
LBPMRESV is two bytes reserved for future expansion.
LBPMLINE is a record not exceeding 255 bytes in length. Trailing blanks
are dropped.
Parameters
LBACCB is the address of the Library Account Block (LBACCB). The
LBACCB contains three fields:
LBACCPFX is a three-byte field that must be set to the
appropriate user prefix before invoking this
function.
LBACCGRP
is an eight-byte field that will contain the name
of the user's security group.
LBACCKEY
is a 22-byte field that will contain the user's
sign-on key.
LBACCFKY
is a 22-byte field that will contain the user's
formal key or binary zeros. (The field contains
zeros if the user has has not signed on since the
current execution of Advantage CA-Roscoe
started.)
Notes:
■ Before the GETKEY function is invoked, the field LBACCPFX must be set
to the appropriate prefix.
After the function is executed, the remaining fields will contain the user's
sign-on key and security group.
■ Use the Advantage CA-Roscoe macro LBACCB to map the Library
Account Block (LBACCB).
Parameters
LBACCB is the address of the Library Account Block (LBACCB). The
LBACCB contains three fields:
LBACCKEY
is a 22-byte field that must be set to the
appropriate user sign-on key before invoking
this function.
Notes
■ Before the GETPFX function is invoked, the field LBACCKEY must be set
to the appropriate sign-on key.
After the function is executed, the remaining fields will contain the user's
prefix and security group.
■ Use the Advantage CA-Roscoe macro LBACCB to map the Library
Account Block (LBACCB).
Parameter
LBPMINF address of the Library Information Block (LBIB). The block is 12
bytes long and is mapped by the Advantage CA-Roscoe macro
LBIB.
Parameters
LBPMAROT is a fullword containing the address of the ROT. This must
be passed to the LIBI routine from the main level.
LBPMATT1 is a fullword containing the address of the terminal user's
ATT1.
Notes
■ The INIT and INITX functions are mutually exclusive.
Notes
■ The INITX and INIT functions are mutually exclusive.
Parameters
LBPMFLBF is a one-byte flag which determines what search will be
performed. Specify:
X'A0' Search against protect code to start at the
beginning of the range.
X'20' Search against protect code to resume.
X'C0' Search against prefix to start at the beginning of
the range.
X'40' Search against prefix to resume.
LBPMLIBE is a 70-byte area for the index entry.
Notes
■ The macro LBINDEX can be used to map the index entry area.
■ On the initial call or on any call where retrieval is to start from the
beginning of the prefix or protect code range of the index file, LBPMFLBF
must be either X'A0' or X'C0'. For all subsequent calls, LBPMFLBF must be
set to either X'20' or X'40'.
Parameters
LBPMRES1 is a 30-byte area that can be used for POINT operation
(X'0C') as long as flag byte LBPMRES1 is changed to X'0C'.
Notes
■ The combination of NOTE with POINT(X'0C') will restart library operation
at the NOTEd location.
Notes
■ The FIND and GET functions are used to locate a library member and
obtain the first logical record in that member.
■ POINT is used to position within the member before the next operation is
performed. It can also be used to establish a range or count of records.
■ To position to the end of a library member, set
LBPMPNFL to X'00'
LBPMPNSQ to X'FFFFFF'
LBPMPNED to X'00FFFFFF'
Parameters
LBPMLNLN is a two-byte field for the maximum length of the record.
The minimum length is none. The maximum record length
cannot exceed 263 (255 bytes for the line plus eight control
bytes). Trailing blanks are not included in the length.
LBPMLNSQ is a four-byte sequence number.
LBPMRESV is two bytes reserved for future expansion.
LBPMLINE is a record not exceeding 255 bytes in length. Trailing blanks
are dropped.
Notes
■ To write a blank line to a member, LBPMLNLN should contain nine (for
eight control bytes and and a one-byte record) and LBPMLINE should
contain one blank character.
Parameters
LBPMRFLG is a one-byte flag reserved for future expansion and must be
X'00'.
LBPMNAME is an 11-byte name of the member to be renamed. The name
must consist of a three-character prefix (or two characters
and a blank) and a name not exceeding eight characters in
length. Names less than eight characters must be padded
with spaces.
LBPMFLAG is a one-byte flag reserved for future expansion and must be
X'00'.
LBPMRNAM is an 11-byte new name for the library member. The name
must consist of a three-character prefix (or two characters
and a blank) and a name not exceeding eight characters in
length. Names less than eight characters must be padded
with spaces.
LBPMUNUS is a one-byte flag reserved for future expansion and must be
X'00'.
LBPMAFL1 is a one-byte flag indicating which attributes should be
changed. Specify:
X'02' Reserved.
X'04' Change member's attribute to RESTRICTED.
X'08' Change member's attribute from RESTRICTED to
SHARED.
X'10' Reset member's attribute from EXECONLY to
SHARED.
X'20' Change member's attribute to EXECONLY.
X'40' Change member's attribute to NOSEQ.
X'80' Change member's attribute to SEQ.
LBPMAFL2 is a one-byte reserved flag and must be X'00'.
LBPMAFL3 is a one-byte flag indicating which additional attribute fields
should be changed. Specify:
X'20' Change starting column of member's sequence
number field.
X'40' Change length of member's sequence number
field.
X'80' Change member's description.
LBPMCLNT is a one byte starting column of the sequence number.
LBPMSQLN is the one byte length of the sequence number.
LBPMDESC is a 30-byte description of the member.
Notes
■ The fields LBPMCLNT, LBPMSQLN and LBPMDESC are optional if
LBPMAFL3 is not set.
Parameter
LBPMSPA is the address of a fullword where result will be stored.
Parameter
LBPMSTA is the address of the Library Status Block (LBSB). The block is 12
bytes long and can be mapped by the Advantage CA-Roscoe
macro LBSB.
Parameter
No parameter is passed.
Notes:
■ TERM does not release a library resource allocated by an ACTIVATE. Use
FREE to release a library resource.
LBPMDEF Macro
──┬─────┬──LBPMDEF──FUNC=func─────────────────────────────────
└─tag─┘
Example
LBPM LBPMDEF FUNC=ADD
will generate:
------------------------------------------------------------------
PARAMETERS FOR ROUTINES UPDATE,SAVE,ALTER,DELETE STARTS HERE
NOTE: ALSO REMAINDER OF PARAMETER FOR RENAME
------------------------------------------------------------------
The following symbols defined in LBRB are set by other than LIBI and
describe additional exception conditions. (Each symbol is a one-byte value
mutually exclusive with all other values, rather than a mask.)
This segment of the manual describes the exit facilities that are provided with
Advantage CA-Roscoe. These exit facilities can be used for site security,
accountability and user convenience. The information about these exits is
divided into the following areas:
■ General information that is applicable to all site-written exit routines.
■ Detailed information about each available exit.
All of the exits are optional. If Advantage CA-Roscoe finds that an exit has
been enabled, the exit routine is called; otherwise, no action is taken. (An exit
is enabled when a module with a predefined name exists in the Advantage
CA-Roscoe load library.) Some of the exits are called at critical times during
the online execution (for example, when a user signs on, enters a command,
submits a job, and so forth.). Others are taken during the execution of a
specific function (for example, when a scheduled PRINT request is being
printed.
The remainder of this chapter contains a general overview of the types of exits
provided and the order in which they are called during a Advantage
CA-Roscoe session.
WARNING
Advantage CA-Roscoe internally invokes the member UPSEXIT to initialize
and maintain library protection. THIS IS NOT A STANDARD EXIT
FACILITY. Do not alter this member in any way; it must not be renamed,
modified, or deleted.
The contents of the user accounting field (SRUAF) of the accounting records
can be supplied by the exit provided with the ACCTDUMP program.
The ROSMAILS program includes an exit that sites can use to add charges
rates and/or comments to the ROSMAILS report.
The exit provided with the functionally stabilized ACCTREPT program allows
sites to: 1) add print lines to the report, 2) write their own reports, and 3) add
accounting information to other site accounting reports.
While all of the exits provided with Advantage CA-Roscoe can be used for site
security, three of the exits are explicitly security oriented. They are:
ACFEXIT is an online access facility exit which can be used to control the
site security environment.
DSAEXIT is an online data set access exit which can be used to control a
user's access to a requested data set.
BEXEXIT is a batch access authorization exit which can be used to control
the execution of the batch programs LIBSERVE, ROSCOPY and
ROSDATA.
Note: Advantage CA-Roscoe invokes package-specific processing based on
the site's security package as identified by the EXTSEC= initialization
parameter. If this parameter is omitted, Advantage CA-Roscoe assumes
that no security package is used by the site. (See the Advantage
Two fields from UXDSECT are shown with each macro call:
UXIDCODE identifies the exit that is calling the routine.
UXCODE identifies the type of call to the routine.
To simplify the illustrations, the exit calls are grouped to show those occur
during:
1. Sign-on processing.
2. General command processing.
3. Individual command processing.
4. Monitor command processing.
The ACFEXIT, SIGEXIT and SMFEXIT exits are called when an individual
signs on to Advantage CA-Roscoe (after the sign-on key and, if appropriate,
password are typed and the ENTER key is pressed.) The exit call order is:
1. ACFEXIT (Access Control Facility Exit). The exit routine is entered with:
UXIDCODE set to 1
UXCODE set to (verify call).
2. SIGEXIT (Sign-on Exit). The exit routine is entered with:
UXIDCODE set to 1
UXCODE set to (verify call) or 4 (restart call).
3. ACFEXIT (Access Control Facility Exit). This exit routine is entered with:
UXIDCODE set to 1
UXCODE set to 4 (initialize call).
4. SMFEXIT (Accounting Exit) The exit routine is entered with:
UXIDCODE set to 16
UXCODE set to (sign-on record call).
After the user successfully signs on, he may begin entering commands. If
present, the Command Exit (CMDEXIT) verifies each command before
Advantage CA-Roscoe passes it against the Command Interpreter.
CMDEXIT (Command Exit). The exit routine is entered with:
UXIDCODE set to 3
UXCODE set to (verify command call).
Notes
1. When a CALL command is executed, DSAEXIT is called only if the
application opens data set(s) or allocates an internal reader.
2. When a SUBMIT command is executed, DSAEXIT is called only if the job
opens data set(s). If there is no DSAEXIT, the UXCODE 12 call to a
SUBEXIT routine occurs.
If the Command Interpreter determines that the user entered a valid Monitor
command name, two global exit calls are issued before the individual Monitor
command exit routine is called.
Notes
1. The UXCODE 8 call to an EXPEXIT routine occurs only if there is no
DSAEXIT routine.
2. The UXCODE 12 call to an IMPEXIT routine occurs only if there is no
DSAEXIT routine.
3. The UXCODE 4 call to a ZAPEXIT routine occurs only if there is no
DSAEXIT routine.
This chapter describes the following information and conventions that are
common to all exits.
■ Common coding conventions.
■ Common register conventions.
■ Common data areas.
■ A macro that can be used to test site-written routines.
■ Macros that can be used to establish reentrancy.
■ JCL that can be used to assemble and link-edit an exit routine.
UXDSECT Macro
──UXDSECT──┬───────────────────┬──────────────────────────────
│ ┌─,──────┐ │
┬──────┬┴──┘
└─EXIT=──
└─name─┘
all of the common and exit-dependent data areas are made available to the exit
routine. In this case, SUB are the first three characters of SUBEXIT (the
required name for a SUBMIT exit routine).
For example:
MSGLEN DC X'5'
DC X''
MSGTEXT DC C'HELLO'
UXWRKAREA
contains the first of four contiguous fullwords that are available
for the use of the exit routine.
In most cases, Advantage CA-Roscoe does not modify the
contents of the work area pointed to by UXWKAREA until
sign-off. The exception occurs with the exit routines called by
ATTACH JOB or the Data Set Facility. In these cases, their
operation can be suspended while other commands (that may
themselves have exits) are executed. In such cases, the contents of
UXWKAREA may be changed. To avoid this problem, UXDSECT
contains the two special work areas described next.
UXDSFWRK
contains the first of four contiguous fullwords provided for the
Data Set Facility.
UXOUTWRK
contains the first of four contiguous fullwords provided for
ATTACH JOB.
Notes
■ Referencing the Data Areas:
The documented labels used to reference the common and exit-dependent
data areas will not be changed. The location of these data areas within the
DSECT, however, may change in future releases. Therefore, all exit
routines should reference these data areas symbolically, rather than by
their offset.
■ Obtaining Additional Information:
An exit routine can use the addresses provided in the common data areas
to get additional information. For example, UXSCBADR points to the SCB.
The SCB data areas ATTLBPFX and ACCNUM can be used to obtain the
terminal user's prefix and sign-on key, respectively.
■ Split-Screen Sessions:
The data areas in UXDSECT uniquely identify a user's session. If a user
should split the screen, creating two Advantage CA-Roscoe sessions, each
session is covered by a separate UXDSECT. Information local to a session
may be saved in UXWKAREA. Information that could be used by either
or both sessions may be saved in the fields SCBUSER1 through SCBUSER4
in the SCB.
■ The following illustrates the common data areas that are provided by
UXDSECT. For details, see the UXDSECT DSECT.
UXENTER Macro
┌─,─────┐
┬─────┬┴─)──┬───────────────────┬────────
──UXENTER──REG=(reg──
└─reg─┘ │ ┌─YES─┐ │
└─,GENREG=─┴─NO──┴──┘
UXEXIT Macro
──UXEXIT──RC=rc──┬──────────┬──┬───────────────────┬──────────
└─,XRC=xrc─┘ │ ┌─NO──┐ │
└─,XALINK=─┴─YES─┴──┘
The macro causes a message to be written to the operator console and JES log
every time the exit routine is called. On entry to the exit routine, the messages
are in the following format:
time JOB number exit addr1 NAME csect offset CODE code
where:
exit is the name of the called exit routine.
addr1 is the absolute address to which the exit routine returns.
csect is the CSECT name of the calling routine.
offset is the offset into the CSECT to which the exit routine returns.
code is the UXCODE passed to the exit routine.
When returning from the exit routine, the messages are in the form:
time JOB number exit EXIT RETURN: R15 rc
where rc is a return code. (If the exit routine returns an extended return code,
it is included with the message.)
In addition to these messages, the SHOW macro also saves the contents of
registers 2 through 12 on entry to the exit routine. On exit, the 'saved'
registers are compared to those being returned by the exit routine. If they do
not compare, the 'saved' registers are returned and the following message is
written to the operator console:
time JOB number exit REGISTERS INVALID AFTER EXIT CALL
Sample source for each exit is placed in the RO60OPT data set by the SMP/E
apply of the base Advantage CA-Roscoe function SYSMOD CRO6000. A copy
of this sample source as shipped will be placed in the distribution library by
the SMP/E ACCEPT of the base Advantage CA-Roscoe function SYSMOD
CRO6000. The copy in the distribution library will be used for future SMP/E
restores or for your reference after making site changes to the original.
The process to install each product USERMOD has the following basic steps:
■ Modify the appropriate source member in RO60OPT.
■ Execute the product USERMOD. This will initiate an SMP/E RECEIVE and
APPLY. During the APPLY an assembly and link will take place which
will put an executable copy of the desired exit into target library RO60LIB.
| ■ Exits should be linked in 24-bit mode.
| Note: Advantage CA-Roscoe distributed or site-written exits have the ability
| to address 31-bit mode; however, they must be linked into RO60LIB in
| 24-bit mode.
This chapter contains detailed information about each of the exits provided
with Advantage CA-Roscoe.
The descriptions are presented in alphabetical order and contain the following
information:
■ General description of the exit.
■ Coding conventions.
■ Entrance Parameters. This includes:
– The types of calls to the exit routine.
– The exit-dependent data areas available to the routine via UXDSECT.
(This is in addition to the common data areas available to the majority
of exit routines.)
■ Return codes and messages.
The exit routine may add or modify the contents of the user accounting field
SRUAF. The information in this field is included in the accounting reports
when the SELECT (UAF) control statement is specified in the SYSIN file of the
ACCTREPT program. (The format of the accounting record is mapped by the
SRECORD macro which generates a DSECT containing the full record format.)
Return Codes: Before returning control, the exit routine must load one of the
following return codes into register 15.
Code Meaning
0 Normal return. Continue processing.
4 Do not call again. The exit routine is disabled.
UXACFGRP is the address of the area containing the user's group code,
padded to eight characters. This field will be passed to the
security system on a RACINIT type call as the GROUP=
parameter. (If the user enters a group code, it is present
when the entrance code is 0 or 4.)
UXACFTRM is the address of the area containing the terminal ID padded
to eight characters. See the description of the area
SCBTRMNM located in Chapter 1, topic 1.2.2, for an
explanation of the ID format. This field will be passed to the
security system on a RACINIT type call as the TERMID=
parameter. (The ID is present for all calls.)
UXACFINF is the address of a storage area, provided by the exit routine,
that contains messages which are to be directed to the
terminal user. (This field is available when the entrance code
is 0 or 4.)
UXACFACD is the address of the area containing the user's ID that is to
be passed to the security system. This field is extracted from
the Advantage CA-Roscoe sign-on key. If the sign-on key is
eight or less characters and does not contain a period (.), then
this field is set to the Advantage CA-Roscoe sign-on key. If
the sign-on key is greater than eight characters, the first eight
characters are used. If a period is found within the first eight
characters of the sign-on key, this field is set to the string up
to the period (.). This field will be passed to the security
system on a RACINIT type call as the USERID= parameter.
(This field is available when the entrance code is 0 or 4.)
UXACFPGM is the address of the area containing the name of the user,
padded to 20 characters. This field is extracted from the
Advantage CA-Roscoe formal key. This field will be passed
to the security system on a RACINIT type call as the
PGMNAME= parameter. (This field is available when the
entrance code is 0 or 4.)
Single or multiple messages may be sent to the user's terminal when the
Message field contains 'YES'. If both types of messages are sent, the multiple
messages are sent to the terminal after the single message.
■ Sending A Single Message
If the Message field labeled One contains 'YES', an ACFEXIT or site-written
message is sent to the user's terminal.
1. Set (OR) a X'80' into the 1-byte field pointed to by UXRETFLG of
UXDSECT. (If the field pointed to by UXRETFLG is not set to X'80', the
appropriate ACFEXIT message is sent to the terminal.)
2. Place the message length and text in the area whose address is in
UXMSGADR of UXDSECT.
The format of the message area pointed to by the address in UXMSGADR
must be: a halfword length field, a halfword containing binary zeros and
the message text which may not exceed 80 bytes in length.
■ Sending Multiple Site-Written Messages
If the Message field labeled Multi in the preceding chart contains 'YES',
multiple informational messages may be sent to a user who is going to be
signed on. To do this, the exit routine must GETMAIN an 88-byte area of
storage in subpool 0, AMODE 24 storage for each message to be issued to
the user.
– The first word of each area must contain either the address of the next
message area or zero if there are no more messages.
– The second word must contain the length of the message, which
cannot exceed 80 bytes in length.
– The message text must begin in the third word.
The exit routine then places the address of the first GETMAINed area in
the field UXACFINF and loads a return code of 4 into register 15.
When this procedure is followed, Advantage CA-Roscoe issues the
messages to the terminal user after the HELLO message and then
FREEMAINs the storage area(s). The exit routine must not attempt to use
this area for any other purpose or free the acquired storage area;
Advantage CA-Roscoe issues the appropriate FREEMAIN.
Notes
■ While messages may be issued as a result of both the 0 and 4 calls, the set
of messages returned by the last call prior to a successful sign-on are the
only ones the user receives. Thus, if messages are returned for both 0 and
4 calls, only the messages associated with the 4 call are issued to the user.
■ When the entrance code is 4, the return code is 4 and the extended return
code is X'00', a single-line message must be specified if a multi-line
message is to be transmitted. (A multi-line message is not required if only
a single-line message is to be transmitted.)
As an input filter, the exit routine may direct AMS to do one of the following:
■ Pass the input record, unmodified, to IDCAMS.
■ Terminate IDCAMS and issue zero or more messages.
■ Substitute one or more records for a single user input record.
As an output filter, the exit routine may direct AMS to suppress the output
record or to return it to Advantage CA-Roscoe. The record may be modified
by the exit routine before being returned.
Entrance Parameters:
Upon entrance to the routine, register 1 contains the address of a fullword. The
fullword contains the address of UXDSECT.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 18.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 28.
The following data areas are available for RPS SYSOUT calls (when the
entrance code is 4).
UXBANPRT Address of the printer ID. The address points to an area
containing a two-byte length followed by the name of the
printer.
UXBANDST Address of the RPS-defined destination name.
UXBANREQ Address of the six-byte request number.
UXBANKEY Address of the 22-byte user sign-on key.
UXBANPFX Address of the three-byte user prefix.
UXBANCLS Address of one-byte SYSOUT class.
UXBANTAB Address of eight-byte request tag or blanks if the user did
not supply a tag.
Code Meaning
0 Calling program is to write the contents of the area whose
address is in UXBANDTA and to call again.
4 Calling program is to write the first eight characters in the
area whose address is in UXBANDTA in 12-line block letter
format and to call again.
Code Meaning
8 Calling program is not to call again. (No separator page is
written.)
Notes
■ The exit routine is passed the address of an area in which the routine may
return one-by-one each line that is to be written to the SYSOUT file.
The exit routine may return one to eight characters of data which are to be
written to the SYSOUT file in a 12-line block format.
■ The program that calls the routine takes care of opening and closing the
SYSOUT file and writing the records returned by the routine.
■ The UXWKAREA fields are cleared before the banner page exit is called
the first time. Use of these work area fields is recommended for storing
status information between calls to BANEXIT when writing a set of
separator pages.
Return Codes: On return, the exit routine must load one of the following
return codes in register 15.
Code Meaning
0 Access authorized; run may continue.
4 Access unauthorized; run is terminated.
Notes
| ■ The sample BEXEXIT routine distributed with Advantage CA-Roscoe
| assumes the use of SAF compliant calls. If running eTrust CA-Top Secret
| or eTrust CA-ACF2, please use their supplied BEXEXIT with our listed
| routines. Except in the case of the LIBUTIL routine and eTrust CA-Top
| Secret; then the Advantage CA-Roscoe supplied BEXEXIT must be used.
| ■ When the Advantage CA-Roscoe-supplied BEXEXIT exit routine is used,
| the userid of an authorized user must be specified with the USER=
| parameter on the JOB statement. The user's sign-on key must be specified
| as a parameter on the EXEC statement for ROSDATA, ROSCOPY, and
| LIBSERVE. (Sites must modify the distributed routine to include the
| sign-on keys of all users who are to be allowed access.)
■ The batch exit should take whatever action is necessary at initialization to
enable the Advantage CA-Roscoe data sets to be opened, since the job is
running under the user-id of the submitter. In addition, during the
initialize complete call, the exit must change the job environment to allow
the submitter's data sets to be opened (the environment must be returned
to its original state).
■ The initialize call should be used to establish whether processing may
continue. If processing is to continue, the routine should make whatever
changes are necessary to the operating environment to enable the
Advantage CA-Roscoe data sets to be opened.
■ The initialize complete call should restore the operating environment to the
state which enables the user data sets to be opened.
| ■ When the BEXEXIT is called by LIBUTIL (BEXCALLR=4), the BEXKEY
| field will contain binary zeros. LIBUTIL does NOT pass the user's sign-on
| key on the PARM field.
| ■ LIBUTL, due to it's multifunctionality, does not call the BEXEXIT initialize
| or complete calls prior opening any files.
Sample source for BEXEXIT is placed in the RO60OPT data set by the SMP/E
APPLY of the base Advantage CA-Roscoe function SYSMOD CRO6000. A copy
of this sample source as shipped will be placed in the distribution library by
the SMP/E ACCEPT of the base Advantage CA-Roscoe function SYSMOD
CRO6000. The copy in the distribution library will be used for future SMP/E
RESTOREs or for your reference after making site changes to the original.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 15.
UXCLLPRM Address of the parameter list. (This address is valid when the
entrance code is 0.)
UXCLPRFX Address of the user's three-character prefix. (This address is
valid when the entrance code is 0 or 4.)
UXCLCPPL Address of the CPPL (Command Processor Parameter List).
The exit can change any of the fields in the CPPL or any of
the control blocks chained off of the CPPL. For example, an
exit routine could permit certain individuals TSO OPER
authority by setting the appropriate bit in the PSCB. (This
address is valid when the entrance code is 8.)
UXCLMAXT Address of a halfword containing the maximum number of
time slices the program is allowed to use. (This address is
valid when the entrance code is 0.)
UXCLMTGM Address of a fullword containing the maximum amount of
storage that the program can GETMAIN. (This address is
valid when the entrance code is 0.)
UXCLMVGM Address of a fullword containing the maximum variable
GETMAIN requests allowed at one time. (This address is
valid when the entrance code is 0.)
UXCLMODE Address of a 1-byte field containing a 'Y' if modeset is
allowed by the user program or an 'N' if it is not. (This
address is valid when the entrance code is 0.)
UXCLDUMP Address of a 1-byte field containing a 'D' or 'Y' if a dump is
to be taken if the program abnormally terminates. (This
address is valid when the entrance code is 0.)
UXCL#USD Address of a halfword containing the number of time slices
used by the program. (This address is valid when when the
entrance code is 4.)
UXCLTOTL Address of a fullword containing the total amount of storage
the program used. (This address is valid when the entrance
code is 4.)
UXCLHIGH Address of a fullword containing the largest amount of
storage that the program required during execution. (This
address is valid when the entrance code is 4.)
UXCLREAS Address of a one-byte field containing a code that indicates
when a program terminated abnormally. (This address is
valid when the entrance code is 4.)
The codes are:
0 Normal termination (EQU UXCLNORM).
1 Program not found (EQU UXCLNFND).
2 Time limit exceeded (EQU UXCLNTIM).
Notes
■ If a DSAEXIT routine is present, it is called whenever a program executing
under ETSO attempts to allocate a new or existing data set or opens an
internal reader.
| ■ If ETSOXIT=YES was specified in your ROSCOE startup, then the
| CLLEXIT will also be called for commands invoked using the TSO
| command.
For these exits, the area pointed to by the address in UXIDCODE contains the
exit identifier 3.
Code Meaning
0 CMDEXIT call (EQU UXCM@1ST). The command interpreter has
not yet determined whether the input can be recognized as a valid
command. The input presented to the CMDEXIT exit routine is the
raw input and its address is in UXCMDINP. Every input string to
be processed by the command interpreter is passed to CMDEXIT.
Unless very elaborate analysis routines are used, few meaningful
results can be achieved by processing the raw string.
4 CMDEXIT2 call (EQU UXCM@2ND). It has been determined that
the input cannot be recognized as a valid command. The exit
routine may convert the input string into a form acceptable to
Advantage CA-Roscoe.
If the output of the CMDEXIT2 exit routine is itself as unrecognized
command, there is no further entrance to the exit for this input.
The format of the message area pointed to by the address in USMSGADR must
be: a halfword length field, a halfword containing binary zeros and the
message text which may not exceed 80 bytes in length.
Notes
■ A message written to the terminal can be TRAPped in an RPF program. If
the message is site-written, it receives the same trap code as the standard
exit message. (The RPF system variable LASTERR always contains the text
of the standard message, even if a site-written message was sent.)
■ If Advantage CA-Roscoe detects any errors on the part of either of the exit
routines (such as invalid return code), that exit routine is cancelled for the
remainder of the Advantage CA-Roscoe execution, and the console
operator is informed with message ROS350E.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 20.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 5.
There is only one call to the exit routine. It occurs after the user has finished
DISPLAY subcommand input and all operands of the subcommand have been
syntax checked. (If DISPLAY is entered with no subcommand, it is treated as
though the JOB subcommand was entered.)
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXDISCMD Address of a 2-byte code describing the input subcommand.
(This address is always valid.)
The first byte is set to indicate the subcommand. The second
byte is set only if the subcommand is qualified. The codes
are:
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 4.
9 Reserved
10 Reserved
11 Reserved
12 Open input member (EQU UXDS@INM)
13 Open output member (EQU UXDS@OUM)
14 Open update member (EQU UXDS@UPM)
15 Scratch member (EQU UXDS@SCM)
16 Rename member (EQU UXDS@RNM)
17 Find from UTILITY FIND command (EQU UXDS@FND)
18 Listvtoc from UTILITY LISTVTOC command (EQU UXDS@LDS)
19 Catalog (EQU UXDS@CTL)
20 Uncatalog (EQU UXDS@UCT)
21 Build index from UTILITY BLDNDX command (EQU UXDS@BLX)
22 Delete index from UTILITY DLTNDX command (EQU UXDS@DLX)
23 Connect from UTILITY CONNECT command (EQU UXDS@CON)
24 Release from UTILITY DISCONNECT command (EQU UXDS@REL)
25 Define GDG (EQU UXDS@DFG)
26 Reserved
27 Allocate existing data set (EQU UXDS@AEX)
28 Define data set alias (EQU UXDS@DDA)
29 Define PDS member alias (EQU UXDS@DMA)
30 Open internal reader (EQU UXDS@INT)
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXDSADSN Address of the data set name, padded to 44 characters. If the
field contains 44 bytes of binary zeros or hexadecimal 04s, a
VTOC is being accessed. (This address is valid when the
entrance code is 1, 2, 3, 4, 5, 6, 12, 13, 14, 15, 16, 17, 18, 19, 20,
25, 27, or 29.)
UXDSANDS Address of the new data set name, padded to 44 characters.
(This address is valid when the entrance code is 6.)
UXDSAVL# Address of a two-byte field containing the volume count. (If
the user enters a volume serial number, this address is valid
when the entrance code is 1, 2, 3, 4, 5, 6, 12, 13, 14, 15, 16, 18,
19, 27, or 29.)
UXDSARDS Address of the related (true) data set name. (This address is
valid when the entrance code is 28.)
UXDSAADS Address of the alias data set name. (This address is valid
when the entrance code is 28.)
UXDSARMN Address of the related (true) member name. (This address is
valid when the entrance code is 29.)
UXDSAAME Address of the alias member name. (This address is valid
when the entrance code is 29.)
UXDSAPGM Address of the application name, padded to eight characters.
(This address is valid when the entrance code is 30.)
Notes
■ IMPORTANT!
Caution
This is not a security exit. Use DSAEXIT to protect data sets.
4. A function validation call. This call is made to allow site control of the
individual functions performed by users. (This call is made either from the
Advantage CA-Roscoe main task or from the Data Set Facility subtask,
based on the setting of the UXCALCTL bit vector.)
DSFEXIT is not intended to support implementation of data set security
facilities; DSAEXIT should be used for that function.
5. List entry exclusion calls. Two types of calls are made to allow sites to
exclude entries from a Selection List that is being built by the Data Set
Facility. One call is provided to exclude data sets from Catalog and VTOC
Selection Lists. The other call permits exclusion of modules and members
from AllFusion CA-Librarian and PDS Selection Lists. (This call is made
either from the Advantage CA-Roscoe main task or from the Data Set
Facility subtask, based on the setting of the UXCALCTL bit vector.)
For this exit, the area pointed to by the address in UXIDCODE contains the
value defined by UXIDCDSF (27).
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXCALCTL Address of a one-byte bit map used to control future
DSFEXIT calls by the Data Set Facility. These bits should be
set by the exit routine at the initial call to tell Advantage
CA-Roscoe what other types of calls are desired. They may,
however, be altered at any other entry to DSFEXIT to
respecify what types of calls the exit routine is to receive.
At the initial call, the bits are all off. This means that the only
other call made to the exit routine is the termination call.
To activate call types, the following labels define the bits that
should be turned on in the byte pointed to by UXCALCTL:
UXDF$GTM Controls GETMAIN calls. UXDF$GTM is
called from both the main task and subtask
levels. It cannot be controlled by the exit
routine.
The following data area is available for an initialization call (when the entrance
code is 0).
UXDS0CTL Address of a one-byte bit map that may be set to indicate how
the Data Set Facility is to handle certain types of processing.
The following fields may be set in this one-byte field:
UXDS0FCD Confirm Delete processing is to be forced for
data set operations (the DSN portion of the
CONFIRM DELETE field on the Data Set
Facility menu is always set to YES).
UXDS0FCM Confirm Delete processing is to be forced for
PDS and AllFusion CA-Librarian master file
operations (the MEM portion of the CONFIRM
DELETE field on the Data Set Facility menu is
always set to YES).
The following data areas are available for GETMAIN calls (when the entrance
code is 8).
UXDS1S24 A fullword containing the current amount of storage allocated
to the Data Set Facility process that is below the 16MB line.
UXDS1S31 A fullword containing: 1) the current amount of storage
allocated to the Data Set Facility process that is above the 16MB
line, or 2) zero, if the operating system is not MVS/XA.
The following data areas are available for function validation calls (when the
entrance code is 12).
UXDS2FCT Address of a one-byte area containing a code for the function
that the user is about to perform. Values for this code are
defined in the UXDSECT expansion.
UXDS2DSN Address of an area containing the name of the data set or the
search string specified by the user. This area consists of a
one-byte length field followed by a one- to 44-character name.
When no name is specified. (when attaching a VTOC, this field
contains blanks.
UXDS2MEM Address of an area containing the name of the member
specified by the user. If no name is specified, this field contains
blanks.
UXDS2VOL Address of an area containing a list of volumes specified by the
user. The area consists of a one-byte count filed followed by
zero to six 6-character volume names.
UXDS2UNT Address of an area containing a list of units associated with the
volumes in UXDS2VOL. The area consists of a one-byte count
field followed by zero to six 8-character unit names.
UXDS2FPL Address of a function-dependent parameter list for ALLOCATE
and DEFINE GDG. (For all other functions, this field contains
zeros.) The parameter list contains information specified by the
user when the function was requested. This information may be
modified by the exit routine to suit site requirements.
The parameter list for the ALLOCATE function may be
mapped by the UXALC DSECT. It contains:
UXALCDSN Address of the data set name area, consisting of
a one-byte length field followed by a 44-byte
data set name right-padded with blanks.
UXALCVOL Address of the volume area, consisting of a
one-byte count filed followed by zero to six
serial numbers.
UXALCUNT Address of the unit name area, consisting of a
one-byte count field followed by zero to six unit
names.
The following data areas are available for the list exclusion calls (when the
entrance code is 16 or 20).
UXDS3LTP Address of a three-byte area containing a code for the type of
list that is being built. Values for this code are defined in the
UXDSECT expansion.
UXDS3LNM Address of an area containing either:
■ The search string specified by the user (when building a
Catalog or VTOC Selection List), or
■ The data set specified by the user (when building a PDS or
AllFusion CA-Librarian Selection List).
In either of the preceding cases, the area consists of a one-byte
length field followed by a one- to 44-character name.
■ Zeros (when building a Volume Selection List).
UXDS3LVL Address of an area containing either:
■ A list of volumes when a VTOC, PDS or AllFusion
CA-Librarian Selection List is being built. The area consists
of a one-byte count field followed by one to six 6-character
volume names, or
■ The wildcard volume search argument when a Volume
Selection List is being built. The area consists of a one-byte
count field (containing 1 in this case) followed by the
search argument or blanks. (Blanks appear if no wildcard
search argument was specified.)
Notes
■ Data Set Facility functions can be performed in both the Execution Area
(using the menu, a function-related panel or a Selection List) and in the
Command Area (using a primary command). Each area invokes its own
call to a site-written DSFEXIT exit routine. Advantage CA-Roscoe ensures
that the contents of UXCALCTL and UXDSFWRK are saved and restored
for each caller.
■ UXDS2FPL provides the address of a parameter list when the user requests
an ALLOCATE or DEFINE GDG function. The parameter lists can be
mapped by the UXALC and UXDFG DSECTs, respectively. The following
code illustrates how to establish addressability to UXALC.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 6.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXEXPDSN Address of a 44-byte area containing the data set name.
(This address is valid when the entrance code is 0, 4, 8, 16,
20, or 28.)
If the entrance code is 0, the data set name may be changed
by the exit routine. The data set name passed when the
entrance code is 0 may be different from the data set name
passed when the entrance code is 4 if the data set was
specified by the terminal user with an alias for the high-level
index.
UXEXPMEM Address of an eight-byte area containing the member name
(PDS) or module name (AllFusion CA-Librarian). (This
address is valid when the entrance code is 0, 4, 8, 16, 20, or
28.)
If no name was specified, the area contains blanks.
Notes
■ When an external data set is to be opened, Advantage CA-Roscoe checks
to see if a DSAEXIT routine is present.
If a DSAEXIT routine is found, it is called to validate whether the user can
access the designated data set. (The call that would have been made to the
EXPEXIT routine is bypassed.)
If no DSAEXIT routine is found, the EXPEXIT routine is called.
■ If no DSAEXIT routine is present, the EXPEXIT routine is called when a
RACF-protected or OS password-protected data set is to be opened. If the
routine passes a return code of 0 back to Advantage CA-Roscoe,
Advantage CA-Roscoe attempts to open the data set. It is the site's
responsibility to ensure that Advantage CA-Roscoe has been authorized to
access the data set. If Advantage CA-Roscoe is not authorized to access the
data set, EXPEXIT terminates with a 913 abend.
For this exit, the area pointed to by the address in UXIDCODE contain the exit
identifier 7.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXIMPDSN Address of a 44-byte area containing the data set name.
(This address is valid for all calls except 20.)
The data set name passed with an entrance code of 0 may be
different from the data set name passed when an entrance
code of 4 or above if the data set was specified by the
terminal user with an alias for the high-level index. If the
entrance code is 0, the data set name may be changed by the
exit routine.
UXIMPMEM Address of an eight-byte area containing the member name
(PDS) or module name (AllFusion CA-Librarian). (This
address is valid for all calls except 20.)
If no name was specified, the field is blank. If a PDS
directory listing was specified, the name is an asterisk (*). If
the entrance code is 0, this field may be modified by the exit
routine.
UXIMPVOL Address of a six-byte area containing the volume serial
number of the data set. (If the user enters a volume serial
number, the address is valid for all calls except 20.)
UXIMPLIB Address of a fullword containing the AllFusion CA-Librarian
option. (If the user enters a AllFusion CA-Librarian option,
the address is valid for all calls except 20.)
The format of the field is:
UXIMPREC Address of a logical record read from the input field. (This
address is valid when the entrance code is 12 or 24.)
When the entrance code is 12, the area pointed to by
UXIMPREC is a halfword length field followed by the data.
The length of the data is the value of the halfword field; this
value may not be modified.
When the entrance code is 24, UXIMPREC contains the
address of the data.
The data is raw input (IMPORT has not begun any
processing on it). The data may be modified provided that it
remains the same length (shorter records must be padded to
the designated length).
UXIMPRNG Address of the first of two 10-byte fields containing the
name(s) specified with the RANGE= operand. (If the user
enters the RANGE= operand, this address is valid for all calls
except 20.)
The first halfword in each field contains the length of the
name, in execute form (length-1), followed by the name. If no
RANGE= operand was specified, the first byte of the
halfword contains X'FF'. If only one name was specified with
RANGE=, the second field is identical to the first.
This operand is used to limit the retrieval to a PDS directory
or AllFusion CA-Librarian index to within a specified range.
UXIMPOPA Address of a 256-byte output area for use when formatting a
PDS directory listing. (The exit routine must place the
directory entry in the area pointed to by UXIMPOPA.)
The area must contain the following:
■ The length of the formatted directory entry in the first
byte. The maximum length is 255. If the length field
contains 0, the directory entry is ignored.
■ The directory entry formatted for writing to the AWS. It
must not contain any non-printable or non-displayable
fields. (Such fields are replaced by spaces before the
record is passed back to Advantage CA-Roscoe.)
UXIMPHEX Address of a hexadecimal table. The use and contents of this
table are reserved and must not be modified.
Notes:
■ When an external data set is to be opened, Advantage CA-Roscoe checks
to see if a DSAEXIT routine is present.
If a DSAEXIT routine is found, it is called to validate whether the user ca
access the designated data set. (The call that would have been made to the
IMPEXIT routine is bypassed.)
If no DSAEXIT routine is found, the IMPEXIT routine is called.
■ If no DSAEXIT routine is present, the IMPEXIT routine is called when a
RACF-protected or OS password-protected data set is to be opened. If the
routine passes a return code of 0 back to Advantage CA-Roscoe,
Advantage CA-Roscoe attempts to open the data set. It is the site's
responsibility to ensure that Advantage CA-Roscoe has been authorized to
access the data set. If Advantage CA-Roscoe is not authorized to access the
data set, IMPEXIT terminates with a 913 abend.
The parameter list consists of five fullwords, each of which contains the
address of a data area. The parameter list is:
Word 1 Address of jobname. The jobname is padded on the right to eight
characters.
Word 2 Address of user prefix.
Word 3 Address of user signon key. The key is padded on the right to 22
characters.
Word 4 Address of the SCB.
Word 5 Address of ROT.
Code Meaning
1 Allow user to cancel job.
4 Prohibit user from cancelling
job.
For this exit, the area pointed to by the address in UXIDCODE contains the
value defined by UXIDCLIB (29).
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXCALCTL Address of a bit map (currently one-byte in length) that is
used to control future LIBEXIT calls by the Library Facility.
These bits should be set by the exit routine at the initial call
to tell Advantage CA-Roscoe what other types of calls are
desired. They may, however, be altered at any other entry to
The following data area is available for the initialization call (when the
entrance code is 0).
UXLS0CTL Address of a one-byte bit map that can be set to indicate how
the Library Facility is to handle certain types of processing.
The following field may be set in this one-byte field:
UXLS$CFD Confirm Delete is in effect for this user. The
user cannot alter this setting (the CONFIRM
DELETE field on the Library Facility menu is
always reset to NO).
The following data areas are available for GETMAIN calls (when the entrance
code is 8).
UXLS1S24 A fullword containing the current amount of storage
allocated to the Library Facility process that is below the
16MB line.
UXLS1S31 A fullword containing: 1) the current amount of storage
allocated to the Library Facility process that is above the
16MB line, or 2) zeros if the operating system is not
MVS/XA.
UXLS1R24 A fullword containing the amount of storage about to be
allocated to the Library Facility process that is to be below
the 16MB line.
UXLS1R31 A fullword containing the amount of storage about to be
allocated to the Library Facility process that is to be above
the 16MB line.
The following data areas are available for function validation calls (when the
entrance code is 12).
UXLS2FCT Address of a one-byte area containing a code for the function
that the user is about to perform. Value for this code are
defined in the UXDSECT expansion.
The following data areas are available for the list exclusion calls (when the
entrance code is 16).
UXLS3PFX Address of a three-byte area containing the prefix specified by the
user. If a two-character prefix is specified, it is left-justified.
UXLS3KEY Address of a 22-byte field containing the sign-on key that
corresponds to the prefix pointed to by UXLS3PFX.
UXLS3FKY Address of a 22-byte field containing the formal sign-on key that
corresponds to the prefix pointed to by UXLS3PFX.
UXLS3LNM
Address of an eight-byte area containing name of the member to
be added to the list. If the name is less than eight bytes, it is
left-justified.
UXLS3ENT Address of an area containing the directory entry mapped by the
LBINDEX DSECT.
UXLS3GRP Address of an eight-byte area containing the name of the security
group that corresponds to prefix pointed to by UXLS3PFX.
Notes
■ Library Facility functions can be performed in both the Execution Area
(using the menu, a function-related panel or a Selection List) and in the
Command Area (using a primary command). Each area invokes its own
call to a site-written LIBEXIT exit routine. Advantage CA-Roscoe ensures
that the contents of UXWKAREA is saved and restored for each call.
■ Currently, the following commands do not invoke the Library Facility and,
therefore, do not invoke a call to LIBEXIT:
ALTER mem
COPY mem
DELETE mem
PRINT mem
RENAME mem
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 17.
There is only one call to the MONEXIT exit routine. It occurs after the user has
finished operand input and all operands of the Monitor command have been
syntax checked. (The contents of UXCODE are not applicable.)
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXMONNAM Address of a five-byte field containing the five characters
'monxt', extracted from the RUN monx-t or equivalent
command, where 'mon' are the first three characters of the
Monitor command name, 'x' is the fourth character of the
command name or blank if no fourth character was specified,
and 't' is the suffix character or blank if no suffix character
was specified.
If SET MODE XTENDED is in effect when the terminal user
enters the Monitor command name, the first four characters
are translated to uppercase; the fifth character is not
translated.
The format of the message area pointed to by the address in USMSGADR must
be: a halfword length field, a halfword containing binary zeros and the
message text which may not exceed 80 bytes in length.
Notes
■ When modifying the original parameters of a command, please observe the
following points:
– The sign-on key may not be modified.
– Only the fourth and suffix characters of the contents of the area
pointed to by UXMONNAM may be modified. To delete either
character, set it to binary zero.
– To delete the library member name, return blanks in its place. This
forces all reads to the AWS.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 8.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXOUTJNM Address of the jobname, padded to eight characters. (If the
job is attached by its name, this address is valid for all calls.
If the job is attached by its number, it is not valid when the
entrance code is 0.)
UXOUTJB# Address of the job number. (This address is valid when the
entrance code is 4, 8, 12 or 16. If the user enters a job
number, the address is also valid when the entrance code is
0.)
UXOUTJCT Address of the JCT. (This address is valid when the entrance
code is 4.)
For JES3 sites, the JCT address starts 28 bytes (decimal) after
the address in UXOUTJCT.
UXOUTSTA Address of a code identifying the current status of the job.
The address is not available with JES3. (This address is valid
when the entrance code is 4.) The code can be:
X'00 Awaiting execution (EQU UXOU@AE).
X'04' Executing (EQU UXOU@XEC).
X'08' Awaiting print - held (EQU UXOU@APH).
X'0C' Awaiting print - not held (EQU UXOU@AP).
UXOUTCMD Address of a code identifying the command. (This address is
valid when the entrance code is 8.) The code can be
X'0C' DETACH JOB command (EQU UXOU@END)
X'10' PRINT set by ALTER command/STATUS JOB
display/RL function in Job List Facility (if
ROSGBL parms set to FILEDSP=PRINT,
PRINTAL=yes) (EQU UXOU@PRT).
X'14' NOPRINT set by ALTER command/STATUS JOB
display/RL function in Job List Facility (if
ROSGBL parms set to FILEDSP=PRINT,
PRINTAL=yes) (EQU UXOU@PRT).
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 21.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine. (The addresses of
the ROT, SCB and PCB are not available through the UXDSECT.)
Notes
■ RCSEXIT is currently available only for BTAM TTY devices.
■ If the translate table is replaced (either for the session or on a per output
basis), the replacement table must be for the translation of ECBDIC to
ASCII line code.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 22.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine. (Note that the
address of the ROT, SCB and PCB are not available through UXDSECT.
UXRCSECA Address of the RCS Exit Communication Area. This area
contains information that can be examined by the exit routine
and modified to affect the RDS function that is being
performed.
UXRCSATT Address of a read-only copy of the RCS Attribute Area that
contains device dependent information.
Notes
■ RDSEXIT is currently only available for BTAM TTY devices.
■ A ROSCOE Data Stream contains no device-dependent characters.
■ The EBCDIC to ASCII translation is not performed during RDS
transformation. This translation process can be affected by using RCSEXIT.
Entrance Parameters:
Return Codes: Before returning control, the exit routine must load one of the
following return codes into register 15.
Code Meaning
0 Normal return processing continues.
4 Do not call again. The exit routine is disabled.
ROS3@ATH accesses the following MVS, DB2 and Advantage CA-Roscoe data
areas during the course of execution:
PSA MVS Prefix Save Area.
TCB MVS Task Control Block of the calling application.
ROS3@UEX Site Extension: If a site does not use one of the external security
packages supported by ROS3@ATH, a site-written exit routine may be added
to ROS3@ATH. This exit routine is responsible for providing the eight-byte
primary userid to ROS3@ATH for DB2 V1 and, optionally, the Authorization
Identifier List for DB2 V2.
It is not necessary to write this exit routine if the first eight bytes of the
Advantage CA-Roscoe user sign-on ID (stored in the SCB field of ACCNUM)
are sufficient to uniquely identify the user to DB2.
ROS3@ATH branches to the exit routine with the following register contents at
entry:
R0 Undefined.
R1 Address of the following parameter list.
0 Address of a 228-byte work area.
4 Address of the PCB.
8 Address of the SCB.
12 Address of the ROT.
The exit routine must save and restore the calling registers using standard OS
register save and restore logic. Processing in the exit routine should be limited
to the minimum logic needed to determine the AUTHIDs necessary to satisfy
the DB2 connection requirements. Care should be taken since a failure or
abend in this exit routine terminates the DB2 connection attempt. Since
ROS3@UEX is called in Supervisor State Key 0, appropriate measures should
be taken to ensure that MVS integrity is not compromised by the actions of
this extension. Also exercise care if the routine performs I/O or any function
that may incur an operating system WAIT. (The entire DB2 connection process
for all address spaces is suspended until the WAIT is completed.)
Upon return from the exit routine, the AUTHID result field must contain an
8-byte left-justified, right-blank-padded AUTHID or a value of all blanks.
Specification of an AUTHID of all blanks causes DB2 to use the default
identification specified at DB2 installation time. ROS3@ATH makes no checks
on the 8-byte value returned by the exit routine.
For DB2 V2, the Authorization List should contain a series of eight-byte
left-justified, right-blank-padded secondary identifiers if the site extension
supports this function. If not supported, the list should not be modified by the
site extension. ROS3@ATH makes no checks on the authorization list returned
by the exit routine.
After the link-edit has successfully completed, restart the DB2 system with the
new version of DSN3@ATH in the load library used by DB2 during startup
processing. The new DSN3@ATH must appear before any other version in the
startup libraries. After DB2 is restarted, Advantage CA-Roscoe users are
properly identified when Advantage CA-Roscoe/ETSO/DB2 sessions are
created.
The target load library must be authorized and must be in the DB2 startup JCL
since DSN3@ATH is loaded at DB2 initialization.
Notes
1 DB2LIB must point to the load library that contains the site's current
version of DSN3@ATH.
2 The ACFLIB DD statement is only required by eTrust CA-ACF2
installations. It must point to the load library that contains the site's
current version of ACF2 module ACF00SSL. Note that the following
ACF2 maintenance is required to use this facility.
ACF2 V500 -- APAR TK87103
ACF2 V510 -- APAR TP87103
3 SYSLIB must point to the load library that contains the module
ROS3@ATH. ROS3@ATH is placed into the RO60LIB by the SMP/E
APPLY of the base Advantage CA-Roscoe SYSMOD CRO6000.
4 SYSLMOD must point to the authorized load library that is used by DB2
during startup to access the new DSN3@ATH module.
5 Use the site standard definition for the link-edit work file.
6 This INCLUDE statement is only required by eTrust CA-ACF2
installations.
7 The MODE statement is required for MVS/XA environments.
8 ROS3@ATH must be identified as the load module entry point.
9 The result load module must be named DSN3@ATH.
Additional Notes
■ The sample JCL illustrates how to create a new DSN3@ATH module that
include ROS3@TH and, optionally, ROS3@UEX.
Ensure that the existing site DSN3@ATH load module in not overlaid by
the link-edit job by either:
– Renaming the old DSN3@ATH, or
– Providing a new authorized library to contain the new DSN3@ATH
load module created by the job.
■ The placement of the modules in the job stream causes ROS3@ATH to be
placed at the beginning of the resulting load module. The ENTRY
statement must identify ROS3@ATH as the execution entry point.
■ ROS3@ATH contains a weak external reference to ROS3@UEX (the
required name of the optional site-written exit routine). If ROS3@UEX is
included, it must be in the same load library as ROS3@ATH when the
link-edit job is executed.
Do not provide a dummy ROS3@UEX module; it may cause exit failure
and incorrect results to be returned to DB2.
RPXDSECT contains data areas that are available to the exit routine. To make
these areas available, the routine must include the following macro:
RPXDSECT EXIT=RPS
The data areas of RPXDSECT that are available to the exit routine upon entry
are:
RPXCMD Address of the RPSEXCB control area with the print request
options. See 'Notes' for a description of this control block.
RPXINPUT Address of the next input record to be printed. (This address is
valid when the area pointed to by RPXCODE contains an 8. For
all other calls, this address is set to zero.) The format of the input
area containing the record is:
X'8' -
Default
X'4' -
ANSI
X'2' -
MCC
X'1' -
Preformatted buffer (CA-ETC or
CA-eMAIL)
| X'8' - Record contains an 8 byte long
| 1 record header.
5 1 Reserved.
The data areas of RPXDSECT that are available to the exit routine upon exit
are:
RPXRC1 Halfword that contains the return code defining the logical order
of the records pointed to by RPXOUTPT, if any, and RPXINPUT,
where:
0 Print input record only.
4 Print inserted records, then input record.
8 Print input record, then inserted records.
12 Do not print input record, print inserted records if
any.
RPXRC2 Two-byte field that contains either a bit setting (designating calls
to be skipped) or zero (if all calls are to be made).
The bits are meaningful only if the return code in register 15 is
zero. Each bit represents a different call to the exit. If the bit for
an exit call is on, no call is made when that condition occurs.
The bit settings are:
Bit Hex Mask Meaning
1... .... .... .... X'8' RPX$SPL Spool records.
.1.. .... .... .... X'4' RPX$HDR Header records.
..1. .... .... .... X'2' RPX$TRL Trailer records.
...1 .... .... .... X'1' RPX$TOP Top-of-page.
.... 1... .... .... X'8' RPX$LLP Last line of page.
.... .1.. .... .... X'4' RPX$EOF End-of-file.
.... ..1. .... .... X'2' RPX$HLD Hold request.
.... ...1 .... .... X'1' RPX$CAN Cancel request.
.... .... 1... .... X'8' RPX$EOR End of request.
RPXRC3 One-byte field that contains miscellaneous information the exit
passes back to RPS. The bit settings are:
Bit Hex Mask Meaning
1... .... X'8' RC3NOTRN Do not translate;
input record.
RPXOUTPT
Address of the address list that contains the records to be
inserted in the print request, or zero if no records are to be
inserted.
The last address in the list must contain a X'80' in the high-order
byte. If the number of addresses in the list causes a page
boundary to be crossed, calls for the top of page and last line on
page are skipped while processing records returned by the exit.
The format of the record is:
Code Meaning
0 Continue calls for this print request.
4 Do not call again for this print request.
Cleanup must have been done by the exit.
RPVDSECT contains data areas that are available to the exit routine. To make
these area available, the routine must include the following macro:
RPVDSECT
Other exit-dependent data area of RPVDSECT that are available to the exit
routine are:
UX@ROTAD Address of the Roscoe Online Table (ROT) control block.
(Valid for all calls except 0.)
UX@SCBAD Address of the Session Control Block (SCB). (Valid for all calls
except 0.)
UX@PCBAD Address of the Presentation Area Control Block (PCB). (Valid
for all calls except 0.)
UX@WAREA Four fullwords to be used as a work area by the exit. (Valid
for all calls.)
UXRPTRM Address of the eight-byte terminal ID from which the PRINT
command is issued. (Valid for all calls.)
UXRPLCB Address of the eight-byte destination name to which the
current print request is being directed. (Valid for calls: 8, 12, 16
and 20.)
UXRPKEY Address of an area containing the sign-on key (padded to 22
characters) of the user issuing the PRINT command. (Valid for
all calls.)
UXRPPFX Address of area containing the prefix (padded to three
characters) of the user issuing the PRINT command. (Valid for
all calls.)
UXRPEXTP One-byte external indicator identifying the source of the PRINT
command, where:
Code Bit Hex Meaning
UXCODE R15
4 4
12 8
16 4
UX@MSGAD Address of 84-byte message area.
UX@RETFL One-byte message indicator. (X'80' = user-msg supplied).
UXRPCALL Address of a two-byte field containing bit map of calls to be
skipped. Each bit represents a different call to the exit. If the
bit for an exit call is on, no call is made when that condition
occurs. The bit settings are:
Bit Hex Meaning (Skip If)
Notes
■ A return code of 12 after any call from the exit routine terminates all calls
to the exit for the duration of the print request. It is the responsibility of
the exit routine to cleanup any unfreed storage before returning to RPS.
■ It is the exit routine's responsibility to insert data for the proper length into
the area pointed to by UXRPAREA. (Destination and tag names should be
eight-bytes in length padded to the right with blanks, the copy value is a
half-word and the class value is one byte).
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 9.
The area pointed to by the address in UXCODE contains the following code:
Code Meaning
0 User has finished RTF operand input and all operands have been
syntax checked (EQU UXRT@INT).
4 Last call (EQU UXRT@LST).
See section 7.3, “Common Data Areas” on page 7-4, for information about data
areas provided by UXDSECT. Note that UXDSECT contains no RTF
exit-dependent data areas.
2. Place the message length and text in the area whose address is in
UXMSGADR of UXDSECT.
Notes:
■ The RTFEXIT is linked with RSSCRTF0 by executing an SMP/E RECEIVE
and APPLY of product USERMOD MRO608E.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 25.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data area is available to the exit routine:
UXSCRTRM Address of the area containing the terminal ID, padded to eight
characters. See the description of the area SCBTRMNM under
topic 1.2.2 for an explanation of the ID format. (The ID is
present for all calls.)
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 26.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXSETVAL Address of a value or area. Each SET command has its own
definition of this area, where for:
SET AUTOFF UXSETVAL contains the address of the
following two-word area:
Word 1 Four-byte integer value which will be:
SET AUTOFF n (where
Word 2 contains the
value of n).
4 Reserved.
8 Reserved.
12 SET AUTOFF OFF disabled
for this terminal.
16 SET AUTOFF ON enabled
for this terminal.
Word 2 Four-byte integer value when Word 1
contains 0. (This value may be
modified.)
SET STMTCNT
UXSETVAL contains the address of a fullword
value FFFFFFFF if the user entered SET
STMTCNT RESET. With any other form of the
command, UXSETVAL contains the value
specified with the command. (This value may
be modified.)
SET TLOCK UXSETVAL contains the address of the
following two-word area:
Word 1 Four-byte integer value which will be:
SET TLOCK n (where Word
2 contains the value of n).
4 SET TLOCK LOGOFF.
8 SET TLOCK NOLOGOFF.
12 SET TLOCK ON/OFF (Use
site default for this terminal.)
16 SET TLOCK ON/OFF (Use
opposite of site default.)
Word 2 Four-byte integer value when Word 1
contains 0. (This value may be
modified.)
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 10.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXSIGTIM Address of a fullword containing the sign-on time in binary
form (as received from TIME SVC with BIN operand). (This
address is valid for both entrance codes.)
The state of the SCB is not defined during sign-on; the exit routine should not
refer to any fields in the SCB except for PREFIX (containing the user's prefix)
and ACCNUM (containing the user's sign-on key).
Notes
■ If an ACFEXIT routine is being used, SIGEXIT is called between the
ACFEXIT calls of 0 (verify) and 4 (initialize).
■ When creating an accounting record, the field SRTYPE must be set to
appropriate record type code (X'40' through X'4F').
These records are added to the accounting files but are not included in the
accounting reports produced by Advantage CA-Roscoe.
These records can be included in other reports and accounting systems.
This is done by the ACCTREPT program exit. (That is, when the
ACCTREPT program is executed, the exit routine identified by the
ACTEXIT SYSIN control statement processes these records.)
■ The records can be a maximum of 224 bytes in length where the first 124
bytes comprise the standard Advantage CA-Roscoe header segment. (It can
be mapped through the SRECORD DSECT which is generated by the
SRECORD macro.) The variable segment of the record may contain any
data the site wishes as long as it does not exceed 100 bytes in length.
■ If, with either an entrance code of 0 or 4, the exit routine sets the return
code to 8, the routine is called again with an entrance code of 4. On return
to the exit routine, UXSIGRPY contains the address of the area containing
the user's response.
If, when the entrance code is 0, the exit routine sets the return code to 12,
the record is written to the accounting data sets and the routine is called
again with an entrance code of 4.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 16.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXSMFSES Address of the variable length record to be written to the
accounting files. (This address is valid when the entrance code
is 0, 4, 8, 12, or 16.)
This record is mapped by the DSECT SRECORD, generated by
the Advantage CA-Roscoe macro SRECORD.
Notes
■ SMFEXIT is called during Advantage CA-Roscoe initialization. Register 1
contains 0 for this call. (It contains the address of a fullword that points to
UXDSECT for all subsequent calls.) The SMFEXIT exit routine may
perform such processing as required. Most of the ROT fields are
unformatted at this point in initialization; the contents of LASTATT are
unpredictable.
■ The type of record to be written is determined both from the code
contained in the area pointed to by the address in UXCODE and by the
value in the field SRTYPE. SRTYPE is a one-byte field in SRECORD.
■ If Advantage CA-Roscoe accounting should terminate abnormally, the exit
routine is called one last time; the area pointed to by UXCODE contain 20.
The exit routine should perform whatever termination housekeeping is
required. The accounting calls, including subsequent calls on SMFEXIT, are
disabled.
■ If standard Advantage CA-Roscoe accounting records are to be used, the
only field in the accounting records passed to SMFEXIT that may be
modified is SRUAF.
SRUAF is a 20-byte field that is set to zero and is not modified by the
standard Advantage CA-Roscoe accounting facilities. It is intended to be
used to convey information to site-written ACCTREPT program exit
routines.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 11.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXSUBJNM Address of an eight-byte jobname. (This address is valid when
the entrance code is 4, 8, 12, 16, 20, or 24.)
If multiple jobs are submitted, the area contains the name of
the first job.
UXSUBJB# Address of the eight-byte job number. (This address is valid
when the entrance code is 20.)
If multiple jobs are submitted, the area contains the number of
the last job.
UXSUBPWS Address of the 10-byte user password as determined at sign-on
or using the PASSWORD command. (This address is valid with
every call.)
UXSUBREC Address of an 80-byte input record. (This address is valid when
the entrance code is 4.)
UXSUBRCO Address of a fullword that is to contain the address of the
address list containing the replacement records. The last
address in the list must contain a X'80' in the high-order byte.
The replacement records must all be 80 bytes in length. (This
address must be supplied by the exit routine.)
UXSUBDSN Address of the 44-byte AllFusion CA-Librarian master file
named in a SET MASTER command. (This address is valid
when the entrance code is 12.)
UXSUBVOL Address of the six-byte volume serial number of the AllFusion
CA-Librarian master file named in the SET MASTER command.
(This address is valid when the entrance code is 12.)
UXSUBMEM Address of the eight-byte module name specified on the -INC
statement. (This address is valid when the entrance code is 12.)
Notes
■ When a AllFusion CA-Librarian master file is to be opened, Advantage
CA-Roscoe checks to see if a DSAEXIT routine is present. If a DSAEXIT
routine is present, the call to SUBEXIT is bypassed. If no DSAEXIT routine
is present, the call to SUBEXIT is made and the exit routine must
determine if the file is to be opened. Note: No facility is provided with
SUBEXIT to open protected (PROD2) AllFusion CA-Librarian master files.
■ If a site is using RACF (EXTSEC=RACF) and an ACFEXIT exit routine,
their SUBEXIT routine does not need to add USER= or PASSWORD= to
the JOB statement.
■ When deleting a job stream, all JOB statement processing must be
complete (all continued lines have been processed). Unpredictable results
occur if JOB statement processing is not complete.
■ If the job stream contains +INC statements or -INC AllFusion CA-Librarian
control statements, the exit routine is passed the expanded data; not the
+INC or -INC statements themselves.
■ If the exit routine rejects the job stream and a SUBMIT termination
message is written to the terminal, a trap code is set. If the exit routine
returns its own message, no trap code is set.
■ The distributed exit routine illustrates how the NOTIFY parameter can be
handled. This parameter allows JES2/JES3 status messages to be written to
the Response Line of a user's terminal when that user's jobs complete
execution. (See the Advantage CA-Roscoe Interactive Environment System
Reference Guide for additional information.)
To use this facility, a library member named UPSMEXIT must reside on the
UPS key. This member must contain the site written RPF program that is to
process the information passed from UPSMNTnn and UPSBLKnn.
Caution
If this facility is used while the UPSMNTnn panel is active, the program in
UPSMEXIT must not perform any action that causes a panel to be
deactivated.
The following table identifies the maximum number of arguments that may be
passed to UPSMEXIT.
TYPE OF CALL A1 A2 A3 A4
Before Add A1 " Data being
added
After add A2 " Data added code
Before Update U1 Data before update Data after
After Update U2 Data before update Data after code
Before Delete D1 Data to be deleted "
After Delete D2 Deleted data " code
■ A3 contains the data as it will appear after processing. The following table
shows the format of this data.
COLUMN CONTENTS
1-3 User's prefix.
4-25 User's sign-on key.
26-47 User's formal key.
48 Password required indicator.
49 Password change indicator.
50-57 User's library line limit.
58-65 Current number of lines user has saved in library.
66-77 Name of user's sign-on procedure.
78 Sign-on procedure change indicator.
79 Restricted user indicator.
80-87 Name of user's security group.
88 Operator command privileges indicator.
89 RPS command privileges indicator.
90 Accounting command privileges indicator.
91 ETSO command privileges indicator.
| 92 UPS Administrator privileges indicator.
| 93 Library Administrator privileges indicator.
When altering data, the format of the new data must conform to the string
format described above.
For information about writing RPF programs, see the Advantage CA-Roscoe
Interactive Environment RPF Language Guide.
For this exit, the area pointed to by the address in UXIDCODE contains the
exit identifier 14.
In addition to section 7.3, “Common Data Areas” on page 7-4, the following
exit-dependent data areas are available to the exit routine:
UXZAPDSN
Address of a 44-byte area containing the name of the SYSLIB data
set to be zapped. (This address is valid when the entrance code is
0, or 4.)
If the data set is a volume table of contents, the area contains the
true data set name of the volume table of contents rather than
FORMAT4.DSCB.
UXZAPCOD
Address of a one-byte field whose low-order bit contains either:
Code Meaning
0 No REP or SETSSI subcommand was included in the
subcommands entered by the user.
1 At least one REP or SETSSI subcommand was
included in the subcommands entered by the user.
(The address of this field is valid when the entrance code is 0 or
4.)
Notes
■ When an external data set is to be opened, Advantage CA-Roscoe checks
to see if a DSAEXIT routine is present.
If a DSAEXIT routine is found, it is called to validate whether the user can
access the designated data set. (The call that would have been made to the
ZAPEXIT routine is bypassed.)
If no DSAEXIT routine is found, the ZAPEXIT routine is called.
■ If no DSAEXIT routine is present, the ZAPEXIT routine is called when a
RACF-protected or OS password-protected data set is to be opened. If the
routine passes a return code of 0 back to Advantage CA-Roscoe,
Advantage CA-Roscoe attempts to open the data set. It is the site's
responsibility to ensure that Advantage CA-Roscoe has been authorized to
access the data set. If Advantage CA-Roscoe is not authorized to access the
data set, ZAPEXIT terminates with a 913 abend.
Example
CALL IAJTODAY,(DATE,TIME),VL
...
DATE DC CL8' '
TIME DC CL8' '
Code Meaning
0 The name is formed correctly according to Advantage
CA-Roscoe naming conventions.
4 The name is not formed correctly according to Advantage
CA-Roscoe naming conventions.
To add entries to the list, code the ROSX macro (carried in the source as a user
macro) as follows:
ROSXINIT Module
──┬─────┬──ROSX──name──┬────────┬─────────────────────────────
└─tag─┘ └─(,MON)─┘
To add entries to the list, code the ROSX macro (carried in the source as a user
macro) as follows:
ROSXTERM Module
──┬─────┬──ROSX──name──┬────────┬─────────────────────────────
└─tag─┘ └─(,MON)─┘
UPSREAD may be link-edited with the calling program and called, or loaded
and called. It is not reentrant. It contains a DCB that is opened when the
routine is first called and left open for use on subsequent calls until it is closed
on request of the calling program.
When a program that invokes UPSREAD is executed, the JCL must include a
DD statement for each file comprising the Advantage CA-Roscoe library, as in:
//ROSLIBnn DD DSN=ROSCOE.ROSLIBnn,DISP=SHR
Code Meaning
0 Call completed without error (the sign-on key was found and
the UPS record has been placed in the area pointed to by
A(REC)).
4 Either the sign-on key was not found or an I/O error occurred.
Code Meaning
8 Advantage CA-Roscoe libraries are not defined.
12 Parameter list conflict. Either an invalid call code was specified
or the site-written program attempted to get a user sign-on key
before making an initial call to UPSREAD.
Caution
The Monitor macros, described in Chapter 3 should be used in place of the
linkage conventions described in this appendix.
The entrance codes contained in register 0 on each entry to the Monitor routine
are divided into three types: initial entrance, normal continuation and
exception continuation.
1. Initial Entrance
Register 0 contains the following:
Location Contents
Byte 1 X'00'.
Byte 2 First character of the command identifier (Z for ZAP).
Byte 3 Fourth character of the command identifier. If it was not
specified with the command, a binary zero is present.
Byte 4 Optional appendage to the identifier (B in ZAP-B). Where
there is no appendage, the byte is set to X'00'.
Register 1 contains the address of the string, if a string was specified with
the invoking command. The format is a 1-byte length field followed by n
characters, where n does not exceed 200.
On the initial entrance to the routine, register 6 points to a 120-byte buffer
which may be used as a work area only during initialization. The area is
reused by Advantage CA-Roscoe immediately upon return from the initial
call, so no data may be stored in it between calls.
Use of the X Attribute
If the terminal user enters a command and the X attribute has been specified in
the RUN initialization parameter for that Monitor, bytes 2 and 3 are translated
to uppercase. Byte 4 and the string in register 1 are not translated to
uppercase.
If X is not specified, bytes 2, 3 and 4 and the string are translated to uppercase.
Note: For more information on passing information to monitors, see the RUN
command in the Advantage CA-Roscoe Interactive Environment Command
Reference Guide.
2. Normal Continuation
Register 0 contains binary zero. Register 1 contains one of the following:
Contents Meaning
0 No data is being passed from Advantage CA-Roscoe to
the Monitor routine.
address of reply Pointer to:
a. A 200-byte area containing the reply from the
terminal. The length of the data in the area can be
determined by scanning backwards for a nonblank
character. All terminal control characters have been
deleted.
b. The next line of the AWS or library member being
read.
With 255-character records, an eight-byte header
precedes the data. The header consists of a length
field (containing the length of the data plus eight
bytes), the sequence number (as a binary fullword)
and a halfword of binary zeros. The format of the
record is:
1 3 7 9 263
┌─────────┬───────────┬─────┬──────────────┐
│ length │ seq. no. │ │ data (255) │
└─────────┴───────────┴─────┴──────────────┘
3. Exception Continuation
Register 0 contains the following:
Location Contents
Byte 1 X'FF'
Byte 2 X'00'
Byte 3 X'00'
Byte 4 An indicator identifying the nature of the exception condition.
It may have one of the following values:
X'00' Forced termination due to an I/O error or sign-off. The
Monitor routine must terminate. After a Monitor
routine is entered with the must-stop condition
(register 0 = X'FF000000'), it is permitted to request a
real wait before taking the final exit. If such a real wait
is requested, the next entry to the routine does not
occur until after complete of the awaited event: this is
to permit an orderly disposal of subtasks and the like.
It is the responsibility of the Monitor routine to ensure
against a processing loop in this state.
C'N' End-of-file on input from the AWS or a library
member. This condition does not require termination of
the Monitor routine which ends when the appropriate
code is returned in register 15.
C'S' An ATTN was received from the terminal during I/O.
(For example, the user pressed the CLEAR key in
response to a terminal prompt.) Normally, an ATTN
causes the current routine to terminate and the stop
switch to be set to place an RPF program in pause
mode. However, the Monitor routine may ignore this
condition and continue processing. In this case, the
pending stop condition is purged. If, however, the
Monitor routine returns immediately after this entrance
code with a return code of 8, the stop condition is
reinstated.
'C'O' The AWS has overflowed on the last PUTAWS exit.
The Monitor routine need not terminate.
MSG1 DC AL1(L'MSG1A)
MSG1A DC C'ANY ALPHANUMERIC DATA'
...
LASTMSG DC AL1(L'LASTMSGA)
LASTMSGA DC C'LAST LINE WRITTEN ...'
To activate the terminal alarm: OR X'80' into SWITCH07 in the
SCB.
To cause the user's response to be masked: OR X'01' into
SWITCH07 in the SCB.
■ 0 and the SCB field SWITCH02 is X'02': Real Wait. (See A-10.)
■ 0 and the SCB field SWITCH02 is X'80': Time-out Request. (See
A-10.)
■ 0 and the SCB field SWITCH02 is not X'02' or X'80': Pause State
(See A-10.)
■ 0 and register 0 contains the SPIE address: SPIE (See A-12.)
LOC1 DC AL1(L'LOCAL1)
LOCAL1 DC C'L1'
NM DC AL1(L'NAME)
NAME DC C'ANYNAME<5>'
The preceding example illustrates how a user-defined indexed
variable can be referenced.
The data is formatted as:
DATA DC AL1(L'DTASTR)
DTASTR DC C'ANY DATA STRING'
28 Write a 255-byte line into the AWS and call again. (See $ROSCOE
FUNC=PUTAWSX.)
Register 1 must contain the address of an address list. The first byte
of the address list must contain X'80' an dthe address must point to
the record to be written. The format of the record is:
1 3 7 9 263
┌─────────┬───────────┬─────┬──────────────┐
│ length │ seq. no. │ │ data (255) │
└─────────┴───────────┴─────┴──────────────┘
32 Call again with the next 255-byte line from the AWS or library. (See
$ROSCOE FUNC=GETAWSX.)
36 Write message not exceeding 255 bytes and call again. (See
$ROSCOE FUNC=PUTMSG.)
Register 1 must contain the address of a $MONMSG message.
Register 0 must contain the address of a sublist or binary zeros (if
no sublist is present). The sublist contains the addresses of one to
four variable text segments that are to be substituted into the
message generated by the $MONMSG macro. (The last segment
must have a X'80' ORed in the high-order byte.)
Notes
■ No line of data to be sent to the terminal may exceed 255 characters in
length, nor may it contain any control characters or other characters that
cannot be printed or displayed on a terminal.
■ With a return code of 16, the length of a line to be written into the AWS
may not exceed 80 characters. With a return code of 28, the line length
may not exceed 255 characters. Lines are assigned sequence numbers
beginning with one and incremented by one. When a Monitor routine
makes its first request to write to the AWS, the previous contents of the
AWS is lost.
■ On every call to the Monitor routine, register 7 contains the address of the
ATT1 and register 5 contains the address of the SCB. The four fullwords in
the SCB with the tags SCBUSER1 through SCBUSER4 are reserved for use
by the Monitor routine. The integrity of these four words is guaranteed by
Advantage CA-Roscoe between the initial call to the routine and final
return from it, but not between discrete executions of the routine.
Additional facilities are provided for delaying the reentrance to the Monitor
routine. These facilities, described below, are mutually exclusive (for a single
return from the Monitor routine) and are designed for different purposes. Each
facility is enabled by setting a request flag in the SCB. The real wait request
facility also uses fields in the Advantage CA-Roscoe data areas ATT1 and ROT
(covered by register 13 on entrance to the Monitor routine). Each facility can be
used only when the Monitor returns in a pause state.
■ Time-out Request
SWITCH02 in the SCB is ORed with X'80'. Advantage CA-Roscoe does not
dispatch the Monitor routine again until one-tenth of a second has elapsed.
(The reentrance may be somewhat delayed if there are many users with
work pending on the dispatching list. It may also occur earlier if a timer
request is already pending for another user.)
■ Real Wait Request
SWITCH02 in the SCB is ORed with X'02'. This facility is designed for
subtask communications between the Monitor routine and its subroutines.
If the Monitor routine attaches a subtask and then has nothing to do until
completion of the subtask (or of a request by the subtask for input, and so
forth), it should pass to the subtask the address of field ECB in the ATT1.
The subtask should then post the ECB when appropriate. The Monitor
routine is meanwhile in a wait state which ends only when the ECB is
posted.
Once the ECB is posted, Advantage CA-Roscoe:
1. Copies the contents of the ECB into the field LASTECB in the ROT.
2. Clears the ECB.
3. Dispatches the Monitor routine.
If the Monitor routine does not ensure that the ECB is eventually posted,
the terminal is locked out until Advantage CA-Roscoe is shut down. For
some subtasks, particularly those that perform no input or output
operations, the ECB may be specified as the operand of the ECB=keyword
of ATTACH. Normally, though, the ECB is needed to control ongoing
communications between the Monitor routine and the subtask; it is then
necessary to specify an exit routine address (via the ETXR= keyword of
ATTACH) and arrange for the specified exit routine to notify the Monitor
routine when the subtask has completed.
After a Monitor routine is entered with the must-stop condition (R0 =
X'FF000000'), it is permitted to request a real wait before making its final
return. This is to permit the orderly disposal of subtasks and the like. It is
the responsibility of the Monitor routine to ensure against a processing
loop in this state.
The value of the pause limit is preset to 120. It may be changed in two ways:
■ With the Advantage CA-Roscoe initialization parameter PAUSE, as defined
in the Advantage CA-Roscoe Interactive Environment Programs and Utilities
Guide.
■ By the privileged command ROZAP, as described in the Advantage
CA-Roscoe Interactive Environment System Commands Guide.
The Monitor routine is run with all program exception interruptions enabled
except significance. The Roscoe CA-SPIE/ESPIE exit intercepts all such
interruptions occurring under the first PRB of the Advantage CA-Roscoe main
task. Interruptions occurring in subtasks or under SVRBs are not so
intercepted.
Subsequent attempts to use the same command fail with the message:
CMD24 REQUESTED MONITOR COMMAND NO LONGER AVAILABLE TODAY
The Monitor routine can be reactivated via the ROZAP UNLOCK command.
Note: If there is no pseudo-SPIE exit, the MONABXIT routine is invoked
when a program exception occurs. MONABXIT writes: 1) a snap dump
to the SYSOUT file defined by the MONSNAP DD statement, and 2) a
diagnostic message to the console.
Index X-1
AMSEXIT Exit (continued) AWSI Interface (continued)
Data Areas (continued) Current AWS (AWSRNBPT) 4-22
Exit-Dependent 8-10 Data areas 4-2
Description 8-9 Delete AWS records 4-10, 4-11
Entrance Parameters Description of 4-1, 4-2, 4-3
Exit-Dependent 8-9 Error conditions 4-24
Register Conventions 7-3 Exception code (AWSRXRC) 4-22
Return Codes 8-10, 8-11 Functions, list of 4-6
Sample JCL 7-12 Get AWS configuration 4-13
Testing 7-10, 7-11 Get AWS status 4-20
Arithmetic symbols (syntax diagrams) xvi Highest sequence number in AWS
ATT1 (Active Terminal Table 1) 1-4 (AWSRHSEQ) 4-22
ATTACH DSN Command Initialize Interface 4-14
Exit 8-41 Insert
ATTACH JOB Command Initiate 4-20
Exit 8-73 Reset/Terminate 4-19
ATTACH LIBRARY Command Linkage conventions 4-3
Exit 8-64 Macro, description of 4-5
AUTEXIT Exit Move records 4-14, 4-16
Coding Conventions Number of records in AWS (AWSRNMBR) 4-22
Common 7-2 Position pointer
Exit-Dependent 8-12 Direct 4-16, 4-17
Common Reentrancy Macros 7-8, 7-9 When inserting 4-20
Data Areas Read AWS record 4-12, 4-13
Common 7-4, 7-5, 7-6, 7-7 Record format 4-2
Exit-Dependent 8-13 Release AWS 4-11
Description 8-12 Renumber AWS 4-19
Entrance Parameters Terminate 4-21
Exit-Dependent 8-12, 8-13 With multiple users 4-3
Register Conventions 7-3 Write record to AWS 4-18
Return Codes 8-14 AWSI Macro
Sample JCL 7-12 See also AWSI Interface
Testing 7-10, 7-11 Description of 4-1, 4-2, 4-3
AWS Syntax 4-4, 4-5
Information Block (AWSIB) 4-13 AWSIB (AWS Information Block) 4-13
Parameter Block (AWSPB) 4-2 AWSIB Macro 4-13
Request Block (AWSRB) 4-2 AWSMGR Subsystem 4-1, 4-2, 4-3
Status Block (AWSSB) 4-20 AWSPB (AWS Parameter Block)
Working with 4-4 Macro 4-2
AWSI and LIBI Interfaces plus individual exit AWSRB (AWS Request Block)
descriptions Fields comprising 4-22, 4-23
See Data areas Load address 4-4
AWSI Interface 4-1 Macro 4-2
Activate new AWS 4-7 AWSRHSEQ in AWSRB 4-22
AWS Information Block (AWSIB) 4-13 AWSRNBPT in AWSRB
AWS Parameter Block (AWSPB) 4-2 Description 4-22
AWS Request Block (AWSRB) 4-2 With multiple AWSs 4-3
AWS Status Block (AWSSB) 4-20 AWSRNMBR in AWSRB 4-22
Checkpoint 4-7 AWSRPARM in AWSRB 4-22, 4-23
Coding macro 4-4, 4-5 AWSRSTAT in AWSRB 4-22
Copy AWS records 4-8, 4-9
Index X-3
CONEXIT Exit DISEXIT Exit (continued)
Coding Conventions Common Reentrancy Macros 7-8, 7-9
Common 7-2 Data Areas
Exit-Dependent 8-29 Common 7-4, 7-5, 7-6, 7-7
Common Reentrancy Macros 7-8, 7-9 Exit-Dependent 8-32, 8-33
Data Areas Description 8-32
Common 7-4, 7-5, 7-6, 7-7 Entrance Parameters
Exit-Dependent 8-29 Exit-Dependent 8-32
Description 8-29 Register Conventions 7-3
Entrance Parameters Return Codes 8-33, 8-34
Exit-Dependent 8-29 Sample JCL 7-12
Register Conventions 7-3 Testing 7-10, 7-11
Return Codes 8-30 DISPLAY Command
Sample JCL 7-12 Exit 8-32
Testing 7-10, 7-11 DSAEXIT 8-35
CONSOLE Command DSAEXIT Exit
Exit 8-29 ACEE in SCBACFB 1-4
Copy AWS records (AWSI) 4-8, 4-9 Coding Conventions
COPY function (AWSI) 4-8, 4-9 Common 7-2
Exit-Dependent 8-35
Common Reentrancy Macros 7-8, 7-9
D Data Areas
Data areas 1-1 Common 7-4, 7-5, 7-6, 7-7
See also Advantage CA-Roscoe Exit-Dependent 8-36—8-38
ATT1 1-4 Description 8-35
Caution 1-1 Entrance Parameters
ROT 1-2 Exit-Dependent 8-35, 8-36
SCB 1-4 Register Conventions 7-3
Data Set Access Exit Return Codes 8-38
See DSAEXIT Sample JCL 7-12
Data Set Facility Testing 7-10, 7-11
Exit (See DSFEXIT) 8-41 DSFEXIT Exit
DB2 Authorization Exit Coding Conventions
See ROS3@ATH Exit Common 7-2
Default values (syntax diagrams) xx Exit-Dependent 8-42
DEL function Common Reentrancy Macros 7-8, 7-9
LIBI 5-9 Data Areas
DELETE function (AWSI) 4-10, 4-11 Common 7-4, 7-5, 7-6, 7-7
Deleting Exit-Dependent 8-48
AWS records (AWSI) 4-10, 4-11 Description 8-41, 8-42
Member from library Entrance Parameters
LIBI 5-9 Exit-Dependent 8-43
Delimiters Register Conventions 7-3
syntax diagrams, use in xvii Return Codes 8-48, 8-49
DETACH DSN Command Sample JCL 7-12
Exit 8-41 Testing 7-10, 7-11
DETACH JOB Command DSN Command
Exit 8-73 Exit 8-41
DISEXIT Exit DSN3@ATH Exit
Coding Conventions See ROS3@ATH Exit
Common 7-2
Exit-Dependent 8-32
Index X-5
IMPORT Command LBRBDBPT in LBRB
Exit 8-57 Description 5-19
INFO function LBDB address 5-3
AWSI macro 4-13 LBRBECDE in LBRB 5-19
LIBI 5-12 LBRBPARM in LBRB 5-19
INIT function LBRBSTAT in LBRB 5-19
AWSI macro 4-14 LBRBXRC in LBRB
LIBI 5-12 Description 5-19
Initialize Error code 5-3
AWSI Interface 4-14 LBSB (Library Status Block) macro 5-17
Batch LIBI Interface 5-13 LIB function
Online LIBI Interface 5-12 LIBI 5-13
INITX function LIBEXIT Exit
LIBI 5-13 Coding Conventions
Insert into AWS Common 7-2
Initiate (AWSI) 4-20 Exit-Dependent 8-65
Terminate (AWSI) 4-19 Common Reentrancy Macros 7-8, 7-9
Data Areas
Common 7-4, 7-5, 7-6, 7-7
J Exit-Dependent 8-65—8-67
JCL, Sample Description 8-64
Assemble/link Monitor routines 2-3 Entrance Parameters
Exits Exit-Dependent 8-65
Assemble/Link 7-12 Register Conventions 7-3
Include SHOW macro 7-11 Return Codes 8-67, 8-68
Monitor routines, Assemble/Link 2-2 Sample JCL 7-12
JOBEXIT Exit Testing 7-10, 7-11
Coding Conventions 8-63 LIBI Interface 5-1
Description 8-63 Add entry to library 5-7, 5-8
Entrance Parameters 8-63 Allocate library resources 5-7
Return Codes 8-63 Alter member attributes 5-8, 5-9
Change member name 5-15, 5-16
K Coding macro 5-4, 5-5
Data Areas 5-2
Keywords (syntax diagrams) xvi
Delete member from library 5-9
Description 5-1
L Error Exceptions 5-20
LASTATT in ROT 1-2 Fine member entry 5-10
LASTECB in ROT 1-2 Format member entry 5-10
LBAAC macro (Library Account Block) 5-11 Functions, list of 5-6
LBDB (Library Definition Block) 5-2 Get
LBIB (Library Information Block) macro 5-12 Index entry 5-13
LBINDEX Macro 5-10, 5-13, 8-67 Key and security group 5-11
LBPMDEF (Library Parameter Definition) macro Library configuration 5-12
Description 5-2 Number of available library blocks 5-17
Syntax 5-18 Prefix and security group 5-11
LBRB (Library Request Block) macro Status of library resources 5-17
Description 5-2 Initialize
Format 5-19 Batch Interface 5-13
Online Interface 5-12
Library Account Block (LBAAC) 5-11
Index X-7
Macros (continued) Monitor macros (continued)
UXALC 8-45, 8-47 MONM 3-7
UXDFG 8-47 Monitor Routines
UXDSECT Defining to Advantage CA-Roscoe 2-3
Data Areas 7-4 Definition of 2-2
Description 7-4 Monitor writing
UXENTER 7-8 description of facilities 2-1
UXEXIT 7-8, 7-9 Passing parameters to 2-4
UXOUTDS 8-75 Monitor writing
MAILREC macro 8-81 Advantage CA-Roscoe communications
Message from Monitor routine Activate WAIT state 3-31
To terminal ($MONMSG) 3-8, 3-9 Examples 3-33
To terminal/AWS (MONM) 3-7 Exceptions Conditions 3-32
Messages Program variable pool 3-27, 3-28
To terminal or AWS Read 255-character AWS/member line 3-20
$MONMSG macro 3-8, 3-9 Read 80-character AWS/member line 3-19
MONM macro 3-7 Read terminal line 3-21
MONEXIT Exit Set pause state 3-22
Coding Conventions SPIE handling 3-30, 3-31
Common 7-2 Subtask communications 3-28
Exit-Dependent 8-70 Terminate 3-19
Common Reentrancy Macros 7-8, 7-9 Write 255-character line to AWS 3-23
Data Areas Write 80-character line to AWS 3-23
Common 7-4, 7-5, 7-6, 7-7 Write accounting record 3-29
Exit-Dependent 8-70, 8-71 Write message to terminal 3-24, 3-25
Description 8-70 Write to terminal 3-26
Entrance Parameters AWSI Interface, using 4-1, 4-2, 4-3
Exit-Dependent 8-70 AWSI macro, coding 4-4, 4-5
Register Conventions 7-3 Call a routine 3-3, 3-4
Return Codes 8-71 Defining to Advantage CA-Roscoe 2-3
Sample JCL 7-12 Definition of terms 2-2
Testing 7-10, 7-11 Description of facilities 2-1
Monitor Commands Establish
Definition of 2-2 Advantage CA-Roscoe communications 3-17,
Exit 8-70 3-18
Monitor macros Entry point 3-11, 3-12, 3-13, 3-14
$CALL 3-3, 3-4 Global work areas 3-5, 3-6
$GBL 3-5, 3-6 Local work areas 3-34
$GLBEND 3-5, 3-6 Parameter list 3-10
$MONMSG 3-8, 3-9 Storage requirements 3-11, 3-12, 3-13, 3-14
$PRM 3-10 Subtask 3-11, 3-12, 3-13, 3-14
$PRMEND 3-10 LIBI Interface, using 5-1
$PROC 3-11, 3-12, 3-13, 3-14 LIBI macro, coding 5-4, 5-5
$PROCEND 3-15 Load module requirements 2-2, 2-3
$RETURN 3-16 Message to terminal/AWS
$ROSCOE 3-17—3-33 Static 3-7
$WRK 3-34 Variable 3-8, 3-9
$WRKEND 3-34 Monitor macros, description of 3-1, 3-2
AWSI 4-4, 4-5 Naming conventions 2-2
Description of 3-1, 3-2 Passing parameters to routine 2-4
LIBI 5-4, 5-5 Restrictions 2-5, 2-6
Index X-9
RDSEXIT Exit ROSDATA Program
Coding Conventions Exit 8-18
Common 7-2 ROSMAILS Program Exit 8-81
Exit-Dependent 8-79 Coding Conventions 8-81
Common Reentrancy Macros 7-8, 7-9 Description 8-81
Data Areas Entrance Parameters 8-81
Common 7-4, 7-5, 7-6, 7-7 Return Codes 8-81
Exit-Dependent 8-79 ROSX Macro
Description 8-79 With ROSXINIT 9-4
Entrance Parameters With ROSXTERM 9-6
Exit-Dependent 8-79 ROSXINIT Module 9-4
Register Conventions 7-3 ROSXTERM Module 9-6
Return Codes 8-80 ROT (Roscoe Online Table) 1-2, 1-3
Sample JCL 7-12 ROTn in ROT 1-2
Testing 7-10, 7-11 ROTUSERn in ROT 1-3
Reading RPF
255-character AWS/member line Program variable pool access 3-27, 3-28
($ROSCOE) 3-20 RPS
80-character AWS/member line Exit
($ROSCOE) 3-19 Banner 8-15
AWS For Scheduled Print Requests 8-88
Configuration (AWSI) 4-13 RPSEXCB 8-94
Record (AWSI) 4-12, 4-13 RPSEXIT Exit
Status (AWSI) 4-20 Coding Conventions 8-88
Library configuration (LIBI) 5-12 Data Areas 8-88—8-93
Library index entry (LIBI) 5-13 Description 8-88
Next logical member record (LIBI) 5-10 Entrance Parameters 8-88
Terminal line ($ROSCOE) 3-21 Return Codes 8-93
REALWAIT function ($ROSCOE) 3-28 RPVDSECT Macro 8-95
Release RPVEXIT Exit
AWS (AWSI) 4-11 Coding Conventions 8-95
Library resource Data Areas 8-95—8-99
LIBI 5-10 Description 8-95
RENAME function Entrance Parameters 8-95
LIBI 5-15, 5-16 Return Codes 8-99, 8-100
Renaming RPXCMD in RPSEXIT 8-90
Library member (LIBI) 5-15, 5-16 RPXCODE in RPSEXIT 8-88, 8-89
RENUMBER function (AWSI) 4-19 RPXDSECT Macro 8-88
Replace entry in library RPXIDCDE in RPSEXIT 8-88
LIBI 5-7, 5-8 RPXINPUT in RPSEXIT 8-91
RESETI function (AWSI) 4-19 RPXOUTPT in RPSEXIT 8-92, 8-93
Return to calling Monitor routine 3-16 RPXPCH in RPSEXIT 8-90
ROS3@ATH Exit 8-82 RPXPRTID in RPSEXIT 8-90
Description 8-82, 8-84 RPXRC1 in RPSEXIT 8-92
Extension 8-84, 8-85 RPXRC2 in RPSEXIT 8-92
Installation 8-85, 8-86 RPXRC3 in RPSEXIT 8-92
Sample JCL 8-85, 8-86 RPXTOTLS in RPSEXIT 8-91
Roscoe Online Table (ROT) 1-2, 1-3 RPXUKEY in RPSEXIT 8-90
ROSCOPY Program RPXWKAR in RPSEXIT 8-91
Exit 8-18 RSSCEXPU Macro (EXPORT Routine) 8-52
Index X-11
SMFEXIT Exit (continued) Syntax diagrams
Data Areas (continued) reading (how to) xvi—xxi
Exit-Dependent 8-113
Description 8-112
Entrance Parameters T
Exit-Dependent 8-112 TERM function
Register Conventions 7-3 AWSI 4-21
Return Codes 8-113 LIBI 5-17
Sample JCL 7-12 Terminate
Testing 7-10, 7-11 See Stopping
SPACE function TERMNUM in SCB 1-5
LIBI 5-17 TERMSO in ROT 1-3
Space Requirements TERMTO in ROT 1-3
Number of available library blocks (LIBI) 5-17 TERMTYPE in SCB 1-6
Site-written Monitor routines 3-11, 3-12, 3-13, TIMEOUT function ($ROSCOE) 3-31
3-14, 5-17
SPIE function ($ROSCOE) 3-30, 3-31
SRECORD macro
U
UPS (User Profile System)
With SIGEXIT 8-111
Exit 8-119, 8-120
With SMFEXIT 8-113, 8-114
GETUPS Routine 9-2
STATUS function
UPSREAD Routine 9-7
AWSI 4-20
UPSMEXIT Member 8-119, 8-120
LIBI 5-17
UPSREAD Service Routine 9-7
STATUS JOB Command
USERWDn in SCB 1-6
Exit 8-73
UX@CODE in RPVEXIT 8-95, 8-97
Status of
UX@MSGAD in RPVEXIT 8-99
Current AWS (AWSI) 4-20
UX@PCBAD in RPVEXIT 8-97
Library resources
UX@RETFG in RPVEXIT 8-99
LIBI 5-17
UX@ROTAD in RPVEXIT 8-97
Stopping 4-21
UX@SCBAD in RPVEXIT 8-97
AWSI Interface 4-21
UX@WAREA in RPVEXIT 8-97
LIBI 5-17
UXACFACD in ACFEXIT 8-5
SUBEXIT Exit
UXACFGRP in ACFEXIT 8-5
Coding Conventions
UXACFINF in ACFEXIT 8-5
Common 7-2
UXACFNPS in ACFEXIT 8-5
Exit-Dependent 8-115
UXACFPGM in ACFEXIT 8-5
Common Reentrancy Macros 7-8, 7-9
UXACFPSW in ACFEXIT 8-4
Data Areas
UXACFTRM in ACFEXIT 8-5
Common 7-4, 7-5, 7-6, 7-7
UXALC 8-45, 8-47
Exit-Dependent 8-116
UXAMSREC in AMSEXIT 8-10
Description 8-115
UXAMSSUB in AMSEXIT 8-10
Entrance Parameters
UXAUTTRM in AUTEXIT 8-13
Exit-Dependent 8-115, 8-116
UXBANCLS in BANEXIT 8-16
Register Conventions 7-3
UXBANDAT in BANEXIT 8-16
Return Codes 8-116, 8-118
UXBANDST in BANEXIT 8-16
Sample JCL 7-12
UXBANDTA in BANEXIT 8-16
Testing 7-10, 7-11
UXBANKEY in BANEXIT 8-16
SUBMIT Command
UXBANPFX in BANEXIT 8-16
Exit 8-115
UXBANPGM in BANEXIT 8-16
Subtasking Monitor routine ($PROC) 3-11, 3-12,
3-13, 3-14
Index X-13
UXLS2GRP in LIBEXIT 8-67 UXSIGDAT in SIGEXIT 8-109
UXLS2KEY in LIBEXIT 8-67 UXSIGREC in SIGEXIT 8-109
UXLS2LPF in LIBEXIT 8-67 UXSIGRPY in SIGEXIT 8-109
UXLS2MEM in LIBEXIT 8-67 UXSIGTIM in SIGEXIT 8-108
UXLS3ENT in LIBEXIT 8-67 UXSMFSES in SMFEXIT 8-113
UXLS3FKY in LIBEXIT 8-67 UXSUBDSN in SUBEXIT 8-116
UXLS3GRP in LIBEXIT 8-67 UXSUBJB# in SUBEXIT 8-116
UXLS3KEY in LIBEXIT 8-67 UXSUBJNM in SUBEXIT 8-116
UXLS3LNM in LIBEXIT 8-67 UXSUBMEM in SUBEXIT 8-116
UXLS3PFX in LIBEXIT 8-67 UXSUBPSW in SUBEXIT 8-116
UXMONLNM in MONEXIT 8-71 UXSUBRCO in SUBEXIT 8-116
UXMONNAM in MONEXIT 8-70 UXSUBREC in SUBEXIT 8-116
UXMONSTR in MONEXIT 8-71 UXSUBVOL in SUBEXIT 8-116
UXMSGADR in UXDSECT 7-5 UXWRKAREA in UXDSECT 7-5
UXOUTCMD in OUTEXIT 8-74 UXZAPCOD in ZAPEXIT 8-123
UXOUTDS 8-75 UXZAPDSN in ZAPEXIT 8-122
UXOUTJB# in OUTEXIT 8-74
UXOUTJCT in OUTEXIT 8-74
UXOUTJNM in OUTEXIT 8-74 V
UXOUTOSE in OUTEXIT 8-75 Variables (syntax diagrams) xvi
UXOUTRC in OUTEXIT 8-75
UXOUTSTA in OUTEXIT 8-74
UXOUTWRK in OUTEXIT 8-75
W
Working with
UXOUTWRK in UXDSECT 7-6
See AWSI Interface
UXPCBADR in UXDSECT 7-5
Writing 4-18
UXRCSATT
Line to AWS (AWSI) 4-18
in RCSEXIT 8-78
Monitor routine, site-written
in RDSEXIT 8-79
255-character line to AWS (ROSCOE) 3-23
UXRCSECA
80-character line to AWS ($ROSCOE) 3-23
in RCSEXIT 8-78
Accounting record ($ROSCOE) 3-29
in RDSEXIT 8-79
Line to library 5-15
UXRCSXT in RCSEXIT 8-77
Message to terminal ($ROSCOE) 3-24, 3-25
UXRDSOD in UXRDSEXIT 8-79
Static message to terminal/AWS
UXRETFLG in UXDSECT 7-5
(MONM) 3-7
UXROTADR in UXDSECT 7-4
To terminal ($ROSCOE) 3-26
UXRPAREA in RPVEXIT 8-98
Variable message to terminal
UXRPCALL in RPVEXIT 8-99
($MONMSG) 3-8, 3-9
UXRPCLAS in RPVEXIT 8-97
UXRPCOPY in RPVEXIT 8-98
UXRPEXTP in RPVEXIT 8-97 Z
UXRPKEY in RPVEXIT 8-97 ZAP Command
UXRPLCB in RPVEXIT 8-97 Exit 8-122
UXRPMISC in RPVEXIT 8-98 ZAPEXIT Exit
UXRPPFX in RPVEXIT 8-97 Coding Conventions
UXRPSTAT in RPVEXIT 8-98 Common 7-2
UXRPTRM in RPVEXIT 8-97 Exit-Dependent 8-122
UXRPTYPE in RPVEXIT 8-98 Common Reentrancy Macros 7-8, 7-9
UXSCBADR in UXDSECT 7-5 Data Areas
UXSCRTRM in SCREXIT 8-103 Common 7-4, 7-5, 7-6, 7-7
UXSETVAL in SETEXIT 8-106 Exit-Dependent 8-122, 8-123
Description 8-122
Index X-15