This general macro transfers the information from a specified 8-byte field
to a specified core block reference word (CBRW) in the ECB, and zeroes the
8-byte field. This allows access to the specified block by successive
ECBs. If the field specified is in protected application or global
storage, the GLMOD and KEYRC macros are used to allow modification of the
specified field and restoration of the working storage protect key. The
core block referenced by the 8-byte field must have been unhooked
by using the UNHKA macro. The UNHKA and REHKA functions are designed
for use by programs with unique buffering requirements.
Format
- label
- A symbolic name can be assigned to the macro statement.
- FIXCEL
- This parameter is used to specify the address of the data field.
- address
- The operand 'address' must be the symbolic address of the 8-byte
field that will be placed in the requested CBRW.
- GLOB
- The parameter specifies where the FIXCEL address resides in
storage.
- YES
- YES means the specified FIXCEL area is in global area 1. This is
the default if GLOB is not coded.
- NO
- NO means the specified FIXCEL area is not in protected application or
global storage.
- symbol
- The operand 'symbol' must represent a protected application or
global storage area corresponding to the FIXCEL area location. Valid
symbols are GLOBAL1, GLOBAL2, GLOBAL3 and APL1.
- LEVEL
- This parameter is used to specify a core block level.
- literal
- A valid ECB data level (D0-DF). If not coded level 6 is
assumed.
Entry Requirements
- R9 must contain the address of the ECB being processed.
- The program must not be holding a core block on the level
specified by LEVEL.
- The field referenced by the FIXCEL area must be 8 bytes.
Return Conditions
- Control is returned to the next sequential instruction.
- The condition code is unchanged.
- The CBRW requested by LEVEL will contain the contents of the FIXCEL
field.
- The FIXCEL field will contain zeros (0).
Programming Considerations
- This macro can be executed on any I-stream.
- The use of this macro must be limited to programs with those unique
buffering requirements that demand a specific block be capable of access by
successive ECBs. It is not to be used to obtain use of a
free data level.
- The program must ensure the FIXCEL area is assessable (for example, the
correct address of storage protect key) if FIXCEL is in a protected area other
than global storage.
- The CBRU specified by LEVEL= must not have an attached block.
- This macro may call the GLMOD and KEYRC macros.
Examples
- Before Execution
CBRW4 (CE1CR4) contains X'001D4CA00001041F'
@BRCPG contains X'000FEA000021017D'
- Execute
REHKA FIXCEL=@BRCPG,LEVEL=4
- After Execution
CBRW4 contains X'000FEA000021017D'
@BRCPG contains XL8'00'