Gord,
That's what I have coded so far, but here is what happens:
1. The (init_sub) returns RC=8, but based on the ASMPIPI example I let
that go as not a fatal error since the pre-init table has only empty entries
2. The first (add_entry) succeeds RC=0 in R15, but the pre-init table is
not updated at all (see debugging display below). The program being added was
compiled with Enterprise COBOL V4.2 so it is certainly a valid LE HLL
subroutine.
So why does the (add_entry) not update the pre-init table? What am I doing
wrong here?
Peter
The pre-init table is defined with four empty entries like this:
PPTBL CEEXPIT ,
CEEXPITY ,
CEEXPITY ,
CEEXPITY ,
CEEXPITY ,
CEEXPITS ,
Debugging display (thank you Cole Software!) right after (add_entry) succeeds,
sanitized (names are not what I actually use here):
XDC ===> d testpipi+4b8 2;d testpipi+4b8? 4;d testpipi+4308 2;d
testpipi+4308+c?
_ 00000000_0000EF48 8f (A.S.TSOUSERE) --- TESTPIPI.TESTPIPI+4B8, @R14+3A,
@R1+50, @R12+4B8,
_ TESTPIPI+4B8, PRIVATE+CF48
_ +4B8 8f B70992D0 00000000 *..k}....*
<=== EP address of TESTSUBR and pre-init
table index returned by (add_entry)
_ 00000000_370992D0 8f (A.S.TSOUSERE) --- TESTSUBR+0, XPRIVATE+8992D0
_ +0 8f 47F0F028 00C3C5C5 00000288 00000014 *.00..CEE...h....*
<=== TESTSUBR module in storage
_ +10 8f 47F0F001 98CEAC00 37099386 00000000 *.00.q.....lf....*
_ +20 8f 00000000 00000DFF 90ECD00C 4110F038 *..........}. .0.*
_ +30 8f 98EFF04C 07FF0000 370992D0 00000000 *q.0<......k}....*
_ 00000000_00012D98 8f (A.S.TSOUSERE) --- TESTPIPI.TESTPIPI +4308,
TESTPIPI+4308, PRIVATE+10D98
_ +4308 8f 80042508 00000003 *........*
<=== Address of CEEPIPI, two other constants,
address of pre-init table
_ +4310 8f 00000009 00012EE4 00000000 3711BDB8 *.......U......].*
_ 00000000_00012EE4 8f (A.S.TDPEFARE) --- TESTPIPI.TESTPIPI +4454,
TESTPIPI+4454, PRIVATE+10EE4
_ +4454 8f C3C5C5E7 D7E3C2D3 00000004 *CEEXPTBL....*
<=== Pre-init table after (add_entry) succeeds (RC = 0)
_ +4460 8f 00000010 00000002 00000000 40404040 *............ *
_ +4470 8f 40404040 00000000 00000000 40404040 * ........ *
_ +4480 8f 40404040 00000000 00000000 40404040 * ........ *
_ +4490 8f 40404040 00000000 00000000 40404040 * ........ *
_ +44A0 8f 40404040 00000000 00000000 00278000 * ............*
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Gord Tomlin
Sent: Thursday, March 16, 2017 5:41 PM
To: [email protected]
Subject: Re: Need help understanding use of CEEPIPI from non-LE assembler main
programs
On 2017-03-16 16:11, Farley, Peter x23353 wrote:
> Doesn't use of (add_entry) presume that you add to the table BEFORE you call
> (init_subr) or (init_subr_dp)? What if initialization is set up to be done
> first, before any entries at all appear in the table?
We do INIT_SUB, followed by ADD_ENTRY calls for all the routines to be
called via CEEPIPI. Then we do CALL_SUB for any routine using the index
returned by ADD_ENTRY.
--
This message and any attachments are intended only for the use of the addressee
and may contain information that is privileged and confidential. If the reader
of the message is not the intended recipient or an authorized representative of
the intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication
in error, please notify us immediately by e-mail and delete the message and any
attachments from your system.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN