Bill,

Don't be confused :-)

Here is the "bad" code.  Note that they were receiving 3 bytes of data
in the parm, and had defined an 8 byte field for it.  PRE ptf, the
remaining 5 bytes were ignored.  That loop hole has been closed.  It was
fixed by changing ws-runid-value  to pic x(3).

WORKING-STORAGE SECTION.                                       
                                                                
 01  MISC-WORKING-STORAGE.                                      
     05  WS-LINKAGE-PARM.                                       
         10  PARM-LENGTH             PIC S9(4) COMP.            
         10  WS-RUNID-VALUE          PIC X(8).                  
* WHEN ADDING TO THIS TABLE, THESE MUST BE IN ORDER BY RUNID    
*  (LETTERS COME BEFORE NUMBERS).                               
* PURE EMD JOBS START WITH 3.  VITAL JOBS START WITH 100.       
* MISC. EMD JOBS WITH OTHER FRONT-ENDS START WITH 200.          
     05  RUNID-LIST.                                            
         10  FILLER  PIC X(08) VALUE 'ADC 0201'.                
         10  FILLER  PIC X(08) VALUE 'CDC 0101'.                
         10  FILLER  PIC X(08) VALUE 'DCS 0202'.                
         10  FILLER  PIC X(08) VALUE 'EDC 0102'.                
         10  FILLER  PIC X(08) VALUE 'E03 0003'.                
         10  FILLER  PIC X(08) VALUE 'E04 0004'.                
         10  FILLER  PIC X(08) VALUE 'E08 0008'.                
         10  FILLER  PIC X(08) VALUE 'E12 0012'.                
         10  FILLER  PIC X(08) VALUE 'E17 0017'.                 
         10  FILLER  PIC X(08) VALUE 'E19 0019'.                 
         10  FILLER  PIC X(08) VALUE 'E20 0020'.                 
         10  FILLER  PIC X(08) VALUE 'FDC 0203'.                 
         10  FILLER  PIC X(08) VALUE 'LDC 0103'.                 
         10  FILLER  PIC X(08) VALUE 'LOB 0204'.                 
         10  FILLER  PIC X(08) VALUE 'MAP 0205'.                 
         10  FILLER  PIC X(08) VALUE 'MDC 0104'.                 
         10  FILLER  PIC X(08) VALUE 'POS 0206'.                 
         10  FILLER  PIC X(08) VALUE 'VTT 0207'.                 
         10  FILLER  PIC X(08) VALUE 'W19 0919'.                 
     05  RUNID-TABLE REDEFINES RUNID-LIST                        
             OCCURS  19 TIMES                                    
             ASCENDING KEY RUNID-KEY                             
             INDEXED BY X1.                                      
         10  RUNID-KEY              PIC X(3).                    
         10  FILLER                 PIC X(1).                    
         10  RETURN-TO-USE          PIC 9(4).                    
 
 01  LK-PARM.                                                    
     05  LK-PARM-LENGTH                   PIC S9(4) COMP.        
     05  FILLER                           PIC X(08).             
                                                                 

 
 200-DETERMINE-RETURN-CODE.                                       
******************************************************************
* DETERMINE RETURN CODE BASED ON LINKAGE INPUT                    
******************************************************************
                                                                  
     SEARCH ALL  RUNID-TABLE                                      
         AT END  MOVE  +0000  TO RETURN-CODE                      
         WHEN  RUNID-KEY(X1) = WS-RUNID-VALUE                     
               MOVE  RETURN-TO-USE(X1)  TO  RETURN-CODE.          
                                                     

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of Bill Klein
Sent: Tuesday, October 11, 2005 3:53 PM
To: [email protected]
Subject: Fw: COBOL/LE runtime changes

I am confused.  Is this still the case of where you are referencing data
that was NOT passed to the subprogram's Linkage Section?  If so, I can
*guarantee* that there has NEVER been any "documented" support for
Passing a 3-byte field and having the subprogram be able to get binary
zeroes, spaces, or anything else in the 4th thru Nth byte.

Actually, there is ONE exception to this rule.  If you PASS a data item
with an Occurs Depending On it, then the subprogram must be able to
access the "maximum" length.  But other than that, you MAY only "count
on" accessing the data that is actually passed to a subprogram (or VIA
the PARM JCL parameter).

  



This e-mail transmission contains information that is confidential and may be 
privileged.   It is intended only for the addressee(s) named above. If you 
receive this e-mail in error, please do not read, copy or disseminate it in any 
manner. If you are not the intended recipient, any disclosure, copying, 
distribution or use of the contents of this information is prohibited. Please 
reply to the message immediately by informing the sender that the message was 
misdirected. After replying, please erase it from your computer system. Your 
assistance in correcting this error is appreciated.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to