//COBOLDYN JOBCARD INFORMATION //*------------------------------------------------------------------ //* COPYRIGHT (C) 1995, SAS INSTITUTE INC. //* UNPUBLISHED - ALL RIGHTS RESERVED //* S A S / C S A M P L E //* //* NAME: COBOLDYN //* LANGUAGE: JCL //* PURPOSE: THIS EXAMPLE DEMONSTRATES CALLING A C FUNCTION //* FROM COBOL, WHICH DYNAMICALLY LOADS ANOTHER LOAD //* MODULE. IT CONSISTS OF SAMPLE LIBRARY MEMBERS //* COBDYNC1, COBDYNC2, COBDYNCO, AND COBOLDYN. //* THIS JCL COMPILES, LINKS, AND EXECUTES THESE MODULES. //* MISC NOTES: THE FOLLOWING LSCL102 MESSAGE CAN BE IGNORED: //* CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(IGZEBST) //******************************************************************** //* //***************************************************************** //* NOTE: Verify the statements indicated by the "<== CHECK" //* have been customized for the local environment. //***************************************************************** //** COMPILE THE COBOL PROGRAM ** //********************************** //* //CCOB EXEC COB2UC, <== CHECK: PROC FOR COMPILING COBOL2 // PARM.COB2='APOST RESIDENT' //COB2.SYSLIN DD DSN=your.object.library(COBDYNCO),DISP=OLD <== CHECK //COB2.SYSIN DD DSN=sasc.SAMPLE.ILC(COBDYNCO),DISP=SHR <== CHECK //* //********************************** //** COMPILE THE CSTUB ** //********************************** //* //COMPILE EXEC PROC=LC370C, <== CHECK: PROC FOR COMPILING C // PARM.C='INDEP SNAME(CSTUB)' <== MUST COMPILE WITH INDEP //C.SYSLIN DD DSN=your.object.library(COBDYNC1),DISP=OLD <== CHECK //C.SYSIN DD DSN=sasc.SAMPLE.ILC(COBDYNC1),DISP=SHR <== CHECK //* //******************************************* //** COMPILE AND LINK THE C PROGRAM ** //******************************************* //* //COMPILE EXEC PROC=LC370CL, <== CHECK: PROC FOR COMPILE & LINK // PARM.C='SNAME(CPROG)',ENTRY=DYNNR <== LINK WITH ENTRY=DYNNR //* FOR NON-REENTRANT, AND ENTRY=DYN FOR REENTRANT //C.SYSLIN DD DSN=your.object.library(COBDYNC2),DISP=OLD <== CHECK //C.SYSIN DD DSN=sasc.SAMPLE.ILC(COBDYNC2),DISP=SHR <== CHECK //LKED.SYSLMOD DD DSN=your.load.library(COBDYNC2),DISP=SHR <== CHECK //* //************************************ //** LINK COBOL PROGRAM AND CSTUB ** //************************************ //* //ILCLINK EXEC ILCLINK, <== CHECK: ILC LINK PROC // PARM.LKED='NOTERM ECHO' //LKED.SYSLMOD DD DSN=your.load.library,DISP=OLD <== CHECK //LKED.COBJ DD DSN=your.object.library,DISP=SHR <== CHECK //LKED.COBOBJ DD DSN=your.object.library,DISP=SHR <== CHECK //LKED.CLIBS DD DSN=prefix.BASEOBJ,DISP=SHR <== CHECK // DD DSN=prefix.STDOBJ,DISP=SHR <== CHECK //* CHANGE THIS TO THE NON-COBOL2 LIBRARY IF NOT COBOL2 //LKED.COBLKD DD DSN=local.cobol.COB2LIB,DISP=SHR <== CHECK //* //* CHANGE "COBOL2" TO "COBOL" FOR NON-COBOL2 IN THE //* FIRST AND LANGUAGE STATEMENT BELOW //LKED.ILCIN DD * FIRST COBMAIN(COBOL2) LANGUAGE COBOL2,C PROCESS CLINK AUTOCALL CLIBS INCLUDE COBJ(COBDYNC1) PROCESS LKED LIST,MAP,XREF AUTOCALL COBLKD INCLUDE COBOBJ(COBDYNCO) ENTRY COBMAIN NAME COBOLDYN(R) /* //* //********************************** //** RUN PROGRAM ** //********************************** //* //GO EXEC PGM=COBOLDYN //STEPLIB DD DSN=your.load.library,DISP=SHR <== CHECK // DD DSN=prefix.LINKLIB,DISP=SHR <== CHECK //* //* CHANGE THIS TO THE NON-COBOL2 LIBRARY IF NOT COBOL2 // DD DSN=local.cobol.COB2LIB,DISP=SHR <== CHECK //SYSPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //* //