Operation: Join a member MEMB1 to a group MYGROUP with LASTING=NO.
Place
X'11' in the user state field, and assign an interval
of 1000 (or 10 seconds). Register 2 points to the area where the member
information will be returned. The user-routine addresses are as follows:
- Group user-routine address is in register 4.
- Status user-routine address is in register 5.
- Message user-routine address is in register 6.
The status field must be in common storage. Register 7 has the
address of this area, obtained through the STORAGE OBTAIN macro. XCF
is to store the return code and reason code into the variables RETURN
and REASON. The code is as follows:
LA R2,MYAREA OBTAIN ADDRESS OF OUTPUT AREA X
FOR IXCJOIN
L R4,GXTADDR OBTAIN ADDRESS OF GROUP X
USER-ROUTINE FOR IXCJOIN
L R5,SXTADDR OBTAIN ADDRESS OF STATUS X
USER-ROUTINE FOR IXCJOIN
L R6,MXTADDR OBTAIN ADDRESS OF MESSAGE X
USER-ROUTINE FOR IXCJOIN
STORAGE OBTAIN,LENGTH=8,SP=228 OBTAIN STORAGE FOR STATUS X
FIELD
ST R1,FIELD1 SAVE ADDRESS OF STATUS FIELD
LR R7,R1 PLACE ADDRESS IN REGISTER FOR X
IXCJOIN INVOCATION
IXCJOIN GRPNAME=MYGROUP,ANSAREA=(R2),ANSLEN=AREALEN, X
LASTING=NO,MEMNAME=MEMB1,STATFLD=(R7), X
MEMASSOC=JOBSTEP,
GRPEXIT=(R4),STATEXIT=(R5),MSGEXIT=(R6), X
MEMDATA=DATA1,INTERVAL=INTER1, X
USTATE=STATE1,USLEN=LEN, X
RETCODE=RETURN,RSNCODE=REASON,MF=S
EXTRN GEXIT
EXTRN SEXIT
EXTRN MEXIT
MYGROUP DC CL8'MYGROUP ' GROUP NAME
MYAREA DS CL124 OUTPUT AREA TO CONTAIN DATA X
RETURNED BY IXCJOIN
DATA1 DS CL8 MEMBER DATA FOR THIS MEMBER
FIELD1 DS 1F ADDRESS OF STATUS FIELD
RETURN DS 1F RETURN CODE
REASON DS 1F REASON CODE
STATE1 DC X'11' USER STATE VALUE
LEN DC F'1' LENGTH OF USER STATE DATA
INTER1 DC F'1000' INTERVAL VALUE
GXTADDR DC A(GEXIT) ADDRESS OF GROUP USER-ROUTINE
SXTADDR DC A(SEXIT) ADDRESS OF STATUS USER-ROUTINE
MXTADDR DC A(MEXIT) ADDRESS OF MESSAGE USER-ROUTINE
AREALEN DC F'124' LENGTH OF OUTPUT AREA
MEMB1 DC CL16'MEMB1 ' MEMBER NAME