Subfield 4: Program type

The syntax for coding the program type is shown in the subfield format operands in DC instruction.

You can omit the program type subfield. If specified, the assembler assigns the value to the symbol naming the DC instruction, if a symbol was present. It can be specified as a decimal, character, hex, or binary self-defining term and is stored as a 32 bit value. The value is not used in any way by the assembler, and can be queried by using the SYSATTRP built-in function.

The program type is specified within a P prefixed set of parenthesis - P(). For example:
Prog1   DC  CP(7)'Perth'      Program type is 7
Prog2   DC  3XP(C'APC')'FF'   Program type is C'APC'
Symbols used in subfield 4 need not be previously defined, except in literals. For example:
PV       EQU   240
         LA    1,=FP(PV)'99'    Literal
SYM      DC    FP(Rate5)'35.92'
Rate5    EQU   5

All expressions in program type must be evaluatable when the DC is processed.

If program type is omitted, the assembler assigns a null to the program type, and querying the value using the SYSATTRP built-in function returns a null value.

If there are multiple operands and the first has no P-type, but one of the subsequent operands does have a P-type, then the program type is assigned from the first operand specifying a program type value. For example:
alabel   dc   f'1',hp(33)'32760'
results in a program type of 33 being assigned to alabel.