COBOL: SYSIN JCL for compiling source from PDS

2.1k views Asked by At

I'm just starting COBOL, and ran into this with JCL... How do I compile a basic cobol program from my PDS, I know through instream it would just be

//SYSIN DD * code code code /*

I tried something like

//SYSIN DD DSN=the.pds.location(file),DISP=SHR

but all that shot back was garbage and a return code of 12 I think.

If anyone could help, I would be grateful.

1

There are 1 answers

0
NealB On

Based on the information you have posted, your JCL should work. Maybe you are missing something else. The following JCL provides the full job step to do a COBOL compile:

    ... your job card goes here...
    //COB     EXEC PGM=IGYCRCTL
    //STEPLIB  DD DISP=SHR,DSN=SYSP.IGY.V3R4M1.SIGYCOMP
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT2   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT3   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT4   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT5   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT6   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT7   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSLIN   DD DSN=objectmodule,UNIT=SYSDA,
    //            DISP=(MOD,PASS),SPACE=(TRK,(3,3))
    //SYSIN    DD DSN=the.pds.location(file),DISP=SHR
//SYSPRINT DD SYSOUT=* ... your link step using object from SYSLIN above...
Note: You might have to change the STEPLIB to match the version of COBOL running at your site.

If your JCL looks pretty close to the above, the next thing to check out is your COBOL program. Go into the ISPF editor (I presume you have access to it) and type PROFILE on the command line. You should see something like:

   =PROF> ....GEN (FIXED - 80)....RECOVERY OFF WARN....NUMBER OFF.................
   =PROF> ....CAPS ON....HEX OFF....NULLS ON STD....TABS OFF......................
   =PROF> ....AUTOSAVE ON....AUTONUM OFF....AUTOLIST OFF....STATS ON..............
   =PROF> ....PROFILE UNLOCK....IMACRO NONE....PACK OFF....NOTE ON................
   =PROF> ....HILITE OFF CURSOR FIND..............................................
   =BNDS> <
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--

Now have a look for PACK ON (note the above shows PACK OFF). If you find PACK ON this is your problem. You need to issue the PACK OFF command and save your dataset. Try the compile again.

BTW... you get rid of the profile display by typing RESET on the command line.

If neither one of these fix your problem you need to provide a more information as to what the exact nature of the problem is.