Hi. Could someone let me know what the below assembler code is doing?

PNBITMSK AMODE 31                 
PNBITMSK RMODE ANY                
PNBITMSK CSECT                    
         USING *,R15              
         STM   R14,R12,12(R13)    
**********************************
*                                 
**********************************
         L     R2,0(R1)           
         L     R3,4(R1)           
         USING WORKPARM,R3        
         MVI   CONDCODE,C'4'      
         MVC   BUILDUP,BLD#INIT   
         LA    R4,FCTN#TAB-4      
VFY@FCTN DS    0H                 
         LA    R4,4(R4)           
         CLI   0(R4),X'FF'        
         BE    RETURN             
         CLC   FCTN,0(R4)         
         BNE   VFY@FCTN           
         MVC   INSTR1(1),3(R4)    
         LA    R4,MASK-1          
         LA    R5,BIT#VAL-1       
         LA    R6,8               
BLD@MASK DS    0H                 
         LA    R4,1(R4)           
         LA    R5,1(R5)           
         CLI   0(R4),C'1'         
         BNE   *+10               
         OC    INSTR1+1(1),0(R5)  
         BCT   R6,BLD@MASK        
*********                         
         BAL   R7,BUILDUP         
*********                         
         BC    B'1000',CC#0       
         BC    B'0100',CC#1       
         BC    B'0010',CC#2       
CC#3     MVI   CONDCODE,C'3'      
         B     RETURN             
CC#2     MVI   CONDCODE,C'2'      
         B     RETURN             
CC#1     MVI   CONDCODE,C'1'      
         B     RETURN             
CC#0     MVI   CONDCODE,C'0'      
**********************************
*        RETURN                   
**********************************
RETURN   DS    0H                 
         LM    R14,R12,12(R13)    
         SR    R15,R15            
         BR    R14                
**********************************
*        PROGRAM CONSTANTS        
**********************************
FCTN#TAB DS    0F                 
         DC    CL3'TM ',XL1'91'   
         DC    CL3'NI ',XL1'94'   
         DC    CL3'CLI',XL1'95'   
         DC    CL3'OI ',XL1'96'   
         DC    CL3'XI ',XL1'97'   
         DC    XL1'FF'            
*                                 
BIT#VAL  DC    XL8'804020100804020
*                                 
BLD#INIT DS    0H                 
         OI    0(R2),X'00'        
         BR    R7                 
*                                 
         LTORG ,                  
**********************************
* REGISTER EQUATES.               
**********************************
R0       EQU   0                  
R1       EQU   1                  
R2       EQU   2                  
R3       EQU   3                  
R4       EQU   4                  
R5       EQU   5                  
R6       EQU   6                  
R7       EQU   7                  
R8       EQU   8                  
R9       EQU   9                  
R10      EQU   10                 
R11      EQU   11                 
R12      EQU   12                 
R13      EQU   13                 
R14      EQU   14                 
R15      EQU   15                 
*                                 
WORKPARM DSECT                    
         DS    0F                 
BUILDUP  DS    0CL6               
INSTR1   DS    CL4                
INSTR2   DS    CL2                
FCTN     DS    CL3                
MASK     DS    CL8                
CONDCODE DS    CL1                
*                                 
         END   PNBITMSK           

Thanks,
Ron T

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

Reply via email to