Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

MODIFY-ELEMENT substatements for member types R, C and L

&pagelevel(4)&pagelevel

These substatements are valid for members of the R, C and L base types and must directly follow the MODIFY-ELEMENT statement. They are read from the statement stream until the END-MODIFY substatement is encountered.

The MODIFY-ELEMENT substatements make modifications to object modules, phases and link and load modules (LLM).

LMS initially collects these substatements and executes them only after the END-MODIFY substatement has been entered.

Overview of MODIFY-ELEMENT substatements

These substatements are dependent on the selected member type and are permitted only for members of types R, C or L.

MODIFY-ELEMENT statement

Member type

Function

ADD-REP-RECORD

R

Generate REP records

ADD-TEXT-MODIFICATION

R,C,L

Modify text records

DELETE-RECORD-TYPE

R,C,L

Delete record types

END-MODIFY

R,C,L

Terminate modifications

MODIFY-CSECT-ATTRIBUTES

R

Modify CSET attributes

MODIFY-MODIFICATION-
DEFAULTS

R,C,L

Define global parameters in the MODIFY-
ELEMENT statement

REMOVE-MODIFICATION

R,C,L

Cancel corrections

RENAME-SYMBOLS

R

Rename CSECTs, ENTRYs, EXTRNs and
COMMONs

Note

The SDF standard statements (see "SDF standard statements for LMS") are also permitted as MODIFY-ELEMENT substatements.

ADD-REP-RECORD

The MODIFY-ELEMENT substatement ADD-REP-RECORD adds REP records to the object module. These REP records are evaluated by the dynamic binder loader (DBL).

ADD-REP-RECORD is permitted only for object modules (R-type members).

ADD-REP-RECORD

ADDRESS = <x-string 1..8>(...)


<x-string 1..8>(...)



|

BASE-ADDRESS = *MOD IFICATION -DEF AULT / <x-string 1..8>

,NEW-CONTENTS = <x-string 1..100> / <c-string 1..50 with-low>

ADDRESS = <x-string 1..8>(...)
Specifies the address at which the member selected by MODIFY-ELEMENT is to be modified.

BASE-ADDRESS = *MODIFICATION-DEFAULT / <x-string 1..8>
Base address. BASE-ADDRESS is added to ADDRESS. The resulting correction address must, in the case of prelinked modules, relate to the prelinked module (and not to the CSECT).

NEW-CONTENTS = <x-string 1..100> / <c-string 1..50 with-low>
Replacement text specified in character or hexadecimal form.
If the text is specified in character form, it must not exceed 50 characters in length. An apostrophe in the text must be duplicated.
If the text is specified in hexadecimal form, it must not exceed 100 characters in length.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

ADD-TEXT-MODIFICATION

The MODIFY-ELEMENT substatement ADD-TEXT-MODIFICATION corrects text records of an object module and phases. This substatement generates a correction journal record (TXTP record) that contains the original contents of the text area.
With the MODIFY-MODIFICATION-DEFAULTS statement, you can specify that no correction journal record is to be created. Corrections without a correction journal record cannot be reversed by the REMOVE-MODIFICATION substatement.

This substatement may be used for members of types R, C and L.

ADD-TEXT-MODIFICATION

ADDRESS = <x-string 1..8>(...)


<x-string 1..8>(...)



|

BASE-ADDRESS = *MOD IFICATION -DEF AULT / <x-string 1..8>

,NEW-CONTENTS = <x-string 1..100>(...) / <c-string 1..50 with-low>(...)


<x-string 1..100>(...)



|

OLD-CONTENTS = *ANY / <x-string 1..100> / <c-string 1..50 with-low>


<c-string 1..50 with-low>(...)



|

OLD-CONTENTS = *ANY / <x-string 1..100> / <c-string 1..50 with-low>

,MODIFICATION-ID = *MOD IFICATION -DEF AULT / *SPACES / <c-string 1..12 with-low>

ADDRESS = <x-string 1..8>(...)
Specifies the address at which the member selected by MODIFY-ELEMENT is to be modified.

BASE-ADDRESS = *MODIFICATION-DEFAULT / <x-string 1..8>
Base address.

The base address is added to ADDRESS. The resulting correction address is as follows:


For ...

Relative to:

modules

start of CSECT
(the desired CSECT is specified via the MODIFY-MODIFICATION-
DEFAULTS substatement)

phases

start of phase

LLMs

start of CSECT if a CSECT has been specified


start of sub-LLM if a sub-LLM has been specified (the desired sub-LLM
is specified via the MODIFY-MODIFICATION-DEFAULTS
substatement)

start of slice if a slice has been specified (the desired slice is specified
via the MODIFY-MODIFICATION-DEFAULTS substatement)

start of LLM if nothing has been specified and the LLM only consists of
one slice.
If the LLM consists of more than one slice, you must specify a CSECT,
a sub-LLM or a slice.


NEW-CONTENTS = <x-string 1..100>(...) / <c-string 1..50 with-low>(...)Replacement text specified in character or hexadecimal form.

OLD-CONTENTS = *ANY / <x-string 1..100> / <c-string 1..50 with-low>
Original text of the member. The original text must always be specified the same length as the replacement text.

MODIFICATION-ID = *MODIFICATION-DEFAULT / *SPACES / <c-string 1..12 with-low>Identification which is held in the correction journal record (TXTP record). If SPACES is specified, blanks are used as the identification.
Only 8 characters are allowed for member types R and C.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

DELETE-RECORD-TYPE

The MODIFY-ELEMENT substatement DELETE-RECORD-TYPE excludes the following record types from the input member:

  • ISD records (applies only to R-type members)

  • LSD records (applies only to R-type members)

  • REP records (applies only to R-type members)

  • INCLUDE records (applies only to R-type members)

  • TXTP records (applies only to R-, C- and L-type members)

  • DSDD records (applies only to R-type members)

This substatement may be used for members of types R, C and L.

DELETE-RECORD-TYPE

TYPE = *TXTP(...) / list-poss(5): *ISD / *LSD / *REP / *DSDD / *INCLUDE


*TXTP(...)



|

MODIFICATION-ID = *ALL / *SPACES / <c-string 1..12 with-low>

TYPE = *TXTP(...) / list-poss(5): *ISD / *LSD / *REP / *DSDD / *INCLUDE
Defines the record type that is not to be transferred from the input member to the output member.

MODIFICATION-ID = *ALL / *SPACES / <c-string 1..12 with-low>
Only those TXTP records with the specified identification are deleted.
For member types R and C, only 8 characters are allowed.
This identification applies only to this DELETE-RECORD-TYPE.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Note

Deleted record types cannot be retrieved.

END-MODIFY

END-MODIFY concludes the sequence of MODIFY-ELEMENT substatements. LMS then checks all the statements for executability and executes the statement string.

END-MODIFY


This substatement has no operands.

Statement return code

(SC2)

SC1

Maincode

Meaning


2

0
0
1
32
64
64
130

CMD0001
LMS0129
CMD0230
LMS1002
LMS1003
LMS1004
LMS0041

No error
Statement aborted by user
Syntax error
Internal error
Error during wildcard processing with at least one member or file
Other error
System address space exhausted

MODIFY-CSECT-ATTRIBUTES

The MODIFY-ELEMENT substatement MODIFY-CSECT-ATTRIBUTES modifies CSECT attributes.

This substatement must be used for object modules (R-type members) only.

MODIFY-CSECT-ATTRIBUTES

NAME = *ALL / <c-string 1..8 with-low> / <text 1..8>

,VISIBLE = *UNCHA NGED / *YES / *NO

,READ-ONLY = *UNCHA NGED / *YES / *NO

,PAGE-ALIGNMENT = *UNCHA NGED / *YES / *NO

,RESIDENCY-MODE = *UNCHA NGED / 24 / *ANY

,ADDRESSING-MODE = *UNCHA NGED / 24 / 31 / *ANY

At the beginning of the MODIFY-ELEMENT statement, the operands are preset to the value immediately following *UNCHANGED.

NAME = *ALL / <c-string 1..8 with-low> / <text 1..8>
Name of the CSECT whose attributes are to be modified. All CSECTs or a specific CSECT can be specified.

VISIBLE = *UNCHANGED / *YES / *NO
Masking (visibility) of CSECTs.

VISIBLE = *YES
The specified control sections are not masked (see [4 (Related publications)]).
A secondary name record is created for these sections, and the names are entered in the directory of secondary names.

VISIBLE = *NO
The specified control sections are masked. No secondary name record is created for these sections, and the names are not entered in the directory of secondary names. Any secondary name record which may exist is deleted.

If all control sections of an object module are masked, a library member without a secondary name entry is created. This object module can be located via the primary name only.

The module name can, however, be derived from the initial control section name with the aid of all ESD records, since masked control sections are also used in this case.

Note

The linkage editor cannot process object modules which only have masked control sections, e.g. when an object module is excluded with the autolink function.
The VISIBLE operand can also be used on ENTRYs.

READ-ONLY = *UNCHANGED / *YES / *NO
Write protection.

READ-ONLY = *YES
Indicates that only read access to the specified control sections is permitted while the program is executing.

READ-ONLY = *NO
Enables write access to the specified control sections even while the program is executing.

PAGE-ALIGNMENT = *UNCHANGED / *YES / *NO
Page alignment.

PAGE-ALIGNMENT = *YES
Indicates that the specified control sections are to be aligned on a page boundary, i.e. the load address should be a multiple of decimal 4096 or hexadecimal 1000.

PAGE-ALIGNMENT = *NO
Does not take page boundaries into account. The control sections always start at the next doubleword address produced during the linkage process.

RESIDENCY-MODE = *UNCHANGED / 24 / *ANY
Load mode.

RESIDENCY-MODE = 24
Indicates that the specified control sections are to be loaded to the address area below the 16-Mbyte limit.

RESIDENCY-MODE = *ANY
No limitation exists.

ADDRESSING-MODE = *UNCHANGED / 24 / 31 / *ANY

Execution mode.

ADDRESSING-MODE = 24
Indicates that the specified control sections are to be executable in 24-bit mode.

ADDRESSING-MODE = 31
Indicates that the specified control sections are to be executable in 31-bit mode.

ADDRESSING-MODE = *ANY
Any execution mode.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

MODIFY-MODIFICATION-DEFAULTS

The MODIFY-ELEMENT substatement MODIFY-MODIFICATION-DEFAULTS defines the global default values within the MODIFY-ELEMENT statement.

This substatement may be used for members of types R, C and L.

MODIFY-MODIFICATION-DEFAULTS

CSECT-NAME = *UNCHA NGED / *NONE / <c-string 1..32 with-low> / <text 1..32>

,PHASE-SEGMENT = *UNCHA NGED / *ROOT / <name 1..8>

,LLM-PART = *UNCHA NGED / *NONE / *SLICE(...) / *SUB-LLM(...)


*SLICE(...)



|

NAME = <structured-name 1..32>


*SUB-LLM(...)



|

PATH-NAME = <c-string 1..255 with-low> / <text 1..255>

,MODIFICATION-LOGGING = *UNCHA NGED / *YES(...) / *NO


*YES(...)



|

MODIFICATION-ID = *UNCHA NGED / *SPACES / <c-string 1..12 with-low>

,BASE-ADDRESS = *UNCHA NGED / <x-string 1..8>

At the beginning of the MODIFY-ELEMENT statement, the operands are preset to the value immediately following *UNCHANGED.

CSECT-NAME = *UNCHANGED / *NONE / <c-string 1..32 with-low> / <text 1..32> Name of the CSECT to be corrected (relevant only for types R and L).

CSECT-NAME = *NONE
If no CSECT name is specified, in the case of R-type modules the first CSECT name is used.

PHASE-SEGMENT = *UNCHANGED / *ROOT / <name 1..8>
Specifies the phase segment to be corrected. If no segment is specified, the first segment (*ROOT) is used.

LLM-PART = *UNCHANGED / *NONE / *SLICE(...) / *SUB-LLM(...)

If no LLM part is specified, the entire LLM is used.

LLM-PART = *SLICE(...)
Specifies the slice to be corrected.

NAME = <structured-name 1..32>
Name of the slice to be corrected.

LLM-PART = *SUB-LLM(...)
Specifies the sub-LLM to be corrected.

PATH-NAME = <c-string 1..255 with-low> / <text 1..255>
The sub-LLM to be corrected is determined by way of its path name.

MODIFICATION-LOGGING = *UNCHANGED / *YES(...) / *NO
Defines TXTP record generation.

MODIFICATION-LOGGING = *YES(...)
TXTP records are to be generated.

MODIFICATION-ID = *UNCHANGED / *SPACES / <c-string 1..12 with-low> Identification which is held in the correction journal record (TXTP record). If SPACES is specified, blanks are used as the identification.
For member types R and C, only 8 characters are allowed.

MODIFICATION-LOGGING = *NO
No TXTP records are to be generated.

BASE-ADDRESS = *UNCHANGED / <x-string 1..8>
Hexadecimal specification of the base address. At the beginning of the MODIFY-ELEMENT statement, base address 0 is set.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

REMOVE-MODIFICATION

The MODIFY-ELEMENT substatement REMOVE-MODIFICATION cancels corrections from a previous correction run under the following preconditions:

A correction journal record was created with the MODIFY-ELEMENT substatement ADD-TEXT-MODIFICATION, i.e. the operand MODIFICATION-LOGGING = *YES (see "MODIFY-ELEMENT substatements for member types R, C and L") was set.

This substatement may be used only for members of types R, C and L.

REMOVE-MODIFICATION

MODIFICATION-ID = *ALL / *SPACES / <c-string 1..8 with-low>

MODIFICATION-ID = *ALL / *SPACES / <c-string 1..12 with-low>
For member types R and C, only 8 characters are allowed.
Only those corrections with the specified identification are cancelled. If an identification is specified, it is necessary that correction journal records for it exist. If no identification (*ALL) is specified, all corrections for which a correction journal record exists are cancelled.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

RENAME-SYMBOLS

The MODIFY-ELEMENT substatement RENAME-SYMBOLS changes the name of a CSECT, ENTRY, COMMON, EXTRN, WXTRN or a V constant. Each renaming results in a modification of the ESD records. LMS checks for the uniqueness of names within all ESD records, rejecting a new name if that name already exists.

In LSD records, no renaming occurs. This is why, following a change in the CSECT name, AID can no longer be used for symbolic testing (see [13 (Related publications)]). If testing is run near machine level, the new names must be used in any AID qualifications.

The MODIFY-ELEMENT substatement RENAME-SYMBOLS may be used only for object modules (R-type members).

RENAME-SYMBOLS

SYMBOL-NAME = <text 1..8>

,SYMBOL-TYPE = *CSECT / *ENTRY / “COMMON / *EXTRN / *VCON / *WXTRN

,NEW-NAME = <text 1..8>

SYMBOL-NAME = <text 1..8>
Defines the symbol name to be renamed.

SYMBOL-TYPE = *CSECT / *ENTRY / *COMMON / *EXTRN / *VCON / *WXTRNDefines the type of symbol whose name is to be changed.

NEW-NAME = <text 1..8>
New symbol name.
The name should satisfy the BINDER conventions for the special data type <symbol> (see [4 (Related publications)]). LMS does not check for this convention, however.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Note

Masked (invisible) CSECT/ENTRY names can also be renamed.