HLASM Language Reference
HLASM Language Reference HLASM Language Reference
Model Statements generated from that model statement. You can also substitute values into model statements in open code. A model statement consists of one or more fields, separated by one or more spaces, in columns 1 to 71. The fields are called the name, operation, operand, and remarks fields. Each field or subfield can consist of: An ordinary character string composed of alphanumeric and special characters A variable symbol as a point of substitution, except in remarks fields and comment statements Any combination of ordinary character strings and variable symbols to form a concatenated string The statements generated from model statements during conditional assembly must be valid machine or assembler instructions, but must not be conditional assembly instructions. They must follow the coding rules described in “Rules for Model Statement Fields” on page 251 or they are flagged as errors at assembly time. Examples: LABEL L 3,AREA LABEL2 L 3,2(4,5) &LABEL L 3,&AREA FIELD&A L 3,AREA&C Variable Symbols as Points of Substitution Values can be substituted for variable symbols that appear in the name, operation, and operand fields of model statements; thus, variable symbols represent points of substitution. The three main types of variable symbol are: Symbolic parameters (positional or keyword) System variable symbols (see “System Variable Symbols” on page 262) SET symbols (global-scope or local-scope SETA, SETB, or SETC symbols) Examples: &PARAM(3) &SYSLIST(1,3) &SYSLIST(2) &SETA(1) &SETC(15) Symbols That Can Be Subscripted: Symbolic parameters, SET symbols, and the system variable symbols &SYSLIST and &SYSMAC, can all be subscripted. All remaining system variable symbols contain only one value. Listing of Generated Fields The different fields in a macro-generated statement or a statement generated in open code appear in the listing in the same column as they are coded in the model statement, with the following exceptions: If the substituted value in the name or operation field is too large for the space available, the next field is moved to the right with one space separating the fields. 248 HLASM V1R5 Language Reference
Model Statements If the substituted value in the operand field causes the remarks field to be displaced, the remarks field is written on the next line, starting in the column where it is coded in the model statement. If the substituted value in the operation field of a macro-generated statement contains leading spaces, the spaces are ignored. If the substituted value in the operation field of a model statement in open code contains leading spaces, the spaces are used to move the field to the right. If the substituted value in the operand field contains leading spaces, the spaces are used to move the field to the right. If the substituted value contains trailing spaces, the spaces are ignored. Listing of Generated Fields Containing Double-Byte Data: If the DBCS assembler option is specified, then the following differences apply: Any continuation indicators present in the model statement are discarded. Double-byte data that must be split at a continuation point is always readable on a device capable of presenting DBCS characters—SI and SO are inserted at the break point, and the break-point always occurs between double-byte characters. The continuation indicator is extended to the left, if necessary, to fill space that cannot be filled with double-byte data because of alignment and delimiter considerations. The maximum number of columns filled is 3. If continuation is required and the character to the left of the continuation indicator is X, then + is used as the continuation indicator so as to clearly distinguish the position of the end column. This applies to any generated field, regardless of its contents, to prevent ambiguity. Redundant SI/SO pairs may be present in a field after substitution. If they occur at a continuation point, the assembler does not distinguish them from SI and SO inserted in the listing by the assembler to preserve readability. Refer to the generated object code to resolve this ambiguity. For more information, see Figure 64 on page 250. Rules for Concatenation If a symbolic parameter in a model statement is immediately preceded or followed by other characters or another symbolic parameter, the characters that correspond to the symbolic parameter are combined in the generated statement with the other characters, or with the characters that correspond to the other symbolic parameter. This process is called concatenation. When variable symbols are concatenated to ordinary character strings, the following rules apply to the use of the concatenation character (a period). The concatenation character is mandatory when: ▌1▐ ▌2▐ An alphanumeric character follows a variable symbol. A left parenthesis that does not enclose a subscript follows a variable symbol. ▌3▐—▌4▐ A period (.) is to be generated. Two periods must be specified in the concatenated string following a variable symbol. The concatenation character is not required when: Chapter 7. How to Specify Macro Definitions 249
- Page 218 and 219: OPSYN Instruction ,ERROR, SEV 1 An
- Page 220 and 221: ORG Instruction AFTER is defined in
- Page 222 and 223: ORG Instruction If you specify mult
- Page 224 and 225: POP Instruction POP Instruction The
- Page 226 and 227: PRINT Instruction Note: If the next
- Page 228 and 229: Process Statement Process Statement
- Page 230 and 231: REPRO Instruction NOPRINT instructs
- Page 232 and 233: RSECT Instruction 4. AMODE or RMODE
- Page 234 and 235: START Instruction START Instruction
- Page 236 and 237: TITLE Instruction The name value is
- Page 238 and 239: USING Instruction Only the characte
- Page 240 and 241: USING Instruction Base Registers fo
- Page 242 and 243: USING Instruction If register 0 is
- Page 244 and 245: USING Instruction A variable symbo
- Page 246 and 247: USING Instruction In this MVC instr
- Page 248 and 249: USING Instruction Range of a Depend
- Page 250 and 251: XATTR Instruction external_symbol i
- Page 252 and 253: XATTR Instruction SCOPE ►►─
- Page 254 and 255: XATTR Instruction 234 HLASM V1R5 La
- Page 256 and 257: Part 3. Macro Language &SYSDATC Sys
- Page 258 and 259: Introduction to Macro Language Chap
- Page 260 and 261: Introduction to Macro Language The
- Page 262 and 263: Introduction to Macro Language Macr
- Page 264 and 265: MACRO and MEND Statements The assem
- Page 266 and 267: Prototype Statement Macros that are
- Page 270 and 271: Model Statements ▌5▐ ▌6▐
- Page 272 and 273: Model Statements Notes: 1. You can
- Page 274 and 275: Positional Parameters Symbolic para
- Page 276 and 277: Processing Statements Processing St
- Page 278 and 279: AREAD Instruction Assign Local Time
- Page 280 and 281: COPY Instruction sequence_symbol is
- Page 282 and 283: System Variable Symbols System Vari
- Page 284 and 285: &SYSADATA_MEMBER System Variable Sy
- Page 286 and 287: &SYSCLOCK System Variable Symbol &S
- Page 288 and 289: &SYSECT System Variable Symbol depe
- Page 290 and 291: &SYSIN_MEMBER System Variable Symbo
- Page 292 and 293: &SYSJOB System Variable Symbol &SYS
- Page 294 and 295: &SYSLIN_DSN System Variable Symbol
- Page 296 and 297: &SYSLIST System Variable Symbol The
- Page 298 and 299: &SYSLOC System Variable Symbol To
- Page 300 and 301: &SYSM_SEV System Variable Symbol &S
- Page 302 and 303: &SYSNDX System Variable Symbol The
- Page 304 and 305: &SYSOPT_DBCS System Variable Symbol
- Page 306 and 307: &SYSPARM System Variable Symbol Not
- Page 308 and 309: &SYSPRINT_MEMBER System Variable Sy
- Page 310 and 311: &SYSPUNCH_MEMBER System Variable Sy
- Page 312 and 313: &SYSSTEP System Variable Symbol Not
- Page 314 and 315: &SYSTERM_DSN System Variable Symbol
- Page 316 and 317: &SYSTIME System Variable Symbol Not
Model Statements<br />
If the substituted value in the operand field causes the remarks field to be<br />
displaced, the remarks field is written on the next line, starting in the column<br />
where it is coded in the model statement.<br />
If the substituted value in the operation field of a macro-generated statement<br />
contains leading spaces, the spaces are ignored.<br />
If the substituted value in the operation field of a model statement in open code<br />
contains leading spaces, the spaces are used to move the field to the right.<br />
If the substituted value in the operand field contains leading spaces, the spaces<br />
are used to move the field to the right.<br />
If the substituted value contains trailing spaces, the spaces are ignored.<br />
Listing of Generated Fields Containing Double-Byte Data: If the DBCS<br />
assembler option is specified, then the following differences apply:<br />
Any continuation indicators present in the model statement are discarded.<br />
Double-byte data that must be split at a continuation point is always readable<br />
on a device capable of presenting DBCS characters—SI and SO are inserted<br />
at the break point, and the break-point always occurs between double-byte<br />
characters.<br />
The continuation indicator is extended to the left, if necessary, to fill space that<br />
cannot be filled with double-byte data because of alignment and delimiter<br />
considerations. The maximum number of columns filled is 3.<br />
If continuation is required and the character to the left of the continuation<br />
indicator is X, then + is used as the continuation indicator so as to clearly<br />
distinguish the position of the end column. This applies to any generated field,<br />
regardless of its contents, to prevent ambiguity.<br />
Redundant SI/SO pairs may be present in a field after substitution. If they<br />
occur at a continuation point, the assembler does not distinguish them from SI<br />
and SO inserted in the listing by the assembler to preserve readability. Refer<br />
to the generated object code to resolve this ambiguity. For more information,<br />
see Figure 64 on page 250.<br />
Rules for Concatenation<br />
If a symbolic parameter in a model statement is immediately preceded or followed<br />
by other characters or another symbolic parameter, the characters that correspond<br />
to the symbolic parameter are combined in the generated statement with the other<br />
characters, or with the characters that correspond to the other symbolic parameter.<br />
This process is called concatenation.<br />
When variable symbols are concatenated to ordinary character strings, the following<br />
rules apply to the use of the concatenation character (a period). The concatenation<br />
character is mandatory when:<br />
▌1▐<br />
▌2▐<br />
An alphanumeric character follows a variable symbol.<br />
A left parenthesis that does not enclose a subscript follows a variable<br />
symbol.<br />
▌3▐—▌4▐ A period (.) is to be generated. Two periods must be specified in the<br />
concatenated string following a variable symbol.<br />
The concatenation character is not required when:<br />
Chapter 7. How to Specify Macro Definitions 249