Page 1 of 3

DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 4:23 pm
by RISCCISCInstSet
I've tried to find the answer to my problem all over and have lost sleep so I think I can ask my question here.

One: the program is complaining about missing DD statements
05.12.14 JOB02503 IEC130I G.INPUT DD STATEMENT MISSING
05.12.14 JOB02503 IEC130I G.OUTPUT DD STATEMENT MISSING
Also, it says "no active module found." Do you see the problem? Thx. :D

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 4:41 pm
by Akatsukami
Yes. Step G in your proc is missing INPUT and OUTPUT DD statements.

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 6:51 pm
by BillyBoyo
You've actually named your files G.INPUT and G.OUTPUT in the Assembler program.

You are trying to "override" step G to get ddnames of INPUT and OUTPUT. Your Assembler program needs to know nothing of those attempts. Change your program and let us know what happens when next you run it.

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 6:55 pm
by NicC
Cannot say apart from the fact you are missing DD statements for your input and output data sets. If this is the case then it is a JCL problem and not an assembler language problem.
It may, or may not, help if you actually post what is in your attachement as many cannot download (company policy) or will not download (fear of viruses or just cannot be bothered, etc.).

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 7:43 pm
by BillyBoyo
NicC, the input in the Assembler is called "G.INPUT". The output is called "G.OUTPUT". I've looked. Then you can't get DD names for those - invalid.

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 8:36 pm
by NicC
Thanks Billy. Guessed it was that from your previous post. I am surprised that the assembler allowed that unless it is one of those emulators that allow you to assemble and run on toys in which case you need toy names capability.

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 8:56 pm
by BillyBoyo
Hey, when a Moderator says "thanks" I should at least expect it to show up :-)

Re: DD Statements and Missing Modules

PostPosted: Fri Sep 21, 2012 11:45 pm
by steve-myers
Actually, the Assembler doesn't care about the contents of a DC CL8'G.OUTPUT'. The other question is question is how much - if any - syntax checking the DCB macro does for DDNAME=G.OUTPUT. I don't know. Finally, if the DD name is copied to the DCB before the OPEN; e.g., your program does -

MVC DCBDDNAM,=CL8'G.OUTPUT'

the DCB macro can't check it, and obviously OPEN didn't check it for a syntax violation, and it didn't find a DD statement with that DD name, so it failed the allocation.

DFSMS Macro Instructions for Data Sets does not specify any syntax rules, so the presumption is the DCB macro doesn't do any syntax checking.

The description for DALDDNAM in MVS Authorized Assembler Services Guide just defines a max length of 8, but no other restrictions. This implies you could specify G.OUTPUT, but I'm not going to try it!

Re: DD Statements and Missing Modules

PostPosted: Sat Sep 22, 2012 12:58 am
by steve-myers
As for the NO ACTIVE MODULE FOUND in the summary dump. Most likely, the address of the error is something like 000052. This address is in low storage, not in a module in your job pack area. Summary dump is too stupid to try to determine the module in your job pack area by looking at reg 14. That's why you got NO ACTIVE MODULE FOUND.

Re: DD Statements and Missing Modules

PostPosted: Sat Sep 22, 2012 5:45 am
by RISCCISCInstSet
@NicC thanks. :)

Files re-uploaded outside of a zip file.

If you have trouble viewing them, use Wordpad. :D

//C432110A JOB (ASSY),CLASS=A,MSGCLASS=A,
//   NOTIFY=&SYSUID,MSGLEVEL=(1,1)
//**************//
//CLG          EXEC PROC=ASMACLG
//C.SYSIN      DD DSN=C432110.ASM(LAB03),DISP=SHR
//C.SYSLIB     DD DSN=SYS1.MACLIB,DISP=SHR
//             DD DSN=C432110.MACLIB,DISP=SHR
//G.INPUT      DD DSN=C432110.ASM(LAB03),
//     DISP=SHR
//G.OUTPUT     DD DSN=C432110.ASM(COPY),
//     DISP=SHR

COPY     SETUP
         TITLE 'PROGRAM 4 80/80 LISTING'
         PRINT NOGEN
         WTO   'PROG4 COPY INFILE (ASCII) TO OUTFILE (ASCII)'
         OPEN  (INFILE,INPUT)
         OPEN  (OUTFILE,OUTPUT)
         WTO   'Files opened successfully'
*
LOOP     EQU   *
         GET   INFILE,IRECORD
         MVC   ORECORD,=CL133' '
         MVC   ORECORD+10(62),IRECORD
         PACK NUM,CHAR

         AP   NUM,NUM2
         OI   NUM+2,X'0F'
         UNPK  CHAR,NUM(4)
         MVC   ORECORD(10),CHAR

         PUT   OUTFILE,ORECORD
         B     LOOP
*
EOF      EQU   *
         CLOSE (INFILE,,OUTFILE)
         WTO   'PROG4 ENDED OK'
         ENDIT
INFILE   DCB   BLKSIZE=1330,                                           X
               DDNAME=G.INPUT,                                         X
               DSORG=PS,                                               X
               RECFM=FBA,                                              X
               LRECL=80,                                               X
               EODAD=EOF,                                              X
               MACRF=GM
*
OUTFILE  DCB   BLKSIZE=1330,                                           X
               DDNAME=G.OUTPUT,                                        X
               DSORG=PS,                                               X
               RECFM=FBA,                                              X
               LRECL=72,                                               X
               MACRF=PM
*
CHAR     DC    C'10'
NUM      DS    PL4
NUM2     DC    P'1'
IRECORD  DC    CL80' '
ORECORD  DC    CL72' '
         END   COPY


        1 //C432110A JOB (ASSY),CLASS=A,MSGCLASS=A,                               JOB02504
          //   NOTIFY=&SYSUID,MSGLEVEL=(1,1)
          //**************//
          IEFC653I SUBSTITUTION JCL - (ASSY),CLASS=A,MSGCLASS=A,NOTIFY=C432110,MSGLEVEL=(1,1)
        2 //CLG          EXEC PROC=ASMACLG
        3 XXASMACLG  PROC                                                         00001000
          XX*                                                                     00002000
          XX***   ASMACLG                                                         00003000
          XX*                                                                     00004000
          XX* THIS PROCEDURE RUNS THE HIGH LEVEL ASSEMBLER, LINK-EDITS THE        00005000
          XX* NEWLY ASSEMBLED PROGRAM AND RUNS THE PROGRAM AFTER                  00006000
          XX* THE LINK-EDIT IS ACCOMPLISHED.                                      00007000
          XX*                                                                     00008000
        4 XXC        EXEC PGM=ASMA90                                              00009000
        5 //C.SYSLIB     DD DSN=SYS1.MACLIB,DISP=SHR
          X/SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR                                 00010000
        6 //             DD DSN=C432110.MACLIB,DISP=SHR
        7 XXSYSUT1   DD  DSN=&&SYSUT1,SPACE=(4096,(120,120),,,ROUND),UNIT=VIO,    00011000
          XX             DCB=BUFNO=1                                              00012000
        8 XXSYSPRINT DD  SYSOUT=*                                                 00013000
        9 XXSYSLIN   DD  DSN=&&OBJ,SPACE=(3040,(40,40),,,ROUND),UNIT=VIO,         00014000
          XX             DISP=(MOD,PASS),                                         00015000
          XX             DCB=(BLKSIZE=3040,LRECL=80,RECFM=FBS,BUFNO=1)            00016000
       10 //C.SYSIN      DD DSN=C432110.ASM(LAB03),DISP=SHR
       11 XXL        EXEC PGM=HEWL,PARM='MAP,LET,LIST',COND=(8,LT,C)              00017000
       12 XXSYSLIN   DD  DSN=&&OBJ,DISP=(OLD,DELETE)                              00018000
       13 XX         DD  DDNAME=SYSIN                                             00019000
       14 XXSYSLMOD  DD  DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(1,1,1)),             00020000
          XX             DSN=&&GOSET(GO)                                          00021000
       15 XXSYSUT1   DD  DSN=&&SYSUT1,SPACE=(1024,(120,120),,,ROUND),UNIT=VIO,    00022000
          XX             DCB=BUFNO=1                                              00023000
       16 XXSYSPRINT DD  SYSOUT=*                                                 00024000
       17 XXG        EXEC PGM=*.L.SYSLMOD,COND=((8,LT,C),(8,LT,L))                00025000
       18 //G.INPUT      DD DSN=C432110.ASM(LAB03),
          //     DISP=SHR
       19 //G.OUTPUT     DD DSN=C432110.ASM(COPY),
          //     DISP=SHR
 STMT NO. MESSAGE
        2 IEFC001I PROCEDURE ASMACLG WAS EXPANDED USING SYSTEM LIBRARY SYS1.PROCLIB
       17 IEF686I DDNAME REFERRED TO ON DDNAME KEYWORD IN PRIOR STEP WAS NOT RESOLVED
ICH70001I C432110  LAST ACCESS AT 05:12:14 ON FRIDAY, SEPTEMBER 21, 2012
IEF236I ALLOC. FOR C432110A C CLG
IEF237I 1001 ALLOCATED TO SYSLIB
IEF237I 0D33 ALLOCATED TO
IGD100I VIO ALLOCATED TO DDNAME SYSUT1   DATACLAS (        )
IEF237I JES2 ALLOCATED TO SYSPRINT
IGD100I VIO ALLOCATED TO DDNAME SYSLIN   DATACLAS (        )
IEF237I 0D33 ALLOCATED TO SYSIN
IEF142I C432110A C CLG - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYS1.MACLIB                                  KEPT
IEF285I   VOL SER NOS= VTMVSC.
IEF285I   C432110.MACLIB                               KEPT
IEF285I   VOL SER NOS= VPWRKB.
IEF285I   SYS12265.T054040.RA000.C432110A.SYSUT1.H01   DELETED
IEF285I   C432110.C432110A.JOB02504.D0000101.?         SYSOUT
IEF285I   SYS12265.T054040.RA000.C432110A.OBJ.H01      PASSED
IEF285I   C432110.ASM                                  KEPT
IEF285I   VOL SER NOS= VPWRKB.
IEF373I STEP/C       /START 2012265.0540
IEF032I STEP/C       /STOP  2012265.0540
        CPU:     0 HR  00 MIN  00.05 SEC    SRB:     0 HR  00 MIN  00.00 SEC
        VIRT:   228K  SYS:   256K  EXT:    32768K  SYS:    11964K
IEF236I ALLOC. FOR C432110A L CLG
IEF237I VIO  ALLOCATED TO SYSLIN
IEF237I DMY  ALLOCATED TO
IGD100I VIO ALLOCATED TO DDNAME SYSLMOD  DATACLAS (        )
IGD100I VIO ALLOCATED TO DDNAME SYSUT1   DATACLAS (        )
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF142I C432110A L CLG - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYS12265.T054040.RA000.C432110A.OBJ.H01      DELETED
IEF285I   SYS12265.T054040.RA000.C432110A.GOSET.H01    PASSED
IEF285I   SYS12265.T054040.RA000.C432110A.SYSUT1.H01   DELETED
IEF285I   C432110.C432110A.JOB02504.D0000102.?         SYSOUT
IEF373I STEP/L       /START 2012265.0540
IEF032I STEP/L       /STOP  2012265.0540
        CPU:     0 HR  00 MIN  00.01 SEC    SRB:     0 HR  00 MIN  00.00 SEC
        VIRT:   104K  SYS:   260K  EXT:     1768K  SYS:    11108K
IEF236I ALLOC. FOR C432110A G CLG
IEF237I VIO  ALLOCATED TO PGM=*.DD
IEF237I 0D33 ALLOCATED TO INPUT
IEF237I 0D33 ALLOCATED TO OUTPUT
PROG4 COPY INFILE (ASCII) TO OUTFILE (ASCII)
IEC130I G.INPUT  DD STATEMENT MISSING
IEC130I G.OUTPUT DD STATEMENT MISSING
Files opened successfully
IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=0C4  REASON CODE=00000011
 TIME=05.40.41  SEQ=00773  CPU=0000  ASID=002E
 PSW AT TIME OF ERROR  078D2000   00005000  ILC 2  INTC 11
   NO ACTIVE MODULE FOUND
   NAME=UNKNOWN
   DATA AT PSW IS UNAVAILABLE AT THIS TIME


Attachments removed and Code'd. Relevant part of sysout only.