Store Space Pointer Offset (STSPPO)

Instruction Syntax

Op Code (Hex) Operand 1 Operand 2
00A2 Receiver Source
Operand 1: Binary variable scalar.

Operand 2: Space pointer.

Description:

The offset value of the space pointer referenced by operand 2 is stored in the binary variable scalar defined by operand 1.

If operand 2 does not contain a space pointer, a pointer does not exist (hex 2401) exception is signaled.

If operand 2 points to teraspace, an unsupported space use (hex 0607) exception is signaled. This is necessary because no binary variable is large enough to contain an arbitrary teraspace offset. However, to retrieve a teraspace offset value within some specific allocation that is known to be smaller than the maximum value of a binary result variable, the SUBSPPFO instruction can be used. A pointer to the start of the teraspace allocation can be subtracted from a pointer to the current location within the allocation that is being referenced, for example.

If binary size (hex 0C0A) exceptions are to be signaled either because the program creation attribute indicated to do so or because a translator directive indicated to do so, they will be signalled under the following conditions:

  • The offset value is greater than 32,767 and operand 1 is a signed binary (2) scalar.
  • The offset value is greater than 65,535 and operand 1 is an unsigned binary (2) scalar.

Authorization Required

  • None

Lock Enforcement

  • None

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
    • 0607 Unsupported Space Use
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 0C Computation
    • 0C0A Size
  • 10 Damage Encountered
    • 1004 System Object Damage State
    • 1044 Partial System Object Damage
  • 1C Machine-Dependent
    • 1C03 Machine Storage Limit Exceeded
  • 20 Machine Support
    • 2002 Machine Check
    • 2003 Function Check
  • 22 Object Access
    • 2201 Object Not Found
    • 2202 Object Destroyed
    • 2203 Object Suspended
    • 2208 Object Compressed
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
  • 2E Resource Control Limit
    • 2E01 User Profile Storage Limit Exceeded
  • 36 Space Management
    • 3601 Space Extension/Truncation
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
    • 4402 Literal Values Cannot Be Changed