How to Implement SELECT/BYPASS Logic
SELECT/BYPASS logic can be implemented in an Assembler input module by using the CA-supplied CULSINIT and CULSLCT macros in the source library from the install. CULSINIT establishes an environment that allows CA Culprit SELECT/BYPASS logic to function. CULSLCT implements the CA Culprit SELECT/BYPASS logic.
To implement SELECT/BYPASS logic:
Register 1 points to the input record to which SELECT/BYPASS logic is applied. Use these two positional operands:
Example
This is an example of an Assembler input module that reads an 80-byte record.
Input Module
CULLUS95 CSECT R0 EQU 0 R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 STM 14,12,12(13) SAVE CALLER'S REGISTERS BALR R3,0 ESTABLISH BASE REGISTER USING *,R3 ST R13,SAVEAREA+4 LA R13,SAVEAREA ST 13,SAVEAREA+8 CULSINIT ESTABLISHES CULPRIT ENVIRONMENT * FOR SELECT/BYPSS CALLS L R4,0(R1) R4 POINTS TO INPUT BUFFER L R5,8(R1) R5 POINTS TO OPEN/CLOSE SW CLI 0(R5),X'FF' IS FILE CLOSED? BE OPEN YES CLI 0(R5),X'00' IS FILE OPEN? BE READ YES B CLOSE RETURN EQU * L R13,SAVEAREA+4 RESTORE REGISTERS LM R14,R12,12(R13) BR R14 SAVEAREA DS 18F SAVE REGISTER AREA OPEN EQU * OPEN (INPUTFI,INPUT) OPEN INPUT FILE MVI 0(R5),X'00' SET OPEN/CLOSE SW TO OPEN READ EQU * GET INPUTFI GET FIRST RECORD MVC 0(80,R4),0(R1) MOVE FIRST RECORD INTO BUFFER CULSLCT RETURN,READ SEL/BYP MACRO B RETURN EOF EQU * MVI 0(R5),X'FF' SET OPEN/CLOSE SW TO CLOSE CLOSE EQU * CLOSE INPUTFI CLOSE INPUT FILE B RETURN INPUTFI DCB DSORG=PS,MACRF=GL,DDNAME=SYS010,EODAD=EOF CHANGE FOR VSE/ESA END CULLUS95
Copyright © 2014 CA.
All rights reserved.
|
|