z/OS Communications Server: SNA Programming
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


MODCB—Modify the contents of control block fields

z/OS Communications Server: SNA Programming
SC27-3674-00

Purpose

MODCB modifies the contents of one or more fields in an ACB, EXLST, RPL, or NIB control block. MODCB works with control blocks created either with declarative macroinstructions or with the GENCB macroinstruction.

Usage

The user of the MODCB macroinstruction indicates the location of the control block, the fields within the control block to be modified, and the new values that are to be placed or represented in those fields.

Most fields whose contents can be set with the ACB, EXLST, or NIB macroinstruction can also be modified by the MODCB macroinstruction. The operands used to do this are the same as those used when the control block is created.

The following restrictions apply to the use of MODCB:
  • An ACB cannot be modified after an OPEN macroinstruction has been issued for it.
  • An exit list (EXLST) cannot have exits added to it with the MODCB macroinstruction. If an exit list field is not specified in the EXLST macroinstruction, do not attempt to modify that field with a MODCB macroinstruction. MODCB can, however, be used to change dummy exit addresses to valid addresses. This must be done before OPEN is issued for the ACB that references the EXLST control block, or before an OPEN (for a CNM application program), OPNDST, or OPNSEC is issued using the NIB for referencing the EXLST.
  • An RPL cannot be modified while a request using the RPL is pending, that is, while the RPL is active.
  • An NIB should not be modified if it was referenced by an RPL that is still active.
  • The AM field of the ACB, EXLST, and RPL control blocks cannot be modified. Once a control block has been generated in a VTAM-compatible form, it cannot later be modified for use with another access method.

List, generate, and execute forms of the MODCB macroinstruction are available; they are designated by the MF operand. (See Forms of the manipulative macroinstruction, for more information.)

Because the various MODCB operand values can be specified in a large variety of formats, the operand format specifications have been tabulated in Summary of operand specifications, and do not appear here.

Note: Not all control block fields can be modified by using MODCB. Refer to Summary of operand specifications, to determine fields that are modifiable. Other fields can be modified at execution time by use of the appropriate control block DSECTs as described in Control block formats and DSECTs.

An application program running in either 24- or 31-bit addressing mode can issue the MODCB macroinstruction. To use 31-bit addressing, the application program must use the VTAM® mapping macroinstructions as well as GETMAIN and FREEMAIN. Refer to 31-bit addressing for information about 31-bit addressing.

Syntax

Read syntax diagramSkip visual syntax diagram
>>-+------+--MODCB--AM--=--VTAM--------------------------------->
   '-name-'                       

>--+-,--ACB--=--acb_address---------+--------------------------->
   +-,--EXLST--=--exit_list_address-+   
   +-,--NIB--=--nib_address---------+   
   '-,--RPL--=--rpl_address---------'   

>--+-----------------------------+------------------------------>
   '-,--field_name--=--new_value-'   

>--+----------------------------------------------------------------+-><
   '-,--MF--=--+-(--E--,--parameter_list_address--)---------------+-'   
               +-(--G--,--parameter_list_address--+----------+--)-+     
               |                                  '-,--label-'    |     
               +-L------------------------------------------------+     
               '-(--L--,--parameter_list_address--+----------+--)-'     
                                                  '-,--label-'          

Input parameters

AM=VTAM
Identifies this macroinstruction as a VTAM macroinstruction. This operand is required.
ACB=acb_address
EXLST=exit_list_address
NIB=nib_address
RPL=rpl_address
Indicates the type and location of the control block whose fields are to be modified.
field_name=new_value
Indicates a field in the control block to be modified and the new value that is to be contained or represented within it.

For field_name, code the keyword of any MODCB-supported operand (see Summary of operand specifications, for more information) that can be coded in the macroinstruction corresponding to the ACB, EXLST, RPL, or NIB operand. If RPL=RPL1 is coded, for example, the keyword of any MODCB-supported operand in the RPL macroinstruction can be coded. ARG=(register) can also be coded.

For new_value, code any value that could be used in an ACB, EXLST, RPL, or NIB macroinstruction, or use one of the formats indicated in Summary of operand specifications.

MF=E, G, or L
Indicates that an execute, generate, or list form of MODCB is used. Omitting this operand causes the standard form of MODCB to be used. See Forms of the manipulative macroinstruction, for a description of the execute, generate, or list forms of MODCB.

Examples

MOD1     MODCB RPL=(5),OPTCD=(ASY,SPEC,CS),AM=VTAM

MOD1 activates the ASY, SPEC, and CS option codes in an RPL. The settings for the other option codes are not affected. The address of this RPL must be in register 5 when MOD1 is executed.

Completion information

After MODCB processing is completed, register 15 indicates whether the operation completed successfully. If the operation completed successfully, register 15 is set to 0; if it completed unsuccessfully, register 15 is set to either X'04', X'08', or X'0C'. If register 15 is set to X'04' or X'0C', register 0 is also set indicating the specific nature of the error (see Return codes for manipulative macroinstructions, for more information).

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014