appears on an input line. In this example, when it
its value, the result is a command line which is
processing.
is substituted with
passed toCMS for &CONTROL = FIRST
&LITERAL&CONTROL ALL &CONTROL = FIRST &CONTROL ALL
In this example,&CONTROL is assigned a value as a variable symbol, but
when it is preceded by the built-in function &LITERAL, the substitution
is not performed, soEXEC processes it as a control statement. !HQ You can perform hexadecimal to
decimal and decimal to hexadecimal conversions in anEXEC if you use the
control statement&HEX ON. To convert hexadecimal to decimal, you must use an assignment statement, prefacing the hexadecimal value you want to
convert with the charactersX' and assigning the value to a variable
symbol.
When'HEX ON' is in effect, the following additional rules and
restrictions apply to tokens onEXEC control statements:
1• Any token, variable argument,
token with the stringX' as the
referrred to as anX' token)
characters being either:
or combination which results in a
first two characters (this will be
must also result in thenext six
(a) A valid decimalnumber, if the token is part
control which is not an assignment statement,
hexadcimalnumber, if the token is part of an
statement which is an assignment statement.
of anEXEC or a valid EXEC control
(b) Thenumbers mentioned in item 1a may be positive (no sign), or
negative, (prefixed with a minus sign(-220 or -FE». The
negative hexadecimalnumber is the absolute hexadecimal number prefixed with a minus sign (-F is a hexadecimal minus F, not a
minus.
(c) These numbers may
substitutedfroll a X' &X) • be explicit (in the orginal token), or
variable or an argument (forexample, (d) The rules for token length apply with '&HEX ON'. (e) The range of decimal numbers that may be contained in an X' token is -99999 to 999999. The range of hexadecimal numbers
that may be contained in anX' token is -FFFFF to FFFFFF. The above range of numbers may be extended by placing the number
to be converted in a variable or an argument and substituting
at conversion time. If this is done, the conversion is
accomplished using the variable or the argument as the number
source. The range for decimal numbers is -9999999 to 99999999,
the range for hexadecimal numbers is5F5EOFF to -98967F.
Theseexamples illustrate this feature: &Y = X'FFFFFF &TYPE X'&Y &Y = 5F5EOFF &X = X'&Y &y = 16777215 &TYPE FFFFFF &Y = 5F5EOFF &X = 99999999
(f) The notationX'-&X should not be used, because this will cause
unwanted truncations and conversion errors.270 IBM VM/370 CMS User's Guide
its value, the result is a command line which is
processing.
is substituted with
passed to
&LITERAL
In this example,
when it is preceded by the built-in function &LITERAL, the substitution
is not performed, so
decimal and decimal to hexadecimal conversions in an
control statement
convert with the characters
symbol.
When
restrictions apply to tokens on
1
token with the string
referrred to as an
characters being either:
or combination which results in a
first two characters (this will be
must also result in the
(a) A valid decimal
control which is not an assignment statement,
hexadcimal
statement which is an assignment statement.
of an
(b) The
negative, (prefixed with a minus sign
negative hexadecimal
minus.
(c) These numbers may
substituted
variable or an argument (for
that may be contained in an
to be converted in a variable or an argument and substituting
at conversion time. If this is done, the conversion is
accomplished using the variable or the argument as the number
source. The range for decimal numbers is -9999999 to 99999999,
the range for hexadecimal numbers is
These
(f) The notation
unwanted truncations and conversion errors.