ACONTROL instruction
- AFPR Note: The AFPR option is not available as an assembler option at invocation of the assembler. It can only be used on ACONTROL instructions.
- CA
- CE
- COMPAT
- CU
- FLAG (except the RECORD/NORECORD and the PUSH/NOPUSH suboptions)
- ILMA
- LIBMAC
- MACHINE
- OPTABLE
- RA2
- TYPECHECK
The selections which can be specified are documented here for completeness.
- sequence_symbol
- Is a sequence symbol.
- selection
- Is one or more selections from the following options.
- AFPR
- Instructs the assembler that the additional floating point registers 1, 3, 5, and 7 through 15
can be specified in the program. Note: The assembler starts with AFPR enabled.
- NOAFPR
- Instructs the assembler that no additional floating point registers, that is, only floating point registers 0, 2, 4, and 6 can be specified in the program.
- CA(ccsid)
- Specifies the CCSID to be used for ASCII constants and ASCII self-defining terms (data type CA).
The CCSID should be specified as a number of up to five digits, which may include leading zeros.
The following CCSIDs are supported (leading zeros are ignored):- ISO 8859-1 Latin-1: 819
- ISO 8859-15 Latin-9: 923
If 819 is specified and the local EBCDIC option specifies a Euro (ECECP) CCSID, the Euro symbol is converted as for a non-Euro CCSID, resulting in the general currency symbol (x'A4'). For conversion between Latin-9 and Latin-1 code pages, the symbols which are not common to both are mapped to the symbols which have the same ASCII code points in code pages 923 and 819.
Using ACONTROL to change the CA option only affects the conversion of DC constants. Character self-defining terms and literals are always converted using the initial value of this option at the start of the assembly, as shown in the options list.
- CA(LOCAL)
- LOCAL indicates that the current local ASCII CCSID should be used, as specified on the ASCII option.
- CE(ccsid)
- Specifies the CCSID to be used for EBCDIC constants and EBCDIC self-defining terms (data types C
and CE).
If this value differs from the local EBCDIC option, EBCDIC character strings and self-defining terms are translated from the EBCDIC CCSID to the CE CCSID. If the specified CCSID is LOCAL or equal to the EBCDIC option, EBCDIC text is stored using the local EBCDIC CCSID, without translation.
The CCSID should be specified as a number of up to five digits, which may include leading zeros.
The following CCSIDs are supported (leading zeros are ignored):- Open Systems Latin-1 EBCDIC: 1047
- CECP: 37, 273, 277, 278, 280, 284, 285, 297, 500, 871
- ECECP (Euro): 1140 to 1149
- Latin-9 EBCDIC: 924
For conversion between CECP (Latin-1) and ECECP (Euro) code pages, the Euro symbol is mapped to the general currency symbol. For conversion between Latin-9 and Latin-1 code pages, the symbols which are not common to both are mapped to the symbols which have the same ASCII code points in code pages 923 and 819.
Using ACONTROL to change the CE option only affects the conversion of DC constants. Character self-defining terms and literals are always converted using the initial value of this option at the start of the assembly, as shown in the options list.
- CE(LOCAL)
- LOCAL indicates that the current local EBCDIC CCSID should be used, as specified on the EBCDIC option.
- COMPAT(CASE), abbreviation CPAT(CASE)
- Maintains uppercase alphabetic character set compatibility with earlier assemblers.
- COMPAT(NOCASE), abbreviation CPAT(NOCASE)
- Allows mixed case alphabetic character set.
- COMPAT(LITTYPE), abbreviation CPAT(LIT)
- Returns 'U' as the type attribute for all literals.
- COMPAT(NOLITTYPE), abbreviation CPAT(NOLIT)
- Returns the correct type attribute for literals.
- COMPAT(MACROCASE), abbreviation CPAT(MC)
- Converts internally lowercase alphabetic characters in unquoted macro operands to uppercase alphabetic characters prior to macro expansion. (The source statement is unchanged).
- COMPAT(NOMACROCASE), abbreviation CPAT(NOMC)
- Instructs the assembler not to convert lowercase alphabetic characters (a through z) in unquoted macro operands.
- COMPAT(SYSLIST), abbreviation CPAT(SYSL)
- Treats sublists in SETC symbols as compatible with earlier assemblers.
- COMPAT(NOSYSLIST), abbreviation CPAT(NOSYSL)
- Instructs the assembler not to treat sublists in SETC symbols as character strings, when passed to a macro definition in an operand of a macro instruction.
- COMPAT(TRANSDT),abbreviation CPAT(TRS)
- Extends use of the translation table, as specified by the TRANSLATE assembler option, to any C-type character Self-Defining Terms.
- COMPAT(NOTRANSDT),abbreviation CPAT(NOTRS)
- Instructs the assembler not to translate any C-type character Self-Defining Terms.
- NOCOMPAT, abbreviation NOCPAT
- Instructs the assembler to:
- Allow lowercase alphabetic characters in all language elements.
- Treat sublists in SETC symbols as sublists when passed to a macro definition in the operand of a macro instruction.
- Return the correct type attribute for literals.
- CU(ccsid)
- Specifies the CCSID used for Unicode constants and Unicode self-defining terms (data type
CU).
The CCSID should be specified as a number of up to five digits, which may include leading zeros.
The following CCSIDs are supported (leading zeros are ignored):- UTF-16BE: 1200
- UTF-16LE: 1202
- UTF-8: 1208
Using ACONTROL to change the CU option only affects the conversion of DC constants. Character self-defining terms and literals are always converted using the initial value of this option at the start of the assembly, as shown in the options list.
- CU(LOCAL)
- LOCAL indicates that the current local Unicode CCSID should be used, as specified on the UNICODE option.
- integer
- Specifies that error diagnostic messages with this or a higher severity code are printed in the source and object section of the assembly listing.
- FLAG(ALIGN), abbreviation FLAG(AL)
- Issues diagnostic message
ASMA033I
,ASMA212W
, orASMA213W
when an inconsistency is detected between the operation code and the alignment of addresses in machine instructions. - FLAG(NOALIGN), abbreviation FLAG(NOAL)
- Instructs the assembler
not to issue diagnostic message
ASMA033I
,ASMA212W
, orASMA213W
when an inconsistency is detected between the operation code and the alignment of addresses in machine instructions. - FLAG(CONT)
- Specifies that the assembler
is to issue diagnostic messages
ASMA430W
throughASMA433W
when an inconsistent continuation is encountered in a statement. - FLAG(NOCONT)
- Specifies that the
assembler is not to issue diagnostic messages
ASMA430W
throughASMA433W
when an inconsistent continuation is encountered in a statement. - FLAG(EXLITW)
- Issues diagnostic warning ASMA016W when a literal is specified as the object of an EX instruction.
- FLAG(NOEXLITW)
- Suppresses diagnostic warning message ASMA016W when a literal is specified as the object of an EX instruction.
- FLAG(IMPLEN)
- Issues diagnostic message
ASMA169I
when an explicit length subfield is omitted from an SS-format machine instruction. - FLAG(NOIMPLEN)
- Instructs the assembler
not to issue diagnostic message
ASMA169I
when an explicit length subfield is omitted from an SS-format machine instruction. - FLAG(LONGER)
- Instructs the assembler to issue diagnostic warning message
ASMA226W
if the implicit length of the value for a string constant (type B, C, CU, G, P or Z) is greater than the explicit length of the field. For a hexadecimal field with a length specified in bits, it only issues the warning if the implicit length is at least 4 bits longer than the explicit length, because hexadecimal digits cannot represent less than 4 bits. If FLAG(TRUNC) is also in effect, the truncation warning takes precedence, so this message will only appear if the truncated part of the string value consists of leading zeros for a numeric value or trailing spaces for a character or graphics value.Note: Warnings produced by FLAG(LONGER) are likely to be harmless and do not necessarily indicate a coding error, as existing code (including macro instructions supplied with IBM® products) may simply be relying on truncation as a way of simplifying source code. This option can be used temporarily to check for possible errors, but if existing code triggers unnecessary warnings the option should be turned off again. - FLAG(NOLONGER)
- Instructs the assembler not to issue diagnostic warning message
ASMA226W
. - FLAG(PAGE0)
- Issues diagnostic message
ASMA309W
when an operand is resolved to a baseless address and a base and displacement is expected. - FLAG(NOPAGE0)
- Instructs the assembler
not to issue diagnostic message
ASMA309W
when an operand is resolved to a baseless address and a base and displacement is expected. - FLAG(RENT)
- Instructs the assembler to
issue diagnostic warning message
ASMA036W
if reentrant checks as specified by the RENT option detect a potential error. - FLAG(NORENT)
- Instructs the assembler not
to issue diagnostic warning message
ASMA036W
. - FLAG(SIGNED)
- Instructs the assembler to
issue diagnostic warning message
ASMA227W
if a negative value has been specified for an address constant (type A, AD or Y) with an explicit length less than the full length, which expects an unsigned value. If FLAG(TRUNC) is in effect, any truncation warning takes precedence.Note: Warnings produced by FLAG(SIGNED) are likely to be harmless and do not necessarily indicate a coding error, as existing code (including macro instructions supplied with IBM products) may simply be relying on truncation as a way of simplifying source code. This option can be used temporarily to check for possible errors, but if existing code triggers unnecessary warnings the option should be turned off again. - FLAG(NOSIGNED)
- Instructs the assembler not to issue diagnostic warning message ASMA227W.
- FLAG(SUBSTR), abbreviation FLAG(SUB)
- Issues warning diagnostic
message
ASMA094I
when the second subscript value of the substring notation indexes past the end of the character expression. - FLAG(TRUNC)
- Instructs the assembler to issue diagnostic warning message ASMA225W if the stored value of a
constant has been changed from the specified value by being truncated to fit the specified length. A
numeric string value (type B, P, X or Z) is not considered changed if only leading zeros were
removed. A character or graphics string value (type C, CU or G) is not considered changed if only
trailing spaces were removed. For an address constant (type A, AD or Y), the value is not considered
changed if all truncated leading bits are zero, or (to tolerate signed values being used in unsigned
contexts) if the value is negative and all truncated leading bits and the first bit of the truncated
value are one.Note: Warnings produced by FLAG(TRUNC) could indicate potentially harmful coding errors, so it is recommended that this option should be used where possible. The standard default is NOTRUNC in order to avoid triggering new warnings for existing programs.
- FLAG(NOTRUNC)
- Instructs the assembler not to issue diagnostic warning message ASMA225W.
- FLAG(NOSUBSTR), abbreviation FLAG(NOSUB)
- Instructs the assembler
not to issue warning diagnostic message
ASMA094I
when the second subscript value of the substring notation indexes past the end of the character expression. - FLAG(USING0), abbreviation FLAG(US0)
- Issues diagnostic warning
message
ASMA306W
for a USING that is coincident with or overlaps the implied USING 0,0, when the USING(WARN) suboption includes the condition numbers 1 and 4. - FLAG(NOUSING0), abbreviation FLAG(NOUS0)
- Suppresses diagnostic
warning message
ASMA306W
- ILMA
- Specifies that inline macros are accessible from all OPTABLE definitions.
- NOILMA
- Specifies that inline macros are associated with the current OPTABLE that is in use.
- LIBMAC, abbreviation LMAC
- Specifies that, for each macro, macro definition statements read from a macro library are to be embedded in the input source program immediately preceding the first invocation of that macro.
- NOLIBMAC, abbreviation NOLMAC
- Specifies that macro definition statements read from a macro library are not to be included in the input source program.
- MACHINE
- Lets you switch to a different operation code table by specifying a machine name which is used
to select the corresponding OPTABLE name. The selected table is then used to resolve any opcodes
after the ACONTROL statement.
- machine
- Specifies a machine name suboption as defined for the MACHINE assembler option. This selects the corresponding OPTABLE option. For more details, see the MACHINE option in the HLASM Programmer's Guide.
- NOLIST or LIST
- These keywords are accepted for consistency with the syntax of this option at the start of assembly processing, but have no effect when specified on ACONTROL because the decision as to whether to generate the operation code listing section is made before the assembly starts.
- OPTABLE
- Lets you switch to a different opcode table. This table is then used to resolve any opcodes
after the ACONTROL statement.
- UNI
- Instructs the assembler to use the universal operation code table that contains the System/370 and System/390®® architecture machine instructions and the latest level of z/Architecture® machine instructions. Note that the System/370 and System/390 vector facility instructions are not available in this operation table.
- DOS
- Instructs the assembler to use the DOS operation code table. This table is designed specifically for assembling programs previously assembled using the DOS/VSE assembler. The operation code table contains the System/370 machine instructions, excluding those with a vector facility.
- 370
- Instructs the assembler to use the operation code table that contains the machine instructions specific to System/370 systems, including those with a System/370 vector facility.
- XA
- Instructs the assembler to use the operation code table that contains the machine instructions specific to systems operating in System/370 extended-architecture mode, including those with a System/370 vector facility.
- ESA
- Instructs the assembler to use the operation code table that contains the machine instructions specific to systems operating according to the ESA/370 or ESA/390 architecture, including those with a System/370 or System/390 vector facility.
- ZOP or ZS1
- Instructs the assembler to use the operation code table that contains the machine instructions specific to the first generation of z/Architecture systems, for example the IBM zSeries 900 (z900) and zSeries 800 (z800).
- YOP or ZS2
- Instructs the assembler to use the operation code table that contains the machine instructions for the second generation of z/Architecture systems with the Long-Displacement Facility, for example the IBM zSeries 990 (z990) and zSeries 890 (z890).
- Z9 or ZS3
- Instructs the assembler to use the operation code table that contains the machine instructions for the third generation of z/Architecture systems, including the decimal floating point facility, for example the IBM System z9®.
- Z10 or ZS4
- Instructs the assembler to use the operation code table that contains the machine instructions for the fourth generation of z/Architecture systems, for example the IBM System z10®.
- Z11 or ZS5
- Instructs the assembler to use the operation code table that contains the machine instructions for the fifth generation of z/Architecture systems, for example the IBM zEnterprise®® 196 (z196).
- Z12 or ZS6
- Instructs the assembler to use the operation code table that contains the machine instructions for the sixth generation of z/Architecture systems, for example the IBM zEnterprise® EC12 (zEC12).
- Z13 or ZS7
- Instructs the assembler to use the operation code table that contains the machine instructions for the seventh generation of z/Architecture systems, including the Vector Facility for z/Architecture, for example the IBM z13®.
- Z14 or ZS8
- Instructs the assembler to use the operation code table that contains the machine instructions for the eighth generation of z/Architecture systems, for example the IBM z14®.
- Z15 or ZS9
- Instructs the assembler to use the operation code table that contains the machine instructions for the ninth generation of z/Architecture systems, for example the IBM z15®.
- Z16 or ZSA
- Instructs the assembler to use the operation code table that contains the machine instructions for the tenth generation of z/Architecture systems, for example the IBM z16.
- LIST or NOLIST
- These keywords are accepted for consistency with the syntax of this option at the start of assembly processing, but have no effect when specified on ACONTROL because the decision as to whether to generate the operation code listing section is made before the assembly starts.
Note: Macros may optionally be associated with specific OPTABLE settings:-
If the default ILMA option is in effect at the time a macro is defined (by being read inline from the input stream or fetched from SYSLIB) the definition is assumed to apply to all OPTABLE settings.
-
If the NOILMA option is in effect, the macro is only defined for the current OPTABLE, so it will not be visible when any other OPTABLE setting is in effect. For a SYSLIB macro, this will merely cause a new copy to be fetched if a macro is referenced while using a different OPTABLE. For inline macros this means that different macro definitions can be established for use with different OPTABLEs.
- RA2
- Suppresses error diagnostic message
ASMA066W
when 2 byte relocatable address constants are defined in the source - NORA2
- Issues error diagnostic message
ASMA066W
when 2 byte relocatable address constants are defined in the source
- TYPECHECK(MAGNITUDE)
- Specifies that the assembler performs magnitude validation of signed immediate-data fields of machine instruction operands.
- TYPECHECK(NOMAGNITUDE)
- Specifies that the assembler not perform magnitude validation of signed immediate-data fields of machine instruction operands.
- TYPECHECK(REGISTER)
- Specifies that the assembler performs type checking of register fields of machine instruction operands.
- TYPECHECK(NOREGISTER)
- Specifies that the assembler not perform type checking of register fields of machine instruction operands.
- TYPECHECK(SIGNED)
- Specifies that the validation for TYPECHECK(MAGNITUDE) takes into account whether the field is
signed or not, and only allows the relevant signed or unsigned range of values.Note: This has no effect when TYPECHECK(NOMAGNITUDE) is in effect.
- TYPECHECK(NOSIGNED)
- Specifies that the validation for TYPECHECK(MAGNITUDE) does not take into account whether the field is signed or not, allowing values to be within the valid range of either signed or unsigned values for the size of the field.
- NOTYPECHECK
- Specifies that the assembler not perform any type checking of machine instruction operands.
For further details of the TYPECHECK option, refer to the appendix TYPECHECK Assembler
Option
in the HLASM Programmer's Guide.