PASCAL Program Using TSOLNK to Invoke a CLIST

Figure 1. PASCAL Program Demonstrating the Use of TSOLNK to Invoke a CLIST
 (*******************************************************************)
 (*                                                                 *)
 (*  THIS PASCAL PROGRAM WILL INTERFACE WITH THE TSO SERVICE        *)
 (*  FACILITY. THIS PROGRAM WILL EXECUTE A CLIST WITH MEMBER NAME,  *)
 (*  MYCLIST. THE CLIST LIBRARY CONTAINING MYCLIST HAS ALREADY      *)
 (*  BEEN ALLOCATED TO FILE SYSPROC.  THIS PROGRAM DOES ITS         *)
 (*  OWN I/O AFTER THE TSO/E COMMAND IS EXECUTED TO DISPLAY         *)
 (*  RETURN CODES, THE USER SHOULD ALLOCATE FILE "FILEOUT"          *)
 (*  TO THE TERMINAL.                                               *)
 (*                                                                 *)
 (*                                                                 *)
 (*******************************************************************)
 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;               (* COMMAND BUFFER                     *)
   PARM3:INTEGER;            (* LENGTH OF COMMAND                  *)
   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(5);     (* SPECIFY CLIST TO BE EXECUTED       *)
     PARM2:='MYCLIST';       (* FILL IN COMMAND BUFFER             *)
     PARM3:=7;               (* SPECIFY COMMAND LENGTH             *)
     PARM4:=0;       (* ZERO TSO/E FUNCTION RETURN CODE            *)
     PARM5:=0;       (* ZERO TSO SERVICE FACILITY REASON CODE      *)
     PARM6:=0;       (* ZERO TSO/E 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 TSR REASON CODE IS ',PARM5);
                     (* PRINT OUT TSR REASON CODE                  *)
     WRITELN(FILEOUT, 'THE FUNCTION  ABEND CODE IS ',PARM6);
                     (* PRINT OUT FUNCTION ABEND CODE              *)
    END.