|
Figure 1. PL/I Program
Demonstrating the Use of TSOLNK to Invoke a CLIST /********************************************************************/
/* THIS PL/I PROGRAM INTERFACES WITH THE TSO SERVICE FACILITY. */
/* THE PROGRAM WILL EXECUTE MYCLIST AND THEN PRINT OUT THE */
/* RETURN, REASON AND ABEND CODES AS A RESULT OF USING THE */
/* SERVICE. SINCE THIS PROGRAM DOES ITS OWN I/O AFTER CALLING THE */
/* TSO SERVICE FACILITY, THE USER MUST ALLOCATE THE FILE NAME */
/* FILEOUT, PREFERABLY TO THE TERMINAL WITH THE TSO/E COMMAND: */
/* ALLOC F(FILEOUT) DSN(*) */
/* */
/* THIS PROGRAM WILL RUN ON THE OS/VS PL/I COMPILER RELEASE 2 OR */
/* HIGHER. */
/********************************************************************/
TSOCALL:
PROCEDURE OPTIONS(MAIN);
/********************************************************************/
/* DECLARE PARAMETERS */
/********************************************************************/
DECLARE 1 PARM1,
2 PARM11 FIXED BINARY (15,0), /* RESERVED */
2 PARM13 BIT(8), /* ABEND FLAG */
/* 0 -ABEND WITHOUT DUMP */
/* 1 -ABEND WITH DUMP */
2 PARM14 BIT(8); /* FUNCTION CODE */
DECLARE PARM2 CHARACTER(8); /* NAME OF FUNCTION */
DECLARE PARM3 FIXED BINARY(31,0); /* LENGTH OF CMD OR PROG */
DECLARE PARM4 FIXED BINARY(31,0); /* FUNCTION RETURN CODE */
DECLARE PARM5 FIXED BINARY(31,0); /* TSF REASON CODE */
DECLARE PARM6 FIXED BINARY(31,0); /* FUNCTION ABEND CODE */
/********************************************************************/
/* DECLARE OUTPUT FILE */
/********************************************************************/
DECLARE (FILEOUT) FILE;
/********************************************************************/
/* DECLARE TSOLNK ROUTINE PARAMETER LIST */
/********************************************************************/
DECLARE TSOLNK ENTRY( /* */
1, /* STRUCTURE OF 4 BYTES */
2 FIXED BINARY(15,0), /* BYTE 1 RESERVED */
2 BIT(8), /* BYTE 3 ABEND FLAG */
2 BIT(8), /* BYTE 4 FUNCTION FLAG */
CHARACTER (*), /* NAME OF PROGRAM OR CMD */
FIXED BINARY(31,0), /* LENGTH OF CMD OR PROG */
FIXED BINARY(31,0), /* FUNCTION RETURN CODE */
FIXED BINARY(31,0), /* REASON CODE */
FIXED BINARY(31,0) /* FUNCTION ABEND CODE */
)
EXTERNAL OPTIONS(ASSEMBLER RETCODE INTER);
DECLARE PLIRETV BUILTIN;
/********************************************************************/
/* START OF EXECUTABLE CODE */
/********************************************************************/
PARM13='00000001'B; /* DUMP YES OR NO, SET TO NO */
PARM14='00000101'B; /* INDICATE FUNCTION IS A CLIST */
PARM2 ='MYCLIST'; /* FUNCTION NAME */
PARM3 = 7; /* COMMAND LENGTH */
/********************************************************************/
/* CALL TSO SERVICE FACILITY */
/********************************************************************/
CALL TSOLNK(PARM1,PARM2,PARM3,PARM4,PARM5,PARM6);
/********************************************************************/
/* PRINT RESULTS OF CALL */
/* PRINT OUT RETURN CODE OF TSO SERVICE FACILITY */
/********************************************************************/
PUT FILE (FILEOUT) EDIT (' THE TSOLNK RETURN CODE IS ',PLIRETV)
(A,F(3));
/********************************************************************/
/* PRINT OUT RETURN CODE OF MYCLIST */
/********************************************************************/
PUT FILE (FILEOUT) EDIT (' THE FUNCTION RETURN CODE IS ',PARM4)
(SKIP, A, F(3));
/********************************************************************/
/* PRINT OUT REASON CODE OF MYCLIST */
/********************************************************************/
PUT FILE (FILEOUT) EDIT (' THE TSF REASON CODE IS ',PARM5)
(SKIP, A, F(3));
/********************************************************************/
/* PRINT OUT ABEND CODE OF MYCLIST */
/********************************************************************/
PUT FILE (FILEOUT) EDIT (' THE FUNCTION ABEND CODE IS ',PARM6)
(SKIP, A, F(3));
END TSOCALL;
|