//COBOLJCL JOBCARD INFORMATION
//*---------------------------------------------------------------
//*                 COPYRIGHT (C) 1995, SAS INSTITUTE INC.
//*                   UNPUBLISHED - ALL RIGHTS RESERVED
//*                      S A S / C   S A M P L E
//*
//*
//*         NAME: COBOLJCL
//*     LANGUAGE: JCL
//*      PURPOSE: This job will compile a COBOL routine, a C function,
//*               and a C main. it then links them together, and
//*               executes it. It uses the prefix.ILC members COB1A,
//*               COB1B, and COB1C.
//*   MISC NOTES: THIS IS A NON-ILC EXAMPLE. Verify the proc
//*               names and dataset names where indicated by the
//*               " <=== VERIFY ".
//*-------------------------------------------------------------------
//*
//*-------------------------------------------------------------------
//* Compile COBOL function, and save object
//*-------------------------------------------------------------------
//*
//CCOBOL       EXEC COB2UC,PARM='NODYNAM'                   <=== VERIFY
//COB2.SYSLIN   DD DSN=your.object.library(COB1B),DISP=OLD  <=== VERIFY
//COB2.SYSIN    DD DSN=prefix.SAMPLE.ILC(COB1B),DISP=SHR    <=== VERIFY
//*
//*-------------------------------------------------------------------
//* Compile C function, and save object
//*-------------------------------------------------------------------
//*
//CCFUNC       EXEC LC370C,PARM.C='INDEP'                  <=== VERIFY
//*                                <=== MUST COMPILE WITH INDEP OPTION
//C.SYSLIN     DD DSN=your.object.library(COB1C),DISP=OLD  <=== VERIFY
//C.SYSIN      DD DSN=prefix.SAMPLE.ILC(COB1C),DISP=SHR    <=== VERIFY
//*
//*-------------------------------------------------------------------
//* Compile C main, then link the complete program.
//* NOTES:
//*  (1)  The COBOL library is in load module form, we must use the
//*       C load-moduel-format library, instead of the default object-
//*       module-format-library. The librarys COB1A, COB1B, and COB1C
//*       are in object form. We will use explicit INCLUDES to
//*       include them.
//*  (2)  The entry point must also be changed to point to the C
//*       entry (since in this case c is the main)
//*-------------------------------------------------------------------
//*
//CCMAIN       EXEC LC370CL,PARM.C='INDEP',                 <=== VERIFY
//*                                 <=== MUST COMPILE WITH INDEP OPTION
//   PARM.LKED='AMODE(24),RMODE(24)'
//C.SYSLIN     DD DSN=your.object.library(COB1A),DISP=OLD   <=== VERIFY
//C.SYSIN      DD DSN=prefix.SAMPLE.ILC(COB1A),DISP=SHR     <=== VERIFY
//*
//*LINK         EXEC LC370L,PARM.LKED='AMODE(24),RMODE(24)' <=== VERIFY
//LKED.SYSLIB  DD DSN=prefix.BASELIB,DISP=SHR               <=== VERIFY
//             DD DSN=prefix.STDLIB,DISP=SHR                <=== VERIFY
//             DD DSN=local.cobol2.COB2LIB,DISP=SHR         <=== VERIFY
//LKED.SYSLMOD DD DSN=your.load.library(CCOBOL),DISP=OLD    <=== VERIFY
//LKED.USERLIB DD DSN=your.object.library,DISP=SHR          <=== VERIFY
//LKED.SYSIN   DD *
  INCLUDE USERLIB(COB1A)
  INCLUDE USERLIB(COB1B)
  INCLUDE USERLIB(COB1C)
  ENTRY @MAIN
/*
//*********************************************************************
//* RUN THE LOAD library.                                             *
//*********************************************************************
//RUNIT        EXEC PGM=CCOBOL
//STEPLIB      DD DSN=your.load.library,DISP=SHR           <=== VERIFY
//             DD DSN=prefix.LINKLIB,DISP=SHR              <=== VERIFY
//             DD DSN=local.cobol2.COB2LIB,DISP=SHR        <=== VERIFY
//SYSPRINT     DD SYSOUT=A
//SYSTERM      DD SYSOUT=A
//SYSOUT       DD SYSOUT=A
//