1. You don't need the jumps
2. You could save a bit of performance by putting the
executed code in a LOCTR
3. I thought you also wanted a test form
4. Wouldn't LLILL be shorter?
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
From: IBM Mainframe Assembler List [[email protected]] on behalf
of Philippe Leite [[email protected]]
Sent: Friday, May 21, 2021 8:27 AM
To: [email protected]
Subject: Re: RES: Macro to set a bit string
Now it's correct:
MACRO
TBIT &ACTION,&ARRAY,&BIT
LCLC &TBTIX
&TBTIX SETC 'TBT'.'&SYSNDX'
LR 14,&BIT
SRDL 14,3
SRL 15,29
LAY 1,&ARRAY.(14)
AIF ('&ACTION' EQ 'ON').ACON
AIF ('&ACTION' EQ 'OFF').ACOFF
AGO .ERROR1
.ACON ANOP
&TBTIX.O DS 0H
LLILF 14,X'00000080'
SRL 14,0(15)
EXRL 14,&TBTIX.X
J &TBTIX.F
&TBTIX.X OI 0(1),0
AGO .MEXIT
.ACOFF ANOP
&TBTIX.N DS 0H
LLILF 14,X'FFFFFF7F'
SRL 14,0(15)
EXRL 14,&TBTIX.Y
J &TBTIX.F
&TBTIX.Y NI 0(1),0
AGO .MEXIT
.ERROR1 ANOP
MNOTE 8,'*** ACTION PARAMETER INVALID'
AGO .MEXIT
.MEXIT ANOP
&TBTIX.F EQU *
MEND