Example 2 (PL/I: non-DLL)
The following is an example of a PL/I program calling HFZSNAP four times, showing several of the different
invocation styles.
*PROCESS COMPILE,ATTRIBUTES,AGGREGATE,MAP,LIST,ESD,NEST;
@960HFZ:PROC OPTIONS(MAIN) REORDER;
DCL WKPTR PTR ;
DCL WORK CHAR(4) INIT('0001') ;
DCL WORK140 CHAR(140) INIT(' ');
DCL WORK1402 CHAR(140) INIT(' ');
DCL NUMWK FIXED DEC(9) INIT(0) ;
DCL NUMWK2 FIXED DEC(9) INIT(0) ;
DCL PICWK PIC'999' INIT(0);
DCL HFZSNAP EXTERNAL ENTRY;
/* ON ERROR CALL PLIDUMP(' F B ') */
/* ON ERROR CALL HFZSNAP(WORK,WORK140) */
FETCH HFZSNAP;
CALL SUBA;
SUBA: PROCEDURE ;
CALL SUBB;
END SUBA;
SUBB: PROCEDURE ;
/* THIS WILL CALL HFZSNAP 4 TIMES THEN ABEND FOR CALL 5 */
CALL HFZSNAP;
DISPLAY ('ZZZ RETURNED FROM HFZSNAP TO SUBB');
CALL HFZSNAP('0000');
DISPLAY ('ZZZ RETURNED FROM HFZSNAP(0000) TO SUBB');
WORK140 = 'USER TITLE DATA.';
CALL HFZSNAP(WORK,WORK140);
WORK = '0002';
WORK140 = 'USER TITLE DATA.';
WORK1402 = 'DATASETS(HFZHIST(NULLFILE))';
CALL HFZSNAP(WORK,WORK140,WORK1402);
PICWK = NUMWK2 ;
PICWK = NUMWK2 ;
PICWK = NUMWK2/NUMWK ;
END SUBB;
END @960HFZ;