*   DATA SET DA$ IEAVMSIT AT LEVEL 001 AS OF 05/16/86
   TITLE '  *** DA$MPF04   OS/VS2 MVS TAPE INIT WTOR RESPONSE EXIT '
***********************************************************************
*   DA$MPF04                                                          *
*                                                                     *
*       THIS EXIT SCANS ALL WTO THAT GO THROUGH MPF.  MPFLST00        *
*       IN SYS1.PARMLIB CONTAINES THE MESSAGES TO BE SCANNED AND      *
*       THE EXIT TO TAKE.                                             *
*                                                                     *
*       THIS ROUTINE:                                                 *
*                                                                     *
*         1.  REPLYS TO MESSAGE IEC709I WTOR FOR A TMS TAPE INIT.     *
*             IT WILL REPLY 'M' TO ALL IEC709I MESSAGES ISSUED        *
*             BY INIT JOB.                                            *
*                                                                     *
*         2.  MVS/XA SPL USER EXITS GC28-1147-3  P49-54               *
*                                                                     *
*                                                                     *
***********************************************************************
DA$MPF04 CSECT
DA$MPF04 RMODE ANY
DA$MPF04 AMODE 31
REG0     EQU   0
REG1     EQU   1
REG2     EQU   2
REG3     EQU   3
REG4     EQU   4
CTXTPTR  EQU   5
REG11    EQU   11
REG12    EQU   12
REG13    EQU   13
REG14    EQU   14
REG15    EQU   15
SPINPRVT EQU   230
         STM   REG14,REG12,12(REG13)
         BALR  REG12,REG0       ESTABLISH MODULE BASE
         USING *,REG12          REGISTER
         L     CTXTPTR,0(REG1) EXTABLISH ADDRESSABILITY
         USING CTXT,CTXTPTR    TO THE CTXT
***************************************************************
*        DYNAMIC STORAGE FOR THIS MODULE IS BEING OBTAINED BELOW
*        THE 16-MEG LINE BECAUSE SVC 34 REQUIRES THE MGCR PARAMETER
*        LIST TO BE IN 24-BIT ADDRESSABLE STORAGE.
***************************************************************
         GETMAIN  RU,LV=DATAEND,SP=SPINPRVT,LOC=BELOW  OBTAIN DYNAMIC
*                                                      STORAGE
         LR    REG11,REG1       ADDRESS RETURNED IN REG1
         USING DATAAREA,REG11  ADDRESSABILITY TO DYNAMIC STORAGE
         ST    REG13,SAVEAREA+4 SET BACKWARD PTR
         LA    REG15,SAVEAREA   GET ADDRESS OF SAVE AREA
         ST    REG15,8(REG13)   SET FORWARD PTR
         LR    REG13,REG15      SET REG13 TO POINT TO STANDARD
*                               SAVE AREA
*
***************************************************************
*        PICK OUT MESSAGE IEC701D
***************************************************************
*
         L     REG2,CTXTTXPJ    EXTABLISH ADDRESSABILITY
         USING CTXTATTR,REG2    TO THE MSG ATTRIBUTES
         LA    REG4,CTXTTMSG    ADDRESS OF TEXT AREA
         USING MSGTEXT,REG4     BASE TEST MAPPING
         CLC   MSGID,IEC701D    MESSAGE IEC701D
         BNE   FINISHED         NOT IEC701D
*
***************************************************************
*        WORKING WITH MESSAGE IEC701D THEREFORE REPLY TO THE
*        MESSAGE.
***************************************************************
*
MSG701D  EQU   *
         BAL   REG14,ISSUMGCR   REPLY TO IEC701D 'XX,M'
*
***************************************************************
*        STANDARD EXIT LINKAGE
***************************************************************
*
FINISHED EQU   *
         L     REG13,4(REG13)   RESTORE REG13
         FREEMAIN  RU,LV=DATAEND,A=(REG11),SP=SPINPRVT FREE THE STORAGE
         LM    REG14,REG12,12(REG13)   RESTORE CALLER'S REGISTERS
         BR    REG14             RETURN TO CALLER
*
***************************************************************
*        PROCEDURE: ISSUMSGCR
*        FUNCTION:  REPLIES TO MESSAGE IEC701D WITH 'M'
*        INPUT:     NONE
*        OUTPUT:    A REPLY COMMAND IS ISSUED VIA SVC 34
*        NOTES:     THE MGCR MACRO CAN BE USED TO ISSUE A REPLY CMD.
***************************************************************
*
ISSUMGCR EQU   *
         XC    MGCRPL(MGCRLTH),MGCRPL  CLEAR THE PARAMETER LIST
         MVC   MGCRTEXT(L'TXTINSRT),TXTINSRT  MOVE IN THE REPLY BUFFER
         MVC   REPLY,CTXTRPID          INSERT THE REPLY ID
         LA    REG1,(MGCRTEXT-MGCRPL)+L'TXTINSRT    GET MGCRPL LENGTH
         STC   REG1,MGCRLGTH          SAVE LENGTH IN THE MGCRPL
         SR    REG0,REG0              CLEAR REGISTER ZERO
         MGCR  MGCRPL                 ISSUE THE COMMAND
         BR    REG14                  RETURN TO CALLER
*
***************************************************************
*        CHARACTER CONSTANTS
***************************************************************
*
IEC701D  DC    CL8'IEC701D '          MESSAGE IEC701D
TXTINSRT DC    CL10'REPLY XX,M'      WROR REPLY
*
***************************************************************
*        STORAGE DEFINITIONS
***************************************************************
*
DATAAREA DSECT
         DS    0F
SAVEAREA DS    18F              STANDARD SAVE AREA
         DS    0F
MGCR     IEZMGCR  DSECT=NO
         ORG   MGCRTEXT
COMMAND  DS    CL6              THE REPLY COMMAND
REPLY    DS    CL2              REPLY ID
REPLYMSG DS    CL1              WTOR RESPONSE
         ORG
DATAEND  EQU   *-DATAAREA
*
***************************************************************
*        MAPPING OF THE MESSAGE TEXT
***************************************************************
*
MSGTEXT  DSECT
MSGID    DS    CL8              MESSAGE ID
JOBDATA  DS    CL8              JOB DATA(ID AND NAME)
         ORG   MSGTEXT
         DS    CL4
WTORID   DS    CL8
         IEZVX100
         END   DA$MPF04
