Re: How can I write this program to a load library
Cameron: I can't help you with your COBOL (not one of my languages), but what you need is some JCL help. Retired Mainframer set you on the the right direction by saying you should look for another procedure. As he said, language (assembler and compiler) procedures usually come in three forms: xxxC (compile only), xxxCL (compile and link/load) and xxxCLG (compile, load and go). You used IGYWCLG . There is an IGYWCL procedure on the Marist system, which you can use to to do what you want. One thing you will have to do is find or set up a load library where you can link the load module you are creating. You can model the load library after the SYSLMOD DD statement in the LKED step in the procedure. SYSLMOD is where the LINK step puts the load module it creates. So you want to override this statement, creating a permanent library of your own or using a library of your own that already exists. If you don't have such a library already, I'd suggest: //LKED.SYSLMOD DD DSN=KC02117.MY.LOADLIB,DISP=(,CATLG),UNIT=SYSALLDA, //SPACE=(CYL,(1,1,5)),DSNTYPE=LIBRARY MAKE THIS A PDS/E This needs to go after the end of your COBOL source code in order for it to be seen as being a part of the LKED step (hence LKED.SYSLMOD). Creating the library as above does not name the member program, so you need to tell the link step what you want to call it. In the LKED step you will also see the //SYSLIN DD statement which concatenates the output of the COBOL compiler with an optional set of control statements for the link step. These statements, if supplied, would follow a //SYSIN DD statement, if supplied, so you want one after the SYSLMOD statement above. It should look like: //LKED.SYSIN DD * NAME PROG1(R) - this supplies the member name for your program and can be anything, but it will have to match what you put on the EXEC statement for your "GO" step, which you will need to create and is described below. The (R) option causes the program to be replaced if you have to run the job again. Last, you have to create a replacement for the GO step which is not a part of the procedure you had used. BTW, the //GO.ddname items as defined in your existing JCL will result in JCL errors, so you have to change all //GO.ddname DD statements to //ddname DD statements (remove the GO. part). I would recommend you model your new "GO" step after the JCL in the IGYWCLG procedure. Keep the EXEC statement, but change it to EXEC PGM=PROG1 (or whatever you choose to use in the NAME statement for the LINK step). You should keep the //STEPLIB DD statement in the CLG procedure, but you will want to concatenate your load library created above to it, so follow up the existing STEPLIB DD statement with: // DD DSN=KC02117.MY.LOADLIB,DISP=SHR - make sure this matches the name in the SYSLMOD statement above Now follow up the STEPLIB concatenation with the remainder of your JCL originally intended for your GO step, but remember to remove the GO. parts of these DD names. This should do it for you. There are other ways you could handle this, but I thought this was the easient fo explain and hope it will beef up your understanding of JCL. Good luck. Mike Myers Mentor Services Corporation On 11/04/2013 09: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! //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 * IDENTIFICATION DIVISION. 0004 PROGRAM-ID. PROG1. 0006 AUTHOR. VICKI HAMPTON. * LAB EXERCISE 1. 0007 ENVIRONMENT DIVISION. 0009 CONFIGURATION SECTION. 0011 INPUT-OUTPUT SECTION. 0017 FILE-CONTROL. 0019 SELECT INPUT-FILE ASSIGN TO DA-S-INPUT. 0021 SELECT PRNT-FILEASSIGN TO UR-S-PRNT. 0024 * 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
Re: How can I write this program to a load library
On 11/4/2013 8:21 PM, Steve Comstock wrote: 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. 0004 PROGRAM-ID. PROG1. 0006 AUTHOR. VICKI HAMPTON. Obsolete paragraph, AUTHOR * LAB EXERCISE 1. 0007 ENVIRONMENT DIVISION. 0009 CONFIGURATION SECTION. 0011 INPUT-OUTPUT SECTION. 0017 FILE-CONTROL. 0019 SELECT INPUT-FILE ASSIGN TO DA-S-INPUT. 0021 just ASSIGN TO S-INPUT is fine, my bad; S-INPUT won't work; AS-INDD would work for ESDS better would be: ASSIGN TO INDD (the DA-S stuff is ignored, but 'INPUT' itself is a reserved word) SELECT PRNT-FILEASSIGN TO UR-S-PRNT. 0024 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 0025 * 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. 0026 SKIP3 0027 * SKIP 3 INSERTS 3 BLANK LINES the current compilers simply accept blank lines FILE SECTION. 0028 SKIP2 0029 *SKIP TO INSERTS 2 BLANK LINES FD INPUT-FILE 0030 BLOCK CONTAINS 0 RECORDS 0031 * 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. 0032 ' 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). 033 SKIP2 0034 FD PRNT-FILE 0045 LABEL RECORDS ARE OMITTED. 0046 Unnecessary; ' recording mode is F. ' is more important 01 PRNT-REC. 0047 03 PIC X(60). 03 PIC X(65). * THIS IS FORMATTING FOR OUR REPORT SKIP2 0048 EJECT 0049 WORKING-STORAGE SECTION. 0050 SKIP2 0051 ** 0052 * LAYOUT FOR THE INPUT FILE *0053 *
Re: How can I write this program to a load library
Have a look at http://www-01.ibm.com/support/docview.wss?uid=swg27036733 and pick your compiler version release and have a look at the Programming Guide chapter that discusses cataloged procedures. For example, for Enterprise COBOL for z/OS 4.2, see Chapter 14 Compiling under z/OS, section Using a Cataloged Procedure. You might also want to reference the JCL books and consider breaking this into 2 steps, 1 that does the compile and link, and one that does the GO, which is a better example of the 'real world' (where compile, link and go are rarely done at the same time). For JCL books, I'd start here: http://www-03.ibm.com/systems/z/os/zos/bkserv/ there are lots of ways to find books in there, so I won't try to go into that, but you want to look for these 2 MVS JCL Reference MVS JCL User's Guide George On 11/4/2013 9: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! //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 * IDENTIFICATION DIVISION. 0004 PROGRAM-ID. PROG1. 0006 AUTHOR. VICKI HAMPTON. * LAB EXERCISE 1. 0007 ENVIRONMENT DIVISION. 0009 CONFIGURATION SECTION. 0011 INPUT-OUTPUT SECTION. 0017 FILE-CONTROL. 0019 SELECT INPUT-FILE ASSIGN TO DA-S-INPUT. 0021 SELECT PRNT-FILEASSIGN TO UR-S-PRNT. 0024 * 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 0025 * EJECT DIRECTS THE PRINTER TO START THE NEXT * OUTPUT TO BEGIN AT THE TOP OF THE PAGE DATA DIVISION. 0026 SKIP3 0027 * SKIP 3 INSERTS 3 BLANK LINES FILE SECTION. 0028 SKIP2 0029 *SKIP TO INSERTS 2 BLANK LINES FD INPUT-FILE 0030 BLOCK CONTAINS 0 RECORDS 0031 * THIS INFORMS THE SYSTEM THAT NO RECORDS ARE PRESENT * WHEN WE START (WE ARE READING OUR DATA FROM * AN INLINE STREAM LABEL RECORDS ARE STANDARD. 0032 01 INPUT-REC PIC X(80). 033 SKIP2 0034 FD PRNT-FILE 0045 LABEL RECORDS ARE OMITTED. 0046 01 PRNT-REC. 0047 03 PIC X(60). 03 PIC X(65). * THIS IS FORMATTING FOR OUR REPORT SKIP2 0048 EJECT 0049 WORKING-STORAGE SECTION. 0050 SKIP2 0051 ** 0052 * LAYOUT FOR THE INPUT FILE *0053 ** 0054 01 INPUT-DATA. 0055 03 I-NAME PIC X(20). 0057 03 DEPT PIC X(10). 03 FILLER PIC X(50). 0058 * FILLER IS USED FOR PADDING SKIP2
Re: How can I write this program to a load library
Paul Gilmartin wrote: >> Be very careful doing that! When I was very young I tried something similar >> without understanding that the following GO step contained: >> //STEPLIB DD DISP=(OLD,DELETE),DSN=*.LKED.SYSLMOD >> Oops! A common trap. RACF can help you to protect your dataset with access = UPDATE. This is why production loadlibs should not start with your userid. One of my users, an ancient and somewhat crazy lady has a bad habit to delete her datasets and then ringing up the director (instead just calling our direct boss) saying WE deleted her things. When the director's contract was ending, he/she just call the new director and warn him/her about that troublesome user. Eventually we have a daily batch job which run backups incrementally. ;-) Steve Comstock wrote: >Yeah, I did something similar once. State of New Mexico was down for two days. Two days! Ouch. You really make those New Mexicans very OLD!! ;-) >But the point is that the OP really needs to beef up his understanding of JCL >as well as his knowledge of COBOL if he is teaching for the z/OS environment. Agreed. Groete / Greetings Elardus Engelbrecht -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I write this program to a load library
On 11/4/2013 8:59 PM, Paul Gilmartin wrote: On Mon, 4 Nov 2013 20:21:38 -0700, Steve Comstock wrote: 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. Be very careful doing that! When I was very young I tried something similar without understanding that the following GO step contained: //STEPLIB DD DISP=(OLD,DELETE),DSN=*.LKED.SYSLMOD Oops! -- gil Yeah, I did something similar once. State of New Mexico was down for two days. But the point is that the OP really needs to beef up his understanding of JCL as well as his knowledge of COBOL if he is teaching for the z/OS environment. -- Kind regards, -Steve Comstock The Trainer's Friend, Inc. 303-355-2752 http://www.trainersfriend.com * We are going out of business effective 30 December, 2013 * To purchase a set of our training materials at terrific prices, check out our Going Out Of Business Sale: http://www.trainersfriend.com/SpecialSale -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I write this program to a load library
On Mon, 4 Nov 2013 20:21:38 -0700, Steve Comstock wrote: > >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. > Be very careful doing that! When I was very young I tried something similar without understanding that the following GO step contained: //STEPLIB DD DISP=(OLD,DELETE),DSN=*.LKED.SYSLMOD Oops! -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I write this program to a load library
With Cobol Installation, your shop should have loaded many IGYW* procs. You are using IGYWCLG. In the JESMSGLOG you should see a message that states PROC IGYWCLG Expanded from x Library. Go to that Library and see if you have other IGYW* procs there. One of them should have an IEWL or BINDER step that you can override the SYSLMOD to a load library of your choice. Also, go and look at the manual: Application Programing for z/OS for your level of Cobol. It should detail the different procs and what they can be used for. I think the IGYWCL may be what you need to use. HTH Lizette > -Original Message- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On > Behalf Of Cameron Seay > Sent: Monday, November 04, 2013 7:50 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: How can I write this program to a load library > > 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! > > //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 * -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I write this program to a load library
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. 0004 PROGRAM-ID. PROG1. 0006 AUTHOR. VICKI HAMPTON. Obsolete paragraph, AUTHOR * LAB EXERCISE 1. 0007 ENVIRONMENT DIVISION. 0009 CONFIGURATION SECTION. 0011 INPUT-OUTPUT SECTION. 0017 FILE-CONTROL. 0019 SELECT INPUT-FILE ASSIGN TO DA-S-INPUT. 0021 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-FILEASSIGN TO UR-S-PRNT. 0024 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 0025 * 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. 0026 SKIP3 0027 * SKIP 3 INSERTS 3 BLANK LINES the current compilers simply accept blank lines FILE SECTION. 0028 SKIP2 0029 *SKIP TO INSERTS 2 BLANK LINES FD INPUT-FILE 0030 BLOCK CONTAINS 0 RECORDS 0031 * 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. 0032 ' 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). 033 SKIP2 0034 FD PRNT-FILE 0045 LABEL RECORDS ARE OMITTED. 0046 Unnecessary; ' recording mode is F. ' is more important 01 PRNT-REC. 0047 03 PIC X(60). 03 PIC X(65). * THIS IS FORMATTING FOR OUR REPORT SKIP2 0048 EJECT 0049 WORKING-STORAGE SECTION. 0050 SKIP2 0051 ** 0052 * LAYOUT FOR THE INPUT FILE *0053 ** 0054 01 INPUT-DATA.
Re: How can I write this program to a load library
The CLG at the end of your proc name stands for compile, link, and go. You should have a corresponding CL proc (for compile and link) that should be set up to let you specify a permanent library via a symbolic parameter. You will then need to add Binder (nee Linkage Editor) control cards (or possibly addition symbolic parameters) to specify the member name and other load module options. If the Binder runs with NCAL specified, you would run the program with the corresponding LG (link and go) proc. If not, you would use the corresponding G (go) proc. :>: -Original Message- :>: From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On :>: Behalf Of Cameron Seay :>: Sent: Monday, November 04, 2013 6:50 PM :>: To: IBM-MAIN@LISTSERV.UA.EDU :>: Subject: How can I write this program to a load library :>: :>: 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! :>: :>: //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 * :>: //GO.SYSOUT DD SYSOUT=* :>: //GO.SYSPRINT DD SYSOUT=* :>: //GO.INPUT DD * :>: VICKI HAMPTON CIS :>: GEORGE WASHINGTON ENG :>: IVAN ISGREATPHY :>: IGOR ISBETTER :>: IVANA GOHOME :>: COB OL :>: HUGH LESS :>: GARY MORE :>: PAULA PANTHER :>: //GO.PRNT DD SYSOUT=* :>: -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
How can I write this program to a load library
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! //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 * IDENTIFICATION DIVISION. 0004 PROGRAM-ID. PROG1. 0006 AUTHOR. VICKI HAMPTON. * LAB EXERCISE 1.0007 ENVIRONMENT DIVISION.0009 CONFIGURATION SECTION. 0011 INPUT-OUTPUT SECTION.0017 FILE-CONTROL.0019 SELECT INPUT-FILE ASSIGN TO DA-S-INPUT. 0021 SELECT PRNT-FILEASSIGN TO UR-S-PRNT.0024 * 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 EJECT0025 * EJECT DIRECTS THE PRINTER TO START THE NEXT * OUTPUT TO BEGIN AT THE TOP OF THE PAGE DATA DIVISION. 0026 SKIP30027 * SKIP 3 INSERTS 3 BLANK LINES FILE SECTION.0028 SKIP20029 *SKIP TO INSERTS 2 BLANK LINES FD INPUT-FILE 0030 BLOCK CONTAINS 0 RECORDS 0031 * THIS INFORMS THE SYSTEM THAT NO RECORDS ARE PRESENT * WHEN WE START (WE ARE READING OUR DATA FROM * AN INLINE STREAM LABEL RECORDS ARE STANDARD. 0032 01 INPUT-REC PIC X(80). 033 SKIP20034 FD PRNT-FILE0045 LABEL RECORDS ARE OMITTED. 0046 01 PRNT-REC.0047 03 PIC X(60). 03 PIC X(65). * THIS IS FORMATTING FOR OUR REPORT SKIP20048 EJECT0049 WORKING-STORAGE SECTION. 0050 SKIP20051 **0052 * LAYOUT FOR THE INPUT FILE *0053 **0054 01 INPUT-DATA. 0055 03 I-NAME PIC X(20).0057 03 DEPT PIC X(10). 03 FILLER PIC X(50).0058 * FILLER IS USED FOR PADDING SKIP20062 EJECT0096 **0097 * LAYOUT FOR THE 1ST DATA LINE OF REPORT PRNTING *0098 **0099 01 PRNT-DATA1. 0100 03 FILLER PIC X(10) VALUE SPACES. 0101 03 L-NAME1PIC X(20).0104 03 FILLER PIC X(10) VALUE SPACES. 03 DEPT1 PIC X(10). 03 EXTRA PIC X(50). 03 EXTRA2 PIC X(40) VALUE ''. 03 EXTRA3 PIC X(5) VALUE 'E'. SKIP2