Hello: When a COBOL CALL or ENTRY is compiled, each item in the USING is used
to create code to process a parameter list of full words equal in number to the
number of items in that USING clause. So the CALL parameter list will have two
full words. The ENTRY code will only process one full word.
So, the CALL to COB#SYNC builds two fullwords of addresses, but the PROCEDURE
DIVISION USING is only going to load one BLL cell. The BLL cell for item
TPTAPI-COMMAREA will be loaded with the address of the caller's item WS-TPTAPI.
The second item WS-TPTAPI-COMMAREA is not addressible by the subroutine
(unless the second item is contiguous in storage to WS-TPTAPI and the
TPTAPI-COMMAREA item describes both areas, a somewhat unorthodox way of passing
parameters).
I would have coded two items in the subroutines ENTRY USING clause.
CALL-TPTAPI.
DISPLAY WS-TPTAPI-COMMAREA
CALL "COB#SYNC" USING WS-TPTAPI
WS-TPTAPI-COMMAREA.
- - - - - - - - - - - - - 2 Line(s) no
DISPLAY WS-TPTAPI-COMMAREA.
The subroutine's PROCEDURE USING:
PROCEDURE DIVISION USING TPTAPI-COMMAREA.
regards, Joe D'Alessandro
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN