On 11/4/2013 7:49 PM, Cameron Seay wrote:
All:
I am a re-newbie to COBOL (learned it years ago but it's very rusty). I am
teaching it to my students because it's a great job skill now. Below is job that
contains the source code inline and runs great. It compiles, links and runs
error free. What I want is the syntax to place the LOAD module into a data set.
I tried what I thought would work, but it didn't. Many thanks!
To do that has nothing to do with COBOL: it's JCL you need to
brush up on. Point LKED.SYSLMOD to a PDS/PDSE that contains
load modules or program objects.
//KC02177B JOB (12345678),'V HAMPTON',MSGLEVEL=(1,1),REGION=0M,
// NOTIFY=&SYSUID,MSGCLASS=A,CLASS=A
//****
//COBOL1 EXEC IGYWCLG,
// PARM.COBOL='TEST,RENT,APOST,OBJECT,NODYNAM,LIB,SIZE(5048376)'
//COBOL.SYSPRINT DD SYSOUT=*
//COBOL.SYSIN DD *
Lots of very old syntax here.
IDENTIFICATION DIVISION.
00000004
PROGRAM-ID. PROG1.
00000006
AUTHOR. VICKI HAMPTON.
Obsolete paragraph, AUTHOR
* LAB EXERCISE 1.
00000007
ENVIRONMENT DIVISION.
00000009
CONFIGURATION SECTION.
00000011
INPUT-OUTPUT SECTION.
00000017
FILE-CONTROL.
00000019
SELECT INPUT-FILE ASSIGN TO DA-S-INPUT.
00000021
just ASSIGN TO S-INPUT is fine,
better would be:
ASSIGN TO INDD
(the DA-S stuff is ignored, but 'INPUT' itself is a reserved word)
SELECT PRNT-FILE ASSIGN TO UR-S-PRNT.
00000024
just ASSIGN TO PRNT is better
* INPUT-FILE IS THE NAME THE PROGRAM WILL USE
* DA-S-INPUT TELLS JCL TO ASSIGN THE INPUT DATA
* TO THE FILE NAME INPUT-FILE, SAME FOR PRNT-FILE
* AND UR-S-PRNT
EJECT
EJECT and SKIP are only relevant when you print out
your compiles to hard copy; otherwise pretty meaningless
00000025
* EJECT DIRECTS THE PRINTER TO START THE NEXT
* OUTPUT TO BEGIN AT THE TOP OF THE PAGE
Well, yes, but the output of the _compile_, not the
output of the report
DATA DIVISION.
00000026
SKIP3
00000027
* SKIP 3 INSERTS 3 BLANK LINES
the current compilers simply accept blank lines
FILE SECTION.
00000028
SKIP2
00000029
* SKIP TO INSERTS 2 BLANK LINES
FD INPUT-FILE
00000030
BLOCK CONTAINS 0 RECORDS
00000031
* THIS INFORMS THE SYSTEM THAT NO RECORDS ARE PRESENT
* WHEN WE START (WE ARE READING OUR DATA FROM
* AN INLINE STREAM
No, it does not. It tells the operating system to
choose the block size
LABEL RECORDS ARE STANDARD.
00000032
' recording mode is F. ' is more important
This is unnecessary, since it is the only option
for disk and the default for tape
01 INPUT-REC PIC X(80). 0000033
SKIP2
00000034
FD PRNT-FILE
00000045
LABEL RECORDS ARE OMITTED.
00000046
Unnecessary;
' recording mode is F. ' is more important
01 PRNT-REC.
00000047
03 PIC X(60).
03 PIC X(65).
* THIS IS FORMATTING FOR OUR REPORT
SKIP2
00000048
EJECT
00000049
WORKING-STORAGE SECTION.
00000050
SKIP2
00000051
**************************************************************
00000052
* LAYOUT FOR THE INPUT FILE * 00000053
**************************************************************
00000054
01 INPUT-DATA.
00000055
03 I-NAME PIC X(20).
00000057
03 DEPT PIC X(10).
03 FILLER PIC X(50).
00000058
Be aware that the word 'FILLER' is no longer necessary
* FILLER IS USED FOR PADDING
SKIP2
00000062
EJECT
00000096
**************************************************************
00000097
* LAYOUT FOR THE 1ST DATA LINE OF REPORT PRNTING *
00000098
**************************************************************
00000099
01 PRNT-DATA1.
00000100
03 FILLER PIC X(10) VALUE SPACES.
00000101
03 L-NAME1 PIC X(20).
00000104
03 FILLER PIC X(10) VALUE SPACES.
03 DEPT1 PIC X(10).
03 EXTRA PIC X(50).
03 EXTRA2 PIC X(40)
VALUE 'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'.
03 EXTRA3 PIC X(5) VALUE 'EEEEE'.
SKIP2
00000105
**************************************************************
00000129
* LAYOUT FOR THE 1ST HEADING LINE OF REPORT PRNTING *
00000130
**************************************************************
00000131
01 PRNT-HEADING1.
00000132
03 FILLER PIC X(10) VALUE SPACES.
00000133
03 FILLER PIC X(20) VALUE 'NAME'.
00000136
03 FILLER PIC X(10) VALUE SPACES.
03 FILLER PIC X(10) VALUE 'DEPT'.
SKIP2
00000137
**************************************************************
00000155
* MISCELLANEOUS DATA NAMES *
00000156
**************************************************************
00000157
01 MISC.
00000158
SKIP2
00000159
**************************************************************
00000160
* END OF FILE (EOF) SWITCHES *
00000161
* 0 = NOT AT EOF 1 = AT EOF *
00000162
**************************************************************
00000163
03 EOF-I PIC 9 VALUE 0.
00000164
**************************************************************
00000201
* START OF PROCEDURE DIVISION *
00000202
**************************************************************
00000203
do you really need the above comment?
PROCEDURE DIVISION.
00000204
000-MAINLINE.
00000206
OPEN INPUT INPUT-FILE
00000207
OUTPUT PRNT-FILE.
00000210
PERFORM 2000-READ-INPUT.
00000211
PERFORM 1400-PRINT-HEAD.
PERFORM 1500-LOOP
00000217
UNTIL EOF-I = 1.
00000218
CLOSE INPUT-FILE 0000219
PRNT-FILE.
00000221
STOP RUN.
00000223
1400-PRINT-HEAD.
WRITE PRNT-REC FROM PRNT-HEADING1
00000265
AFTER ADVANCING PAGE.
00000266
MOVE SPACES TO PRNT-REC.
00000267
WRITE PRNT-REC
00000268
AFTER ADVANCING 1 LINE.
00000269
1500-LOOP.
00000248
PERFORM 1600-PRINT-NAMES.
00000255
PERFORM 2000-READ-INPUT. 0000249
**************************************************************
00000261
* PRINTS THE SCHEDULE INFORMATION *
00000262
**************************************************************
00000263
1600-PRINT-NAMES.
00000264
MOVE I-NAME TO L-NAME1.
00000271
MOVE DEPT TO DEPT1.
WRITE PRNT-REC FROM PRNT-DATA1
00000272
AFTER ADVANCING 1 LINE.
00000273
**************************************************************
00000324
* READS THE INPUT FILE * 0000325
**************************************************************
00000326
2000-READ-INPUT. 0000327
READ INPUT-FILE INTO INPUT-DATA 000328
AT END MOVE 1 TO EOF-I.
00000329
//GO.SYSOUT DD SYSOUT=*
//GO.SYSPRINT DD SYSOUT=*
//GO.INPUT DD *
VICKI HAMPTON CIS
GEORGE WASHINGTON ENG
IVAN ISGREAT PHY
IGOR ISBETTER
IVANA GOHOME
COB OL
HUGH LESS
GARY MORE
PAULA PANTHER
//GO.PRNT DD SYSOUT=*
What compiler are you using? What version of the operating system?
Kind regards,
-Steve Comstock
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN