Set Data Pointer Addressability (SETDPADR)


Op Code (Hex) Operand 1 Operand 2

0046 Receiver Source

Operand 1: Data pointer.

Operand 2: Numeric variable scalar, character variable scalar, numeric variable array, or character variable array.

Bound program access

Built-in number for SETDPADR is 389. SETDPADR ( data_pointer : data pointer space_addressability : address ) : data pointer /* receiver */

Description 

For non-bound programs  The space addressability of the object specified for operand 2 is assigned to the data pointer specified by operand 1. If operand 1 contains a resolved data pointer, the data pointer's scalar attribute component is not changed by the instruction. If operand 1 contains an initialized but unresolved data pointer, the data pointer is resolved in order to establish the scalar attribute component of the pointer. If operand 1 contains other than a resolved data pointer, the instruction creates and returns a data pointer in operand 1 with the addressability of the object specified for operand 2, and the instruction establishes the attributes as a character(1) scalar.

For bound (including service) programs  The space addressability specified by operand 2 is combined with attribute information from operand 1 and returned in a data pointer. If operand 1 contains a resolved data pointer, the data pointer's scalar attribute component is not changed by the instruction. If operand 1 contains an initialized but unresolved data pointer, the data pointer is resolved in order to establish the scalar attribute component of the pointer. If operand 1 contains other than a resolved data pointer, the instruction creates and returns a data pointer with the addressability specified by operand 2 and the attributes of a character(1) scalar.

For all programs  When the addressability is set into a data pointer, the space addressing violation  (hex 0601) exception is signaled by the instruction only when the space address to be stored in the pointer has a negative offset value or if the offset addresses beyond the largest space allocatable in the object. This maximum offset value is dependent on the size and packaging of the object containing the space and is independent of the actual size of the space allocated. If the exception is signaled for this reason, the pointer is not modified by the instruction. Attempts to use a pointer whose offset value lies between the currently allocated extent of the space and the maximum allocatable extent of the space cause the space addressing violation  (hex 0601) exception to be signaled.

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

10 Damage Encountered

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2E Resource Control Limit

36 Space Management

44 Protection Violation