AMODE and RMODE why strange



IBM's cross-platform compiler PL/I for MVS, VM & VSE, OS/390 and Enterprise PL/I for z/OS

AMODE and RMODE why strange

Postby msnirmal1487 » Fri May 06, 2011 2:46 pm

Hi all,

I'm using the following compile JCL to compile two programs (FDUAA & FAAAA).
//CMPLINKJ  EXEC YOPTCLNK                         
//COMP.SYSLIB  DD DSN=MACRO.PRODY2K,DISP=SHR                   
//             DD DSN=MACRO.TRANY2K,DISP=SHR                   
//             DD DSN=MACRO.TESTY2K,DISP=SHR                   
//COMP.SYSIN   DD DSN=MSN.PL1.SOURCE(*),DISP=SHR     << *FAAAA or FDUAA
//LINK.SYSLMOD DD DSN=MSN.COMPL.PL1.LOAD,DISP=SHR           
//LINK.SYSIN   DD *                                                 
 NAME FAABK(R)                                                       
/*                                                                   


But wen i look at the load i could see that
the load of FDUAA is generated with AMODE = 24, RMODE = 24
but
the load of FAAAA is generated with AMODE = 31, RMODE = ANY.

Both are almost similar programs.

Can anyone please explain this behaviour.

Thanks in advance
Nirmal.
msnirmal1487
 
Posts: 10
Joined: Sat Jan 29, 2011 10:39 pm
Has thanked: 0 time
Been thanked: 0 time

Re: AMODE and RMODE why strange

Postby NicC » Fri May 06, 2011 3:50 pm

does one have dataset use and the other not?
The problem I have is that people can explain things quickly but I can only comprehend slowly.
Regards
Nic
NicC
Global moderator
 
Posts: 3025
Joined: Sun Jul 04, 2010 12:13 am
Location: Pushing up the daisies (almost)
Has thanked: 4 times
Been thanked: 136 times

Re: AMODE and RMODE why strange

Postby msnirmal1487 » Sat May 07, 2011 12:19 am

no...

FAAAA program reads 2 datasets in main program and 2 data sets in a called module.
FDUAA program reads 3 datasets in main program and 2 data sets in a called module.
msnirmal1487
 
Posts: 10
Joined: Sat Jan 29, 2011 10:39 pm
Has thanked: 0 time
Been thanked: 0 time

Re: AMODE and RMODE why strange

Postby steve-myers » Sat May 07, 2011 5:12 am

Unless you tell it differently, the Binder uses the AMODE and RMODE of the input modules (including any modules brought in from SYSLIB) to establish the AMODE and RMODE of the load module it creates. Now I'm not very familiar with the more recent PL/I releases, but the source code may have a mechanism to specify the AMODE and RMODE. This is what you should be investigating.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times


Return to PL/I