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
