Use this system macro to control the recoup stack area.
Format
- label
- specifies a symbolic name that can be assigned to the macro
statement.
- CL
- specifies that the recoup stack save area is on an entry control block
(ECB) data level, where datalevel is a hexadecimal value in the range
0-F.
- SIZE
- specifies the size of the core block to use for a stack block, where
blktype is one of the following valid sizes:
- L1
- is for 381-byte
- L2
- is for 1055-byte
- L4
- is for 4095-byte
- REG
- specifies the register to which you want a pointer to the top of the
recoup stack area block returned, where reg is one of the following
valid registers: R1-R7 or R14.
- TYPE
- specifies one of the following:
- CURR
- verifies that a recoup stack area block exists on the ECB data level
specified by the CL parameter and returns a pointer to the top of the recoup
stack area block in the register specified by the REG parameter.
- INIT
- gets and initializes a recoup stack area block on the ECB data level
specified by the CL parameter.
- POP
- pops (removes) the stack or moves data on the stack up one entry.
This is used when the contents of the current stack slot are no longer
needed. The first previous stack slot entry is set as the current
entry.
- PUSH
- pushes the stack or moves data on the stack down one entry. This is
used to save the contents of the current stack slot and make room for
additional data.
Entry Requirements
- R9 must contain the address of the ECB being processed.
- For PUSH, POP, and CURR, a valid recoup stack block must reside on the
selected data level.
Return Conditions
- Control is returned to the next sequential instruction (NSI).
- The register specified by the REG parameter contains a pointer to the
start of the recoup stack block. The contents of all other registers
are preserved across this macro call.
Programming Considerations
- This macro is used with BRSTR and BSAVE.
- This macro can only be used in the recoup package.
Examples
BSTAK TYPE=INIT
BSTAK CL=D,TYPE=PUSH
BSTAK CL=D,TYPE=POP
BSTAK TYPE=CURR,REG=R7