LINEDIT r'lacro 1BE 1EN2Tli 1I!EQIX In all the
examplesshown r the length of the argument being sUbstituted was
determined by the number of periods in the message text. The number of
periods indicated the size of the outputfield r and indirectly
determined the size of the input data area.
For hexadecimal and decimal .substitutionsr the input data is
truncated on the left. To ensure that a decimal number will never be
truncated r you can code10 periods (11 for negative numbers) in the
message text where it will be sUbstituted. For hexadecimaldata
w code
eight periods to ensure that no characters are truncated when a fullword
is substituted.When you are coding sUbstitution lists with the CHARA r HEX4A options r howeverr you can specify the length of the
field.You must code the SUB operand as follows: SUB=(typer(addresswlength» CHAR8A w and
input data
Both address and length may be specified using register notation. For
example:SUB= (HEX4A w (LOC w (4» 1 shows that the characters at location
messagetext; the number of characters
contained in register4 r but it cannot
periods coded in the message text. are substituted into the
is determined by the value
be larger than the number ofYou can use this method in the special case where only one character
is to be substituted.Since you must always code at least two periods
to indicate that substitution is to beperformed w you can code two
periods and specify a length ofone r as follows:
LINEDI'ITEXT='INVALID LETTER •• 'rSUB=(CHARAw (PLIST+24 w 1» When you want to make several
substitutions in the sameliner you must enter a sUbstitution list for
each set of periods in the message text. For example:
LINEDITTEXT='VALUFS ARE ••••• and •••••• 'w SUB= (DEC r (3) r HEXA w LOC) might generate a line as follows: VALUES ARE -45 AND FFE3C2. You should remember that if you are using the standard form of the
macro instructionr and you want to perform more than one sUbstitution in
a single line, the LINEDIT macro will not generate reentrant code. If
you codeRENT=NO on the macro linew then you will not receive the message indicating that the code is not reentrant. If you want reentrant coder you must use the list and execute forms of the macro instruction.
326Vr'I/370 CMS Command and Macro Reference
examples
determined by the number of periods in the message text. The number of
periods indicated the size of the output
determined the size of the input data area.
For hexadecimal and decimal .substitutionsr the input data is
truncated on the left. To ensure that a decimal number will never be
truncated r you can code
message text where it will be sUbstituted. For hexadecimal
w
eight periods to ensure that no characters are truncated when a fullword
is substituted.
field.
input data
Both address and length may be specified using register notation. For
example:
message
contained in register
periods coded in the message text.
is determined by the value
be larger than the number of
is to be substituted.
to indicate that substitution is to be
periods and specify a length of
LINEDI'I
substitutions in the same
each set of periods in the message text. For example:
LINEDIT
macro instructionr and you want to perform more than one sUbstitution in
a single line, the LINEDIT macro will not generate reentrant code. If
you code
326