It's a routine to TEST, SET, AND, OR, XOR a byte. I would imagine it's for manipulating flag bytes in a language that doesn't support bitwise operations (COBOL).

On 29/04/2013 1:35 PM, Ron Thomas wrote:
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

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

Reply via email to