开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Need Help w/ CDMOD


 

Hey guys,
I'm developing an Assembler program to read a card file and write tape records.? On first good assembly, I got an EXTRN on module IJCFZIWO.? I found another topic that resembled my issue (Missing module?) in which a I discovered a hint.? In that topic, it was suggested to remove WORKA=YES from the DTFCD and voila, I got a clean assembly.? Upon execution, I receive a data exception (?) which appears to be on the OPEN statement.?
In the meantime, I thought I would generate the module using the CDMOD macro but couldn't remember the proper JCL to CATALR it.? Again, I'm trying to remember stuff but can only recall fragments.

1.? 0S03I PROGRAM CHECK INTERRUPTION - HEX LOCATION 40009A - CONDITION CODE 0 - DATA EXCEPTION
? ? ?40009A - 400078 (pgm load address) = 22.? 22 bytes into program is OPEN statement.
? ? ?Is this approach correct?? It's been awhile since I read a dump!!

2.? CARDIN? ?DTFCD DEVADDR=SYSIPT,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?X?
? ? ? ? ? ? ? ? ? ?IOAREA1=IOARIN1,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X?
? ? ? ? ? ? ? ? ? ?BLKSIZE=80,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?X?
? ? ? ? ? ? ? ? ? ?DEVICE=2540,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X?
? ? ? ? ? ? ? ? ? ?EOFADDR=CARDEOF,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X?
? ? ? ? ? ? ? ? ? ?TYPEFLE=INPUT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
*? ? ? ? ? ? ? ? ? WORKA=YES? ? ? ? ? commented out!
? ? Is this DTF proper?
3.? IJCFZIWO - I seem to recall a manual which decodes the letters FZIWO or ZIWO and indicate what
? ? the proper statements are supposed to be.
? ? What is the name of that manual and does anyone have an electronic copy?
4.??* $$ JOB JNM=CDMOD,CLASS=0,DISP=D? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? * $$ LST CLASS=A,DISP=D,JSEP=0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? // JOB CDMOD? ?ASSEMBLE IJCFZIWO CARD MODULE? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? // OPTION LINK,DECK? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? // EXEC ASSEMBLY? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ?CDMOD DEVICE=2540,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X?
? ? ? ? ? ? ? ? ? ?TYPEFLE=INPUT,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X?
? ? ? ? ? ? ? ? ? ?WORKA=YES,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X?
? ? ? ? ? ? ? ? ? ?SEPASMB=YES? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ?END? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? /*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? // EXEC LNKEDT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? /*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? /&? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? * $$ EOJ? ?
? ? This is the JCL to assemble the CDMOD.? What am I missing to get it to IJSYSRL??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Thanks.
Jim? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


 

Never mind on item 4.? I found an example in the System Control Statements, GC33-5376-5, pg 64.


 

Never mind on item 3.? I found LIOCS modules?the COBOL Compiler and Library Installation Reference Material, SC33-6469-4, pg 10.


 

On Mon, 2021-01-11 at 17:59 -0800, Jim Snellen wrote:
Hey guys,
I'm developing an Assembler program to read a card file and write
tape records. On first good assembly, I got an EXTRN on module
IJCFZIWO. I found another topic that resembled my issue (Missing
module?) in which a I discovered a hint. In that topic, it was
suggested to remove WORKA=YES from the DTFCD and voila, I got a clean
assembly. Upon execution, I receive a data exception (?) which
appears to be on the OPEN statement.
In the meantime, I thought I would generate the module using the
CDMOD macro but couldn't remember the proper JCL to CATALR it.
Again, I'm trying to remember stuff but can only recall fragments.

1. 0S03I PROGRAM CHECK INTERRUPTION - HEX LOCATION 40009A -
CONDITION CODE 0 - DATA EXCEPTION
40009A - 400078 (pgm load address) = 22. 22 bytes into program
is OPEN statement.
Is this approach correct? It's been awhile since I read a
dump!!
2. CARDIN DTFCD DEVADDR=SYSIPT,
X
IOAREA1=IOARIN1,
X
BLKSIZE=80,
X
DEVICE=2540,
X
EOFADDR=CARDEOF,
X
TYPEFLE=INPUT

* WORKA=YES commented out!
Is this DTF proper?
3. IJCFZIWO - I seem to recall a manual which decodes the letter
s FZIWO or ZIWO and indicate what
the proper statements are supposed to be.
What is the name of that manual and does anyone have an
electronic copy?
4. * $$ JOB JNM=CDMOD,CLASS=0,DISP=D

* $$ LST CLASS=A,DISP=D,JSEP=0

// JOB CDMOD ASSEMBLE IJCFZIWO CARD MODULE

// OPTION LINK,DECK

// EXEC ASSEMBLY

CDMOD DEVICE=2540,
X
TYPEFLE=INPUT,
X
WORKA=YES,
X
SEPASMB=YES


END

/*

// EXEC LNKEDT

/*

/&

* $$ EOJ
This is the JCL to assemble the CDMOD. What am I missing to get
it to IJSYSRL? Thanks.
Jim
Note, you do not have to catalogue the relocatable version of the
xxMOD, CD in this case. You can also assemble it with the DTFxx macro
in the same assembly.

Catalog the module only if you plan to use it in other programs. That
saves repeated increase in assembly size.

In the past, I would assemble the xxMOD in the same program. After I
was sure the parameters were correct and the program ran correctly, I
would then catalog the module if that made sense.



 

(piggyback)

Harold Grovesteen wrote:
Jim Snellen wrote:
[...]
This is the JCL to assemble the CDMOD. What am I missing
to get it to IJSYSRL?

Note, you do not have to catalogue the relocatable version of
the xxMOD, CD in this case. You can also assemble it with the
DTFxx macro in the same assembly.

Catalog the module only if you plan to use it in other programs.
That saves repeated increase in assembly size.

In the past, I would assemble the xxMOD in the same program.
After I was sure the parameters were correct and the program ran
correctly, I would then catalog the module if that made sense.
Agree 100%. Very wise words.

As far as getting the results of a CDMOD assembly into the system relo library (IJSYSRL), I've personally always used the POWER JECL "DISP=I" (insert) technique:


* $$ JOB JNM=QSORT,USER='FISH',CLASS=0,DISP=D
* $$ LST CLASS=A,DISP=D
(1) * $$ PUN CLASS=A,DISP=I
// JOB ASSEMBLE AND CATALR QSORT
(2) // OPTION NOLOG,DECK,NOLIST
(3) // ASSGN SYSLST,IGN
// EXEC ASSEMBLY
(4) PUNCH '* $$ JOB JNM=QSORT,CLASS=0,DISP=D'
PUNCH '* $$ LST CLASS=A,DISP=D'
PUNCH '// JOB CATALR QSORT'
PUNCH '// EXEC MAINT'
PUNCH ' CATALR QSORT'
END
/*
(5) // RESET SYSLST
(6) // OPTION LOG,DECK,XREF,NORLD,LIST
// EXEC ASSEMBLY
QSORT CSECT ...

...QSORT source code...

END ,
/*
// OPTION NOLOG,DECK,NOLIST
// ASSGN SYSLST,IGN
(7) // EXEC ASSEMBLY
PUNCH '/*'
PUNCH '/&&'
PUNCH '* $$ EOJ'
END
/*
/&
* $$ EOJ


1. The "DISP=I" punch disposition causes the job's punch output to be inserted into the reader queue instead. The job's generated punch output is of course not inserted into the reader until the POWER job ends.

2. In the first and last steps, you use specify the DECK and NOLIST options since you're not interested in the assembly's listing, only its punch output.

3. Again, you're not interested in the first and last step's listing, so you TEMPORARILY ignore syslst.

4. The PUNCH statements in the first/last assembly steps are used to punch the JECL/JCL needed in the subsequently "inserted" POWER job's jobstream to catalog the results of the second step's assembly. In this example case we're cataloging the object code for the QSORT routine, but in your case it would be your CDMOD assembly.

5. "Undo" the temporary ignoring of syslst, thereby restoring the default permanent syslst assignment, since for the next assembly we actually want to see the assembly listing.

6. Here we specify the DECK and LIST options, because we're interested in both the assembly's punch output as well as its listing too.

7. The last assembly step, like the first one, is used to punch the resulting catalog jobstream's ending JCL/JECL.

Submit this job and VOILA! Immediately after it runs, another POWER job will magically run to catalog the result of the previous job's output into the relocatable library.

I used the same technique to assemble and catalog macros into the E. source statement library.

But I would strongly heed Harold's advice beforehand to ensure your CDMOD is absolutely correct and the way you want it before submitting the job to catalog it into the system relo library.

Good luck! Hope that helps!

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


 

Fantastic feedback as always.

Thanks everyone.?


Jim