//JOBNAME JOB (ACCT),NAME,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //********************************************************************* //ASMCG PROC AOPT=,APARM=,LOPT=, // MAC1='SYS1.MACLIB', // MAC2='SYS1.MACLIB', // MAC3='SYS1.MODGEN' //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) //GO EXEC PGM=LOADER,COND=(5,LT,ASM), // PARM=('LIST,LET,MAP,XREF,&LOPT') //SYSLOUT DD DUMMY //SYSLIN DD DSN=*.ASM.SYSLIN,DISP=(OLD,DELETE) // PEND //********************************************************************* //STEP1 EXEC ASMCG //ASM.SYSIN DD * *********************************************************************** * SAMPLE CODE OF 'MVS ADVANCED SKILL Vol-1' CHAPTER 5.7 * * ===================================================== * * THIS PROGRAM IS SAMPLE TO TRY START, STOP AND MODIFY * * MVS OPERATOR COMMAND. GETOPCMD ACCEPTS EXEC PARM STRING, * * START COMMAND PARM STRING AND ANY OPERATOR COMMAND VIA * * MVS MODIFY. ACCEPTED STRINGS WILL BE DISPLAYED TO * * OPERATOR CONSOLE. * *********************************************************************** GETOPCMD CSECT USING *,12 DEFINE OUR BASE REGISTER LR 12,15 ESTABLISH IT SPACE , * *----------------------------------* * * LOAD COMMAND SCHEDULER * * * COMMUNICATION PARAMETER LIST * * *----------------------------------* EXTRACT ACOMLIST,FIELDS=COMM ISSUE EXTRACT COMM L R2,ACOMLIST LOAD COMLIST ADDRESS USING DCOM,R2 ADDRESS TO COMM AREA(IEZCOM) ICM R3,B'1111',COMCIBPT LOAD START COMMAND CIB BZ ACCOPCMD IF ZERO, WE ARE NOT STC USING DCIB,R3 ADDRESS TO CIB SPACE , * *----------------------------------* * * INFORM SPECIFIED START-UP PARM * * * ON START COMMAND * * * ============================== * * * S XXXXXXXX,,,PARM-TEXT * * *----------------------------------* LA RE,CIBDATA LOCATE TO COMMAND AREA LH RF,CIBDATLN LOAD COMMAND LENGTH + IF START CMD WITHOUT PARMS, + CIBDATLN CONTAIN 0 CVD RF,DOUBLE EDIT START CMD PARAMETER MSG UNPK WTO2+4+33(2),DOUBLE I OI WTO2+4+34,C'0' I CH RF,=H'32' I BNH *+4+4 I LH RF,=H'32' I LH R0,WTO2 I SH R0,=H'32' I AR R0,RF I STH R0,WTO2 I LTR RF,RF I BZ *+4+4+4+2 I LA R0,WTO2+4+36 I LA R1,32 I MVCL R0,RE V WTO MF=(E,WTO2) INFORM START CMD PARAMETER BAS RA,FREECIB FREE START COMMAND CIB SPACE , * *----------------------------------* * * SETUP FOR ACCEPTING * * * OPERATOR COMMAND * * *----------------------------------* ACCOPCMD DS 0H QEDIT ORIGIN=COMCIBPT, SET AVAILABLE COMMAND QUEUES + CIBCTR=10 SPACE , * *----------------------------------* * * WAIT FOR NEXT OPERATOR COMMAND * * * AND ACCEPT IT * * *----------------------------------* CMNDWAIT DS 0H ******** WTO 'GET OPERATOR COMMAND, WAITING NEXT COMMAND.' L R1,COMECBPT LOAD OP-COMMAND ECB ADDRESS WAIT ECB=(1) WAIT NEXT OP-COMMAND CMNDNEXT DS 0H ICM R3,B'1111',COMCIBPT LOAD NEXT CIB BZ CMNDWAIT IF NOT, WAIT AGAIN CLI CIBVERB,CIBSTOP STOP COMMAND ? BE CMNDSTOP YES, DONE SPACE , * *----------------------------------* * * ENTERED OPERATOR COMMAND * * * PROCESSING * * *----------------------------------* LH RF,CIBDATLN LOAD ENTERED COMMAND LENGTH CVD RF,DOUBLE EDIT ENTERED OP-COMMAND MSG UNPK WTO3+4+33(2),DOUBLE I OI WTO3+4+34,C'0' I CH RF,=H'32' I BNH *+4+4 I LH RF,=H'32' I LH RA,WTO3 I LH R0,WTO3 I SH R0,=H'32' I AR R0,RF I STH R0,WTO3 I LTR RF,RF I BZ *+4+4+4+4+2 I LA R0,WTO3+4+36 I LA R1,32 I LA RE,CIBDATA I MVCL R0,RE V WTO MF=(E,WTO3) ECHO BACK ENTERED COMMAND STH RA,WTO3 RESTORE ORIGIN MSG LENGTH IN + MODEL WTO PLIST BAL RA,FREECIB FREE CURRENT CIB B CMNDNEXT PICKUP NEXT QUEUED COMMAND CIB SPACE , * *----------------------------------* * * STOP COMMAND PROCESSING * * *----------------------------------* CMNDSTOP DS 0H WTO 'GET OPERATOR COMMAND, STOP COMMAND ACCEPTED.' BAL RA,FREECIB FREE CURRENT CIB SLR RF,RF SET CC=0 SVC 3 BACK TO MVS SPACE , * *----------------------------------* * * CIB FREEING SUBROUTINE * * * ============================== * * * GR3 --> CIB * * *----------------------------------* FREECIB DS 0H QEDIT ORIGIN=COMCIBPT, FREE THIS CIB + BLOCK=(3) BR RA RETURN TO CALLER *---------------------------------------------------------------------* DOUBLE DC D'0' WORK AREA ACOMLIST DC A(0) POINTER TO COMLIST WTO2 WTO 'GET OPERATOR COMMAND, STRT PARM=(XX) + ',MF=L WTO3 WTO 'GET OPERATOR COMMAND, ENTR CMND=(XX) + ',MF=L *---------------------------------------------------------------------* DCOM DSECT IEZCOM , COMMUNICATION AREA DCIB DSECT IEZCIB , CIB *---------------------------------------------------------------------* YREGS , OS: REGISTER EQUATES RA EQU 10 ADD EQUATION FOR GR10 RB EQU 11 ADD EQUATION FOR GR11 RC EQU 12 ADD EQUATION FOR GR12 RD EQU 13 ADD EQUATION FOR GR13 RE EQU 14 ADD EQUATION FOR GR14 RF EQU 15 ADD EQUATION FOR GR15 END // //