How to Implement SELECT/BYPASS Logic
Because the PL/I environment is different from CA Culprit (that is, Assembler), SELECT/BYPASS logic must be done with the SELECT/BYPASS BUFFER statement within the CA Culprit program.
Example
This is an example of a PL/I input module input that reads an 80-byte record.
Input Module
PLIPROG:PROC(BUF,ARG1,ARG2,ARG3,ARG4,ARG5,ARG6,ARG7,ARG8); DCL (BUF, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8) FIXED(1); DCL REC CHAR(80) BASED(P1); DCL FLAG CHAR(1) BASED(P3); DCL (P1, P2, P3, P4, P5, P6, P7, P8) POINTER; DCL ADDR BUILTIN; DCL SW1 CHAR(1) INITIAL(' '); /* HEX 00*/; DCL SW2 CHAR(1) INITIAL(' '); /* HEX FF*/; DCL SYS010 FILE INPUT RECORD; ON ENDFILE(SYS010) GO TO EOF; P1 = ADDR(BUF); P3 = ADDR(ARG2); IF FLAG = SW2 THEN DO; FLAG=SW1; OPEN FILE(SYS010); END; IF FLAG = SW1 THEN DO; READ FILE(SYS010) INTO (REC); GO TO GO_BACK; END; EOF:CLOSE FILE(SYS010); FLAG=SW2; GO_BACK:RETURN; END PLIPROG;
Copyright © 2014 CA.
All rights reserved.
|
|