When running a TSO program it requires a CPPL. When TSO is started by using the 
TMP, a CPPL is provided, and it can be accessed.
One of the fields that is a supported programming interface is the ECT 
(Environment Control Table), and it can be updated.

If a program or command is indirectly invoked eg from ISPF then the CPPL  may 
not be directly available and so will have to be constructed. One of the fields 
required in the CPPL is the ECT.

For many many years it so happened that the ECT pointer was 8 bytes back from 
the UPT, so code like the following could be used to find the ECT pointer and 
store it in the CPPLECT field.

    L     R1,X'21C'           POINT TO TCB                        

         ICM   R1,7,X'0B5'(R1)     POINT TO JSCB                         

         L     R1,X'108'(,R1)      POINT TO PSCB                         

         ST    R1,CPPLPSCB         SAVE PSCB POINTER                     

         L     R1,X'034'(,R1)      POINT TO UPT                          

         ST    R1,CPPLUPT          SAVE UPT POINTER                      

         LA    R1,0(,R1)           CLEAR HIGH ORDER BYTE                 

         SH    R1,=H'8'            ASSUME ECT POINTER AT UPT - 8         

         MVC   CPPLECT,0(R1)       PICK UP ECT POINTER             

With the application of the following PTFs, for the z/OS 2.1 system at least, 
this no longer works.
UA80338 UA80339 UA80340  (which ever is appropriate for the z/OS version).
For some reason it still works with the z/OS 1.13 version.
These are security/integrity fixes, hence the APAR is not shown. 
These PTFs are unlikely to be marked PE, so users that have old assembler 
programs should check to see whether any of them use this method of locating 
the ECT.
In the case of z/OS 1.13 which did not abend, it may have found storage that it 
wsa allowed to address but it may not be a real ECT, and so an overlay may 
occur. Future maintenance to TMP modules may well cause the ECT to be in a 
different location to what it has been in for 25-30 years so it is advisable to 
check any assembler programs that might be using this technique and change to 
using the correct method.

Documented way is this:                                                  

            The URLs are not hyperlinks so they have to be pasted into a 
browser. The fact that the documents are for z/OS 2.2 does not matter the steps 
are applicable to z/OS 1.13 and z/OS 2.1.                                       
                     

ECT:                                                                     

---------                                                                

http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v 

2r2.ikjd200/ikjd200100.htm?lang=en                                       

                                                                         

Pointed to by:                                                           

CPPLECT field of the CPPL                                                

TPLECT field of the TPL                                                  

LWAPECT field of the LWA                                                 

                                                                         

LWA:                                                                     

---------                                                                

http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v 

2r2.ikjd200/ikjd200292.htm?lang=en                                       

                                                                         

Pointed to by:                                                           

ASXBLWA field of the ASXB                                                

JSXL communication field of the JSXL                                     

                                                                         

ASXB:                                                                    

-----------                                                              

http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v 

2r2.iead100/iead10094.htm?lang=en                                        

                                                                         

Pointed to by:                                                           

ASCBASXB                                                                 

                                                                         

ASCB:                                                                    

-----------                                                              

http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v 

2r2.iead100/iead10059.htm?lang=en                                        

                                                                         

Pointed to by:                                                           

CVTASCBH and CVTASCBL fields of the CVT data area                        

PSAANEW field of the PSA data area                                       

PSAAOLD field of the PSA data area (Master's ASCB)                       

...                                                                      

                                                                         

PSA:                                                                     

---------                                                                

http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v 

2r2.iead300/iead300767.htm?lang=en                                       

                                                                         

PSSANEW must not be used, so finally we've reached PSAAOLD.   

I am providing this information so that sites can avoid being caught by the 
problem. I don't want to know anything, and I do not intend to get into a 
discussion about why the old method used to work, or why it doesn't now. 
Use this information or ignore it - your choice.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to