Attribute parameters

Attribute parameters are optional. They designate the type of data and thus, the way IPCS should format the storage in which the data resides. If you omit all attribute parameters, the default is AREA.

   [ AREA[(name)]                  ]
   [ BIT | B | HEXADECIMAL | X     ]
   [ CHARACTER | C                 ]
   [ FLOAT                         ]
   [ INSTRUCTION [EP(hex address)] ]
   [ MODULE[(name)]                ]
   [ PACKED                        ]
   [ POINTER | PTR                 ]
   [ SIGNED | F                    ]
   [ STRUCTURE[(cbname)]           ]
   [ UNSIGNED                      ]
   [ ZONED                         ]
AREA[(name)]
The storage indicated by the address or in the range is an area of storage (a subpool, a buffer, and so on.) that is not a module or control block.

Start of changeIf you display or print the area, each line contains four or eight words, depending on line width, in hexadecimal format followed by their character equivalent. This parameter is frequently used when creating a symbol table entry for the storage at the address or in the address range. The symbol table entry is created with the specified length parameter.End of change

Start of changeIf you specify a name, IPCS automatically creates a storage map entry for it. The name can be a maximum of 31 alphanumeric characters and the first character must be alphabetic. To determine the length of the storage map entry, IPCS will first check a list of known lengths from parmlib and other sources. If the Area name is unknown to IPCS, IPCS will use the session default length established by SETDEF. The storage map entry is used by IPCS for WHERE processing.End of change

Example 1:
equate abc a72f4. asid(1) length(80) area

Start of changeResult: EQUATE creates a symbol table entry for symbol ABC associating it with an 80-byte area beginning at X‘A72F4’. ASID(1) indicates that this address is in virtual storage. No storage map entry is created for symbol ABC.End of change

Start of changeExample 2:
setdef length(x'100')
equate abc a72f4. asid(1) length(80) area(ABC)
ABC is not a recognized structure by IPCS.End of change

Start of changeResult: EQUATE creates a symbol table entry for symbol ABC associating it with an 80-byte area beginning at X'A72F4'. ASID(1) indicates that this address is in virtual storage. A storage map entry is created beginning at address X'A72F4' for length x'100' because ABC is not recognized by IPCS.End of change

BIT or HEXADECIMAL
The storage indicated by the address or in the address range is bit string data. If you display or print the data, it is shown in hexadecimal format. B or X is the abbreviation.
CHARACTER
The storage indicated by the address or in the address range is character string data. If you display or print the data, it is shown in character format. C is the abbreviation.
Example:
list abc+80n length(20) c

Result: LIST displays a 20-byte field following a symbolic address in character format.

FLOAT
The storage indicated by the address or in the address range is a floating point number or numbers. If you display or print the data, it is shown as a string of hexadecimal digits.

If you specify LENGTH, it must be 4, 8 or 16. If you specify any other value, the subcommand changes the attribute to AREA. If you omit the length parameter, the subcommand uses the length associated with the symbol, if you used one, or the default length. If this length is not 4, 8 or 16, the subcommand changes the length to the nearest shorter length, if possible, or to 4 otherwise.

INSTRUCTION [EP(hex address)]
The storage indicated by the address or in the address range is an instruction stream. If you display or print the data, the output format depends on HLASM services that provide formatting support. Only contiguous streams of instructions guarantee correct formatting.
Example: Use the LIST subcommand to display the instruction stream at the given address EP9:
list ep9 instr
Result: Figure 1 shows the output of the LIST subcommand.
Figure 1. Example output from LIST subcommand
EP9                                                           
LIST 02CC48. ASID(X'01AA') LENGTH(X'69') INSTRUCTION          
0002CC48 | 90EC D00C      | STM   R14,R12,X'C'(R13)           
0002CC4C | 18CF           | LR    R12,R15                     
0002CC4E | 41F0 0000      | LA    R15,X'0'                    
0002CC52 | 5800 C19C      | L     R0,X'19C'(,R12)             
0002CC56 | 5890 1000      | L     R9,X'0'(,R1)                
0002CC5A | 58F0 93E4      | L     R15,X'3E4'(,R9)             
0002CC5E | 0DEF           | BASR  R14,R15                     
0002CC60 | 18FD           | LR    R15,R13                     
0002CC62 | 18D1           | LR    R13,R1                      
0002CC64 | 50F0 D004      | ST    R15,X'4'(,R13)              
0002CC68 | 50D0 F008      | ST    R13,X'8'(,R15)              
0002CC6C | 98F1 F010      | LM    R15,R1,X'10'(R15)           
0002CC70 | D207 D048 1000 | MVC   X'48'(X'8',R13),X'0'(R1)    
0002CC76 | 58B0 94F0      | L     R11,X'4F0'(,R9)             
0002CC7A | 58A0 D04C      | L     R10,X'4C'(,R13)             
0002CC7E | 5860 B01C      | L     R6,X'1C'(,R11)              
0002CC82 | 5850 A018      | L     R5,X'18'(,R10)              
0002CC86 | 1556           | CLR   R5,R6                       

You can use the optional EP(hex address) parameter to give IPCS an address of the beginning of a module. In this case, an additional column containing the relative address of every instruction from the beginning of the module will be displayed.

Example: Use the LIST subcommand to display the instruction stream at the given address 000007AE and the address of the beginning of the module 000007B8:
list 000007AE length(x'64') instr EP(000007B8)
Result: Figure 2 shows the output of the preceding LIST subcommand.
Figure 2. Example output from LIST subcommand (using EP parameter)
LIST 07AE. ASID(X'0005') LENGTH(X'64') INSTRUCTION
000007AE | ____ | 1B50           | SR      R5,R0
000007B0 | ____ | 55F0 07E4      | CL      R15,X'7E4'
000007B4 | ____ | 4740 07BC      | BC      X'4',X'7BC'
000007B8 | 0000 | 41F0 0030      | LA      R15,X'30'
000007BC | 0004 | 5EF0 07E0      | AL      R15,X'7E0'
000007C0 | 0008 | ACFB 04A3      | STNSM   X'4A3',X'FB'
000007C4 | 000C | 58F0 F000      | L       R15,X'0'(,R15)
000007C8 | 0010 | 0CEF           | BASSM   R14,R15
000007CA | 0012 | AD04 04A3      | STOSM   X'4A3',X'04'
000007CE | 0016 | 18E0           | LR      R14,R0
000007D0 | 0018 | 0B0E           | BSM     0,R14
000007D2 | 001A LENGTH(X'40')==>Displayed as AREA
000007D2 LENGTH(X'0E')==>All bytes contain X'00'
MODULE[(name)]
The storage indicated by the address or in the address range is a module. If you display or print the data, each line contains four or eight words, depending on line width, in hexadecimal format followed by their character format. This parameter is frequently used when creating a symbol table entry for the storage indicated by the address or in the address range.

If you omit the name, the storage is given the attribute of MODULE to distinguish it from AREA and STRUCTURE.

If you specify a name, IPCS automatically creates a storage map entry for it. The name can be a maximum of 31 alphanumeric characters and the first character must be alphabetic.

PACKED
The storage indicated by the address or in the address range is a signed packed decimal number or numbers. If you display or print the data, it is shown as a string of hexadecimal digits.

If you specify LENGTH, it must be 1 through 16. If you specify any other value, the subcommand changes the attribute to AREA. If you omit the length parameter, the subcommand uses the length associated with the symbol, if you used one, or the default length. If this length is greater than 16, the subcommand changes the length to 16.

POINTER
The storage indicated by the address or in the address range is a pointer or pointers. If you display or print the data, it is shown in hexadecimal format.

If you specify LENGTH, it can range from 1 through 4. If you specify any other length, the subcommand changes the attribute to AREA.

If you omit the length, the subcommand uses the length associated with the symbol, if you used one, or the default length. If this length exceeds four, the subcommand uses a length of four. PTR is the abbreviation.

SIGNED or F
The storage indicated by the address or in the address range is a signed binary number or numbers. If you display or print the data, it is shown as a signed number or numbers translated to decimal.

If you specify LENGTH, the length must be two or four. If you specify any other value, the subcommand changes the attribute to AREA.

If you omit the length parameter, the subcommand uses the length associated with the symbol, if you used one, or the default length. If this length is not two or four, the subcommand changes lengths of one or three to two and changes lengths greater than four to four. F is the alias.

STRUCTURE[(cbname)]
The storage indicated by the address or in the address range is a control block. If you display or print the data, each line contains four or eight words, depending on line width, in hexadecimal format followed by their character format. This parameter is frequently used when creating a symbol table entry for the storage indicated by the address or in the address range.

Start of changeIf you omit cbname, the storage is given the attribute STRUCTURE to distinguish it from AREA and MODULE. No storage map entry is created.End of change

Start of changeIf you specify a cbname, IPCS automatically creates a storage map entry for it to assess whether the instance of STRUCTURE(cbname) that you have identified is a usable one, and to supply a preferred length that overrides the default length. (An explicit LENGTH or range supplied in the data description can, in turn, override the preferred length for the symbol entry but not the storage map entry.) The following sources of this information are consulted, selecting the first one listed.
  1. A scan exit routine is used.
  2. A model is used if one is available and the model has described a control block identifier and a control block length.
  3. A table of z/OS® data area lengths is consulted regarding a default data length.
  4. The default data length established by SETDEF is used.
  5. Start of changeStorage map entries are used in WHERE processing.End of change
End of change

The CBFORMAT subcommand requires specification of the STRUCTURE parameter, except with its own MODEL and FORMAT parameters. The CBSTAT subcommand always requires the STRUCTURE(cbname) parameter. The parameter may be omitted for either, however, if the referenced symbol already exists in the symbol table and if the referenced symbol contains the attribute STRUCTURE(cbname).

The CBSTAT subcommand can use another value, STORESTATUS, in place of cbname. See CBSTAT subcommand — obtain control block status for a description and an example.

Example 1:
cbstat 7fa030. structure(tcb)

Result: CBSTAT displays the status for the TCB control block at the given address.

Example 2:
equate mytcb 522c0. structure(tcb)

Start of changeResult: EQUATE explicitly verifies that the storage at X‘522C0’ is a TCB and makes a symbol table entry for MYTCB and a storage map entry for location X‘522C0’. The storage map entry and symbol table entry use the length from the IBM® supplied TCB formatter. In verifying the TCB, IPCS checks various pointers in the TCB to other control blocks, such as RBs, CDEs, an so on. In the process, these control blocks may also be validated and entered in the storage map but not in the symbol table.End of change

Start of changeExample 3:
setdef length(x'0F00')
equate nick 10000. structure(nick) length(x'1000')
NICK is not a recognized structure by IPCS.End of change

Start of changeResult: EQUATE creates a storage map entry at x'10000' but is unable to locate a formatter for NICK. The entry is created with the SETDEF length of X'0F00'. A symbol table entry is then created for symbol nick at X'10000' using the defined length parameter x'1000'.End of change

UNSIGNED
The storage indicated by the address or in the address range is an unsigned binary number or numbers. If you display or print the data, it is shown as an unsigned number or numbers translated to decimal.

If you specify LENGTH, it can range from one through four. If you specify any other length, the subcommand changes the attribute to AREA.

If you omit the length, the subcommand uses the length associated with the symbol, if you used one, or the default length. If this length exceeds four, the subcommand uses a length of four.

ZONED
The storage indicated by the address or in the address range is signed zoned decimal number or numbers. If you display or print the data, it is shown as a string of hexadecimal digits.

If you specify LENGTH, the length must be 1 through 31. If you specify any other value, the subcommand changes the attribute to AREA. If you omit the length parameter, the subcommand uses the length associated with the symbol, if you used one, or the default length. If this length is greater than 31, the subcommand changes the length to 31.