Sure thanks here it is 
I just inserted a DS    CL&NUM in the last statement of DBGRPRLG and it printed 
a DS CL30
And in the first statement after the  GBLC &NUM in DBGREPLG a  DS    CL&NUM and 
the assembler generated a DS  CL0  

I'll post the assembler listing in a different reply as I am getting a message 
I exceeded number of lines allowed


           MACRO                                                         
 &NAME    DBGRPRLG &DSA=                                                
          GBLC  &NUM                                                    
          AIF   ('&DSA' EQ '').SET0                                     
 &NUM     SETC  '&DSA'                                                  
          AGO   .STORE                                                  
 .SET0    ANOP                                                          
 &NUM     SETC  '0'                                                     
 .STORE   ANOP                                                          
          STMG  R14,R12,8(R13)                                          
          LGR   R10,R13                                                 
          AIF   ('&NAME' EQ '').SETCSECT                                
 &NAME    DS    0H                                                      
          LARL  R3,&NAME                                                
          USING &NAME,R3                                                
          AGO   .SETNAB                                                 
SETCSECT ANOP                                                          
         LARL  R3,&SYSECT                                               
         USING &SYSECT,R3                                               
.SETNAB  ANOP                                                           
         USING WS_DSECT,R13                                             
         LG    R13,NAB-WS_DSECT(R13)                                    
         STG   R10,128(,R13)                                            
         LA    R11,NAB                                                  
         AIF   ('&NUM'  EQ '0').NODSA                                   
         AH    R11,=H'&NUM'                                             
.NODSA   ANOP                                                           
         STG   R11,NAB             
         MEND                                                                   
                       
          MACRO                                                          
          DBGREPLG                                                       
          LCLC  &CURCSECT                                                
          GBLC  &NUM                                                     
 &CURCSECT SETC '&SYSECT'                                                
          LG    R13,128(,R13)                                            
          LA    R11,NAB-WS_DSECT(R13)                                    
          STG   R11,NAB                                                  
          LMG   R14,R12,8(R13)                                           
          BR    R14                                                      
 WS_DSECT  DSECT                                                         
          DS    18FD                                                     
 NAB      DS    AD                                                       
          AIF   ('&NUM'   EQ '0').NODSA                                  
          DS    CL&NUM                                                   
 .NODSA   ANOP                                                           
   &CURCSECT CSECT                                                         
                      MEND
Here is the generated assembler code
-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of Bernd Oppolzer
Sent: Monday, November 18, 2019 2:34 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Global character not keeping value

Hi Joe,

IMO, this should work, if you do a PRLG 30 call before the EPLG call in the 
open code.

Could you please post the whole relevant part of the code (complete macro 
definitions and the snippets of the open code in the correct sequence), so that 
we can take a look at it?

Another suggestion: please make sure that there is no reference of &DSASUM at 
another place, which may reset its value to the empty string.

Kind regards

Bernd



Am 18.11.2019 um 00:00 schrieb Joe Reichman:
> I have a prolog and eplog macros as exit and entry to program
>
>   
>
> The prolog is coded as such
>
>                    MACRO
>
>   &NAME    PRLG    &DSA
>
>                     GBLC   &DSANUM
>
>   &DSANUM  SETC  '&DSA'
>
>   
>
> When used in the prolog
>
>   
>
>    As such
>
>   
>
>            AIF   ('&DSANUM' EQ '').NODSA
>
>            AH    R11,=H'&DSANUM'
>
>   .NODSA   ANOP
>
>   
>
>     I get the value I coded e.g. PRLG 30
>
>   
>
> GNERATES AH   R11,=H'30'
>
>   
>
> However when I used it in the EIPLOG it fails to retain its value and 
> is null
>
>   
>
>                MACRO
>
>                EPLG
>
>               LCLC  &CURCSECT
>
>              GBLC  &DSANUM
>
>   
>
>   
>
> As this code in the eplog is skipped
>
>   
>
>     WS_DSECT  DSECT
>
>                  DS    18FD
>
>   NAB      DS    AD
>
>               AIF   ('&DSANUM' EQ '').NODSA
>
>                 DS    CL&DSANUM
>
>   .NODSA   ANOP
>
>                                                      
>

Reply via email to