PASCAL Program Using TSOLNK to Invoke a Program
Figure 1. PASCAL Program
Demonstrating the Use of TSOLNK to Invoke a Program
(*******************************************************************)
(* *)
(* THIS PASCAL PROGRAM ISSUES THE IEBCOPY PROGRAM IN TSO/E AND *)
(* THEN PRINTS OUT THE COMMAND BUFFER AND THE RETURN, REASON *)
(* AND ABEND CODES RESULTING FROM THE EXECUTION OF THE TSO *)
(* SERVICE FACILITY. TO USE THE EXAMPLE THE USER MUST ALLOCATE *)
(* THE FOLLOWING FILES: *)
(* ALLOC F(OUTPUT) DSN(*) *)
(* ALLOC F(SYSIN) DSN(YOUR.SYSIN) *)
(* ALLOC F(SYSPRINT) DSN(*) *)
(* ALLOC F(INDD) DSN(YOUR.INPDS) *)
(* ALLOC F(OUTDD) DSN(YOUR.OUTPDS) *)
(* THE EXAMPLE REQUIRES THE FOLLOWING CARD IN YOUR.SYSIN FILE: *)
(* EXAMPLE COPY OUTDD=OUTDD,INDD=INDD *)
(* *)
(* *)
(*******************************************************************)
PROGRAM TSOINTER;
TYPE
PA4=PACKED ARRAY (.1..4.) OF CHAR;
PA80=PACKED ARRAY (.1..80.) OF CHAR;
(*******************************************************************)
(* *)
(* SET UP CALL TO TSOLNK - THE TSO SERVICE FACILITY. *)
(* WITH PARAMETER LIST. *)
(* *)
(*******************************************************************)
PROCEDURE TSOLNK( VAR PARM1:PA4;
VAR PARM2:PA80;
VAR PARM3:INTEGER;
VAR PARM4:INTEGER;
VAR PARM5:INTEGER;
VAR PARM6:INTEGER);
FORTRAN; (* THIS KEYWORD IS REQUIRED TO ESTABLISH LINKAGE TO TSF *)
VAR
PARM1:PA4; (* WORD OF CONTROL BITS *)
PARM2:PA80; (* PROGRAM BUFFER *)
PARM3:INTEGER; (* LENGTH OF PROGRAM *)
PARM4:INTEGER; (* FUNCTION RETURN CODE *)
PARM5:INTEGER; (* TSO SERVICE FACILITY REASON CODE *)
PARM6:INTEGER; (* FUNCTION ABEND CODE *)
FILEOUT:TEXT; (* DECLARE OUTPUT FILE NAME *)
BEGIN
PARM1(.1.):=CHR(0); (* ZERO OUT *)
PARM1(.2.):=CHR(0); (* ZERO OUT BYTE *)
PARM1(.3.):=CHR(1); (* SPECIFY DUMP *)
PARM1(.4.):=CHR(2); (* SPECIFY PROGRAM TO BE EXECUTED *)
PARM2:='IEBCOPY'; (* FILL IN PROGRAM BUFFER *)
PARM3:=7; (* SPECIFY PROGRAM LENGTH *)
PARM4:=0; (* ZERO OUT FUNCTION RETURN CODE *)
PARM5:=0; (* ZERO OUT TSF REASON CODE *)
PARM6:=0; (* ZERO OUT FUNCTION ABEND CODE *)
TSOLNK(PARM1,
PARM2,
PARM3,
PARM4,
PARM5,
PARM6); (* INTERFACE WITH TSO SERVICE FACILITY *)
WRITELN(FILEOUT, 'THE FUNCTION RETURN CODE IS ',PARM4);
(* PRINT OUT FUNCTION RETURN CODE *)
WRITELN(FILEOUT, ' THE TSF REASON CODE IS ',PARM5);
(* PRINT OUT TSF REASON CODE *)
WRITELN(FILEOUT, 'THE FUNCTION ABEND CODE IS ',PARM6);
(* PRINT OUT FUNCTION ABEND CODE *)
END.