//JOBNAME JOB (ACCT),NAME,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //********************************************************************* //ASMCL PROC N=TEMPNAME,AOPT=,APARM=,LOPT=, // MAC1='SYS1.SHASMAC', // MAC2='SYS1.MACLIB', // MAC3='SYS1.MODGEN', // LLIB='MY.LOAD' <== Your target Load module library //ASM EXEC PGM=ASMA90, // PARM=('OBJ,NODECK,LC(32767),XREF(SHORT),TERM,RLD,ASA,&AOPT', // 'US(MAP,WARN(11)),SYSPARM(&APARM)') //SYSPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSLIB DD DISP=SHR,DSN=&MAC1 // DD DISP=SHR,DSN=&MAC2 // DD DISP=SHR,DSN=&MAC3 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(80,20)) //SYSLIN DD DISP=(,PASS),UNIT=SYSALLDA,SPACE=(TRK,(30,15),RLSE), // DCB=(RECFM=FB,BLKSIZE=0,LRECL=80) //LKD EXEC PGM=IEWL,COND=(5,LT,ASM), // PARM=('LIST,LET,MAP,XREF,&LOPT') //SYSPRINT DD SYSOUT=* //SYSLIN DD DSN=*.ASM.SYSLIN,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DISP=SHR,DSN=&LLIB(&N) // PEND //********************************************************************* //ACTNOTFY EXEC ASMCL,N=ACTNOTFY,LOPT=RENT //ASM.SYSIN DD * &MDLNM SETC 'ACTNOTFY' SET THIS MODULE NAME &MDLNM TITLE 'SMF USER EXIT RTN - NOTIFY STEP END INFORMATION TO SUBM+ ITTED TSO USER' *********************************************************************** * MVS ADVANCED SKILL SAMPLE PROGRAM CODE. 2011 ARTECEED CO.,LTD. * *---------------------------------------------------------------------* * MODIFICATION RECORD * * =================== * * DATE DESCRIPTION MODID * * ----------- ------------------------------------------------- ----- * * 2012/02/02 NEW MODULE CREATED. * * 2020/04/02 Correct some assembly errors by JES2 macros after * * z/OS V1R10 and V2. * *---------------------------------------------------------------------* * MODULE NAME -------- ACTNOTFY * * MODULE ATTRIBUTE --- AMODE=31,RMODE=ANY,RENT,APF(NO),NOLOCKS,NOENQS * * PSW=KEY(0),SUP,ENABLE * * ENTRY POINTS ------- ACTNOTFY * * AUTHORIZE ---------- NONE(MVS SMF ACCOUNTING EXIT ROUTINE) * *---------------------------------------------------------------------* * DESCRIPTION: * * NOTIFY ENDED STEP COMPLETION CODE MESSAGE TO LOGGED ON TSO USER * * WHO SUBMITTED RELATED BATCH JOB. * * RESTRICTION: * * NOTES: * * FOLLOWING COMMAND TO ACTIVATE EXIT ROUTINE. * * SETPROG EXIT,ADD,EX=SYS.IEFACTRT,MOD=ACTNOTFY,DSN=...lmod lib... * *---------------------------------------------------------------------* * INPUTS: * * GR0 --- CALLING REASON * * GR1 --- PARAMETER LIST * * GR12 -- MSG INFORMATION AREA FOR IEFYS * * GR13 -- CALLER GPR SAVEAREA * * GR14 -- RETURN ADDRESS * * GR15 -- ENTRY ADDRESS * * * * OUTPUTS: * * GR1 --- RETURN CODE(2ND) * * 4: DISALLOW TO WRITE RELATED SMF RECORD * * GR15 -- RETURN CODE(1ST) * * 4: CANCEL SUBSEQUENT STEPS * * * * ABENDS: * * NONE * * * * REGISTER USAGE: * * GR2 --- * * GR3 --- * * GR4 --- * * GR5 --- * * GR6 --- SMF TYPE4 RECORD AREA * * GR7 --- * * GR8 --- * * GR9 --- * * GR10 -- RETURN ADDRESS FROM INTERNAL SUB-ROUTINES * * GR11 -- (RESERVED FOR 2ND BASE) * * GR12 -- MODULE BASE(1ST) * * GR13 -- OUR LOCAL WORKAREA * * * * CALLING MODULE: * * MVS COMPONENT(MVS INSTALLATION EXIT ROUTINE) * * CALLED MODULE: * * NONE * *********************************************************************** EJECT , *---------------------------------------------------------------------* * MVS INSTALLATION EXIT ROUTINE HOUSEKEEPING PROCEDURE * * ===================================================== * *---------------------------------------------------------------------* * *----------------------------------* * * ENTRY PROCESSING * * *----------------------------------* &MDLNM CSECT , DEFINE CODE SECTION &MDLNM AMODE 31 DEFINE DEFAULT AMODE &MDLNM RMODE ANY DEFINE DEFAULT RMODE B ENTRPROC-(&MDLNM)(,15) AROUND MODULE HEADER DC AL1(8) MODULE NAME LENGTH DC CL8'&MDLNM' MODULE NAME DC CL8'&SYSDATC' ASSEMBLY DATE DC CL5'&SYSTIME' ASSEMBLY TIME DC 102X'FF' MODULE PATCH SPACE ENTRPROC DS 0H STM 14,12,12(13) SAVE CALLER REGISTERS LR 12,15 GR12 -> OUR BASE ADDRESS(1ST) USING &MDLNM,RC DEFINE OUR BASE REGISTER GETMAIN RU, OBTAIN OUR LOCAL WORKAREA + LV=LWORK,SP=230,LOC=BELOW ST 13,4(,1) SAVE CALLER SAVEAREA ST 1,8(,13) CHAIN SAVEAREA POINTER LR 13,1 GR13 -> OUR LOCAL WORKAREA USING DWORK,13 ADDRESS TO OUR LOCAL WORKAREA SPACE , * *----------------------------------* * * BUILD OUR RECOVERY ENVIRONMENT * * * ============================== * * * MANY USER EXITS SUGGEST TO USE * * * OWN RECOVERY ENVIRONMENT. * * *----------------------------------* MVC DWKESTAE(LDLESTAE),MDLESTAE INIT ESTAE PLIST ESTAE ESTAEXIT, BUILD OUR RECOVERY ENVIRONMENT + PARAM=DWORK, PASS OUR LOCAL WORKAREA + MF=(E,DWKESTAE) LTR RF,RF SUCCESSFUL ? BNZ RTRNPROC NO, RETURN SOON, WE WILL HAVE + A CRITICAL SITUATION THAT + CAN NOT BE ISSUED AS ESTAE. SPACE , L 1,4(,13) LOAD CALLER SAVEAREA LM 0,1,20(1) RELOAD GR0-1 AT ENTERED B MAINPROC DO MAIN PROCESSING SPACE , * *----------------------------------* * * EXIT PROCESSING * * *----------------------------------* EXITPROC DS 0H ESTAE 0, DELETE OUR RECOVERY ENVIRONMENT+ MF=(E,DWKESTAE) RTRNPROC DS 0H LR 1,13 GR1 --> OUR LOCAL WORKAREA L 13,4(,13) RESTORE CALLER SAVEAREA FREEMAIN RU, RELEASE OUR LOCAL WORKAREA + LV=LWORK,SP=230,A=(1) LM 14,12,12(13) RESTORE CALLER REGISTERS SLR 15,15 CLEAR RETURN CODE SLR 1,1 CLEAR RETURN CODE BSM 0,14 RETURN TO CALLER SPACE , *********************************************************************** * MAIN LINE PROCESSING * * ===================================================== * * GR0 -- CALLING REASON * * GR1 -- PLIST ADDRESS * * GR12 - OUR BASE REGISTER * * GR13 - OUR LOCAL WORKAREA(INCLUDED OUR REGISTER SAVEAREA) * *---------------------------------------------------------------------* * SAMPLE CODE OF 'MVS ADVANCED SKILL Vol-1' CHAPTER 5.5 * * ===================================================== * * INFORM STEP COMPLETION CODE TO LOGGED ON SUBMITTED USER. * *********************************************************************** MAINPROC DS 0H * *----------------------------------* * * IF ENTERED FOR STC/MOUNT/TSO, * * * DON'T PROCESSING * * *----------------------------------* L RE,PSAAOLD-PSA(0,0) LOAD OUR ASCB USING ASCB,RE ADDRESS IT ICM RE,B'1111',ASCBJBNI LOAD ASCBJBNI(CHKEY) FIELD BZ EXITPROC IF NOT BATCH JOB DROP RE FORGET ASCB SPACE , CH R0,=H'12' ENTRY FOR STEP TERMINATION ?? BNE EXITPROC NO, DONE(NO PROCESSING) SPACE , L R6,36(,R1) GR6 --> SMF RECORD ADDRESS USING SMFRCD4,R6 ADDRESS TO SMF RECORD CLI SMF4RTY,4 TYPE4 RECORD ? BNE EXITPROC NO, DONE(NO PROCESSING) SPACE , * *----------------------------------* * * EXTRACT NOTIFY USERID * * * ============================== * * * NO PROCESSING WHEN NO NOTIFY * * * PARAMETER IN JCL JOB STMT. * * *----------------------------------* IAZXJSAB READ, GET SUBSYSTEM NAME THAT DID + COMPID=DOUBLE SUBMITTED US L R1,CVTPTR LOAD CVT ADDRESS L R1,CVTJESCT-CVT(,R1) LOAD JESCT L R1,JESSSCT-JESCT(,R1) LOAD 1ST SSCT(JES2) USING SSCT,R1 ADDRESS IT CLC SSCTSNAM,DOUBLE IS HERE TARGET SSCT ? BE *+4+4+4+4 YES, PICK UP JES2 HCCT ICM R1,B'1111',SSCTSCTA LOAD NEXT SSCT BNZ *-4-4-6 LOOP FOR NEXT SSCT B EXITPROC IF ZERO, DO EXIT PROCESSING L R1,SSCTSUS2 LOAD JES2 HCCT DROP R1 FORGET SSCT SPACE , L R1,CCTHAVT-HCCT(,R1) LOAD JES2 HAVT(HASP ADDRESS + SPACE VECTOR TABLE) L RE,PSAAOLD-PSA(0,0) LOAD OUR ASCB LH RE,ASCBASID-ASCB(,RE) LOAD OUR ASID SLL RE,2 MULTIPLY BY 4 L R1,0(RE,R1) LOAD HASB OF OUR ADDRESS SPACE L R1,HSBSJB-HASB(,R1) LOAD OUR ADDRESS SPACE 1ST SJB LR RE,R1 BACKUP CURRECT SJB ADDRESS ICM R1,15,SJBSJB-SJB(R1) LOAD NEXT SJB CHAIN BNZ *-4-2 FIND LAST SJB + GR14 -> LAST SJB ADDRESS * *----------------------------------* * * DON'T REFER ACTIVE JSCB TO GET * * * JES2 JCT. BECAUSE BATCH JOB'S * * * JSCB WAS DROPPED FROM INIT'S * * * JSCB WHEN JOB STEP TASK DONE. * * * FOR EXAMPLE, BATCH JOB'S JSCB * * * CANNOT GET WHEN ISSUED WTO IN * * * IEFACTRT ROUTINE. * * *----------------------------------* ******** L RE,PSATOLD-PSA(0,0) LOAD OUR TCB ******** ICM RE,7,TCBJSCBB-TCB(RE) LOAD INITIATOR JSCB ******** L RE,JSCBACT-IEZJSCB(,RE) LOAD ACTIVE(JOB'S) JSCB ******** L RE,JSCBSSIB-IEZJSCB(,RE) LOAD LIFE-OF-JOB SSIB ******** L RE,SSIBSUSE-SSIB(,RE) LOAD JES2 SJB L RE,SJBJCT-SJB(,RE) LOAD JES2 JCT LA RF,JCTTSUID-JCT(,RE) LOCATE TO NOTIFY USERID FIELD CLI 0(RF),0 SPECIFIED NOTIFY PARAMETER ? BE EXITPROC NO, DO EXIT PROCESSING MVC USERID(7),0(RF) MOVE USERID FROM JCL JOB STMT + NOTIFY PARAMETER MVI USERID+7,C' ' PAD BLANK AT LAST BYTE SPACE , * *----------------------------------* * * BUILD AND SEND STEP END * * * STATISTICS MESSAGES * * * TO LOGGED ON USER * * * ============================== * * *----------------------------------* MVC DMSG(L'MSG001),MSG001 MOVE MSG TEXT TO WORKAREA L RE,PSAAOLD-PSA(0,0) LOAD OUR ASCB USING ASCB,RE ADDRESS IT ICM RE,B'1111',ASCBJBNI LOAD OUR CSCB LA R0,CHNAME-CSCX GET CHNAME OFFSET SLR RE,R0 GET CSCX ADDRESS L RE,CHCSCBP-CSCX(,RE) GET CSCB ADDRESS USING CSCB,RE ADDRESS IT MVC M001JOBN,CHKEY MOVE JOBNAME MVC M001JSTP,CHSTEP MOVE STEP NAME MVC M001PSTP,CHPROCSN MOVE PROC NAME(BLANKS) DROP RE FORGET CSCB TM SMF4STI,X'01' STEP WAS FLUSHED ? BO STEPFLSU YES, TM SMF4STI,X'02' STEP WAS ABENDED ? BO STEPABND YES, SPACE , STEPNEND DS 0H MVC M001STAT,=CL5'ENDED' SET STATUS = ENDED SLR R0,R0 CLEAR WORKREG ICM R0,B'0011',SMF4SCC LOAD COMPLETION CODE CVD R0,DOUBLE CONVERT TO DECIMAL UNPK M001COMP(4),DOUBLE CONVERT TO ZONE OI M001COMP+3,C'0' MAKE IT READABLE BAL RA,SENDMSG INFORM IT B ENDM001I DONE... SPACE , STEPABND DS 0H MVC M001STAT,=CL5'ABEND' SET STATUS = ENDED TM SMF4SCC,X'80' USER ABEND CODE? BO STEPABNU YES, STEPABNS DS 0H MVI M001COMP,C'S' INDICATE SYSTEM ABEND UNPK DOUBLE(4),SMF4SCC(3) CONVERT ABEND CODE(HEX) TR DOUBLE(3),HEXTRANS I MVC M001COMP+1(3),DOUBLE V BAL RA,SENDMSG INFORM IT B ENDM001I DONE... STEPABNU DS 0H MVI M001COMP,C'U' INDICATE USER ABEND ICM R1,3,SMF4SCC CONVERT ABEND CODE(DEC) N R1,=X'00000FFF' I CVD R1,DOUBLE I UNPK M001COMP+1(4),DOUBLE+5(3) I OI M001COMP+4,C'0' V BAL RA,SENDMSG INFORM IT B ENDM001I DONE... SPACE , STEPFLSU DS 0H MVC M001STAT(14),BLANKS INIT STATUS FIELDS MVC M001STAT,=CL5'FLUSH' SET STATUS = FLUSH BAL RA,SENDMSG INFORM IT B ENDM001I DONE... ENDM001I DS 0H SPACE , B EXITPROC DO EXIT PROCESSING EJECT , *********************************************************************** * I N T E R N A L S U B R O U T I N E S * *********************************************************************** *---------------------------------------------------------------------* * ISSUE TPUT TO WRITE LOGGED ON TSO USER TERMINAL * * =============================================== * * INPUT: * * NONE * * OUTPUT: * * NONE * *---------------------------------------------------------------------* SENDMSG DS 0H LA R0,L'MSG001 LOAD MSG TEXT LENGTH LA R1,DMSG LOAD MSG TEXT ADDRESS O R1,=A(X'40000000') LOAD TPUT OPTION FLAGS + EDIT,WAIT,NOHOLD,NOBREAK,HIGHP + AND GR15 CONTAIN USERIDL LA RF,USERID LOAD USERID LIST ADDR IN GR15 TPUT (1),(0),R ISSUE TPUT SVC B 0(,RA) RETURN TO CALLER EJECT , *********************************************************************** * OS ASYNC EXIT ROUTINES * * ACCESS METHOD EXIT ROUTINES * *********************************************************************** TITLE 'IEFACTRT - ESTAE ERROR RECOVERY CODE' *---------------------------------------------------------------------* * ESTAE EXIT ROUTINE * * ================== * * !! ENTERED PSW STATE(SUP/PROB) AS SAME AS AT ESTAE SVC ISSUED !! * * INPUT: * * GR0 --- OS RTM STATUS CODE * * 12: SDWA NOT AVAILABLE(MAY BE STORAGE SHORTAGE) * * GR1 --- SDWA OR TCBCMP(IF GR0=12) * * GR2 --- PARMLIST AT ESTAE ISSUED(IF GR0=12) * * GR13 -- OS STANDARD SAVEAREA(IF SDWA AVAILABLE ONLY) * * GR14 -- RETURN ADDRESS * * GR15 -- ENTRY ADDRESS * * OUTPUT: * * NONE * *---------------------------------------------------------------------* ESTAEXIT DS 0H USING *,RF DEFINE TEMP BASE CH R0,=H'12' AVAILABLE SDWA ? BNE HAVESDWA YES, DO STD PROCESSING + NO, GR0=12 + GR1=ABEND CODE(00XXX000) + GR2=ESTAE PARM A(RTRY RTN) LR RD,R2 RELOAD OUR LOCAL WORKAREA ST R1,DOUBLE PASS ABEND CODE TO RETRY RTN LA R0,NSDWARTR LOAD NO SDWA RETRY RTN ENTRY LA RF,4 INDICATE RETRY B 0(,RE) DO RETRY PROCESSING... SPACE , * *----------------------------------* * * RECOVERY PROCESSING WITH SDWA * * *----------------------------------* HAVESDWA DS 0H L RC,AOURBASE ESTABLISH OUR BASE REGISTER DROP RF FORGET TEMP BASE LR RB,R1 GR11 -> SDWA USING SDWA,RB ADDRESS IT L RD,SDWAPARM LOAD OUR LOCAL WORKAREA ST RE,DWORK+12 SAVE RETURN ADDRESS SPACE , SLR R0,R0 CLEAR WORKREG ICM R0,B'0111',SDWACMPC LOAD ABEND CODE SRL R0,12 ABEND CODE SHIFT TO LOWER BYTE SPACE , LA R1,DOUBLE LOAD WORKAREA BAS RE,CNVRTX CONVERT IT TO HEX-TEXT MVI DOUBLE+4,C'S' INDICATE SYSTEM ABEND(SXXX) MVC WTLPARM(LWTLPARM),CWTLPARM INIT WTL PLIST MVC WTLPARM+21(4),DOUBLE+4 SET ABEND CODE INTO MSG TEXT L R0,SDWAGR15 LOAD REASON CODE LA R1,DOUBLE LOAD WORKAREA BAS RE,CNVRTX CONVERT IT TO HEX-TEXT MVC WTLPARM+32(4),DOUBLE+4 SET REASON CODE INTO MSG TEXT WTL MF=(E,WTLPARM) WRITE ABENDED MSG INTO SYSLOG SPACE , L RE,DWORK+12 LOAD RETURN ADDRESS SETRP WKAREA=(11), SDWA ADDRESS + DUMP=NO, INDICATE IGNORE RTM DUMP + RETADDR=EXITPROC, RETRY ROUTINE ADDRESS + RETREGS=YES, PASS REGS FROM SDWA + FRESDWA=YES, NO LONGER NEED SDWA + RC=4 INDICATE SCHEDULING RETRY RTN B 0(,RE) DO RETRY PROCESSING... DROP RB FORGET SDWA SPACE , * *----------------------------------* * * RETRY PROCESSING FOR NO SDWA * * *----------------------------------* NSDWARTR DS 0H USING *,RF DEFINE TEMP BASE L RC,AOURBASE ESTABLISH OUR BASE REGISTER DROP RF FORGET TEMP BASE LR RD,R1 RELOAD OUR LOCAL WORKAREA SLR R0,R0 CLEAR WORKREG ICM R0,B'0111',DOUBLE LOAD ABEND CODE SRL R0,12 ABEND CODE SHIFT TO LOWER BYTE LA R1,DOUBLE LOAD WORKAREA BAS RE,CNVRTX CONVERT IT TO HEX-TEXT MVI DOUBLE+4,C'S' INDICATE SYSTEM ABEND(SXXX) MVC WTLPARM(LWTLPARM),CWTLPARM INIT WTL PLIST MVC WTLPARM+21(4),DOUBLE+4 SET ABEND CODE INTO MSG TEXT WTL MF=(E,WTLPARM) WRITE ABENDED MSG INTO SYSLOG B EXITPROC GO TO EXIT PROCESSING SPACE , CNVRTX DS 0H CONVERT GR0 TO HEX-DECIMAL LA 1,7(,1) LA 15,8 STC 0,0(,1) NI 0(1),X'0F' TR 0(1,1),CNVTRT2 SRL 0,4 BCTR 1,0 BCT 15,*-2-4-6-4-4 BR 14 CNVTRT2 DC CL16'0123456789ABCDEF' TRANS TABLE FOR HEX-CHARACTER EJECT , TITLE 'IEFACTRT - PROGRAM DATA SECTION' *********************************************************************** * DATA AREA (CONSTANTS) * *********************************************************************** AOURBASE DC A(&MDLNM) OUR BASE ADDRESS MDLESTAE ESTAE MF=L MODEL ESTAE PLIST LDLESTAE EQU *-MDLESTAE LENGTH OF MODEL CWTLPARM WTL '&MDLNM ABENDED(XXXX) GR15=@@@@',MF=L MODEL WTL PLIST LWTLPARM EQU *-CWTLPARM LENGTH OF MODEL SPACE , BLANKS DC CL16' ' HEXTRANS EQU *-X'F0',256 DC C'0123456789ABCDEF' MSG001 DC C'>>>>>>>> JJJJJJJJ SSSSSSSS/PPPPPPPP SSSSS CC=XXXX' DROP , DROP ALL BASE REGISTER LTORG , EJECT , *********************************************************************** * DATA AREA (OUTSIDE OUR BASE) * *********************************************************************** EJECT , *---------------------------------------------------------------------* * LOCAL WORKAREA * *---------------------------------------------------------------------* DWORK DSECT OUR LOCAL WORKAREA SAVEAREA DS 18F'0' MVS STANDARD REGISTER SAVEAREA SPACE , * *----------------------------------* * * MISCELLANEOUS * * *----------------------------------* DOUBLE DC D'0' DOUBLE WORD WORKAREA DWKESTAE ESTAE MF=L WORK ESTAE PLIST WTLPARM WTL '&MDLNM ABENDED(XXXX) GR15=@@@@',MF=L SPACE , USERID DC CL8' ' TARGET USERID DMSG DC (L'MSG001)C' ' NOTIFY MESSAGE M001JOBN EQU DMSG+09,8 M001JSTP EQU DMSG+18,8 M001PSTP EQU DMSG+27,8 M001STAT EQU DMSG+36,5 M001COMP EQU DMSG+45,5 DS 0D LWORK EQU *-DWORK LENGTH OF WORKAREA EJECT , *---------------------------------------------------------------------* * OS CONTROL BLOCKS * *---------------------------------------------------------------------* IHAPSA , PSA CVT DSECT=YES,LIST=YES CVT IEFJESCT , JESCT IEFJSCVT , JSCVT(SSCT) IHAASCB LIST=YES ASCB IAZJSAB , JSAB IHAASSB , ASSB IHASTCB , STCB IKJTCB LIST=YES TCB CSCB DSECT , IEECHAIN , CSCB IEZJSCB , JSCB IEZIOB , IOB(USE IN $BUFFER) IOBDSECT EQU IOBSTDRD,0,C'J' Start of standard IOB @Z22LCKP IOBLENG EQU IOBEXTEN-IOBSTDRD+L'IOBSEEK DASD IOB length @Z22LCKP SMFR DSECT , IFASMFR (4) SMF RECORD $HCCT , JES2/HCCT $HASB , JES2/HASB $SJB , JES2/SJB $JCT , JES2/JCT $HFAME , (USE IN $HCCT) $XECB , (USE IN $HCCT) $SCAT , (USE IN $HCCT) $CADDR , (USE IN $HCCT) $TQE , (USE IN $SJB) $BUFFER , (USE IN $JCT) $HASPEQU , (USE IN $JCT) IHASDWA , SDWA *---------------------------------------------------------------------* * REGISTER EQUATES * *---------------------------------------------------------------------* *------- YREGS , OS: REGISTER EQUATES AGO .NOGRNUM IF INCLUDED $HASPEQU MACRO R0 EQU 0 GENERAL REGISTER 0 R1 EQU 1 GENERAL REGISTER 1 R2 EQU 2 GENERAL REGISTER 2 R3 EQU 3 GENERAL REGISTER 3 R4 EQU 4 GENERAL REGISTER 4 R5 EQU 5 GENERAL REGISTER 5 R6 EQU 6 GENERAL REGISTER 6 R7 EQU 7 GENERAL REGISTER 7 R8 EQU 8 GENERAL REGISTER 8 R9 EQU 9 GENERAL REGISTER 9 .NOGRNUM ANOP , RA EQU 10 GENERAL REGISTER 10 RB EQU 11 GENERAL REGISTER 11 RC EQU 12 GENERAL REGISTER 12 RD EQU 13 GENERAL REGISTER 13 RE EQU 14 GENERAL REGISTER 14 RF EQU 15 GENERAL REGISTER 15 END // //