         TITLE 'IEEVSND9 - SYS1.BRODCAST ACCESS CONTROLLER           '  00001000
IEEVSND9 CSECT ,                                                   0001 00002000
@PROLOG  STM   @14,@12,12(@13)                                     0001 00003000
         BALR  @11,0                                               0001 00004000
@PSTART  DS    0H                                                  0001 00005000
         USING @PSTART,@11                                         0001 00006000
         L     @00,@SIZDATD                                        0001 00007000
         GETMAIN R,LV=(0)                                               00008000
         LR    @12,@01                                             0001 00009000
         USING @DATD,@12                                           0001 00010000
         ST    @13,@SA00001+4                                      0001 00011000
         LM    @00,@01,20(@13)                                     0001 00012000
         ST    @12,8(,@13)                                         0001 00013000
         LR    @13,@12                                             0001 00014000
         XC    @ZTEMPS(@ZLEN),@ZTEMPS                                   00015000
         MVC   @PC00001(4),0(@01)                                  0001 00016000
         MODID BRANCH=YES                                               00017000
         EJECT                                                          00018000
         EJECT                                                          00019000
REGS     DS    0H                                                  0020 00020000
         EJECT                                                          00021000
*         COMPTR = R1;              /* SAVE COMMON ADDRESS           */ 00022000
         LR    COMPTR,R1                                           0024 00023000
*                                   /* MOVE LIST FORMS OF MACROS   0025 00024000
*                                      TO AUTOMATIC STORAGE          */ 00025000
*         GEN (MVC   AUTOLIST(LISTEND-LISTBEG),LISTBEG);           0025 00026000
         MVC   AUTOLIST(LISTEND-LISTBEG),LISTBEG                        00027000
* /*******************************************************************/ 00028000
* /*      ENQUEUE FOR SHARED CONTROL ON RECORD1 AND OPEN             */ 00029000
* /*      SYS1.BRODCAST FOR ACCESSORS.  RECORD1 WILL BE              */ 00030000
* /*      READ AND CHECKED FOR INITIALIZATION/LEVEL 2 FORMAT         */ 00031000
* /*      BY THE I/O ROUTINE, IEEVSND5.                              */ 00032000
* /*      DCB AND RECORD1 DATA AREAS WILL BE OBTAINED BY THE         */ 00033000
* /*      I/O ROUTINE, WHICH WILL INITIALIZE THEM AND RETURN         */ 00034000
* /*      THEIR ADDRESSES IN THE COMMON DATA AREA.                   */ 00035000
* /*******************************************************************/ 00036000
*         GEN (ENQ (QNAME,REC1RBA,S,3,SYSTEM),RET=HAVE,MF=(E,ENQSL));   00037000
         ENQ (QNAME,REC1RBA,S,3,SYSTEM),RET=HAVE,MF=(E,ENQSL)           00038000
*         SDIOPARM = SDIOPARM && SDIOPARM; /* CLEAR IO PARM AREA     */ 00039000
         XC    SDIOPARM(20,COMPTR),SDIOPARM(COMPTR)                0027 00040000
*         PARMDDNM = DDNAME;        /* DDNAME IS 'SYSLBC'            */ 00041000
         MVC   PARMDDNM(8,COMPTR),DDNAME                           0028 00042000
*         P1OPEN = '1'B;            /* REQUEST OPEN                  */ 00043000
         OI    P1OPEN(COMPTR),B'10000000'                          0029 00044000
*         R1 = ADDR(SDIOPARM);      /* SET PARM REGISTER             */ 00045000
         LA    R1,SDIOPARM(,COMPTR)                                0030 00046000
*         CALL IEEVSND5;            /* INVOKE I/O ROUTINE            */ 00047000
         L     @15,@CV00170                                        0031 00048000
         BALR  @14,@15                                             0031 00049000
*         RETC = R15;               /* SAVE RETURN CODE              */ 00050000
         ST    R15,RETC                                            0032 00051000
*         IF RETC > 0               /* TEST RETURN CODE              */ 00052000
*           THEN                    /* UNSUCCESSFUL READ             */ 00053000
         L     @10,RETC                                            0033 00054000
         LTR   @10,@10                                             0033 00055000
         BP    @RT00033                                            0033 00056000
*             GOTO IOFAIL;          /* HANDLE ERROR SITUATION        */ 00057000
* /*******************************************************************/ 00058000
* /*      INVOKE THE ACCESSING ROUTINE SPECIFIED BY THE CALLER.      */ 00059000
* /*******************************************************************/ 00060000
*         R1 = COMPTR;              /* SET PARM REGISTER             */ 00061000
         LR    R1,COMPTR                                           0035 00062000
*         CALL IEEVSND;             /* INVOKE HANDLER REQUESTED    0036 00063000
*                                      BY CALLER                     */ 00064000
         L     @15,ACCESSOR-1(,COMPTR)                             0036 00065000
         LA    @15,0(,@15)                                         0036 00066000
         BALR  @14,@15                                             0036 00067000
* /*******************************************************************/ 00068000
* /*      INVOKE THE I/O ROUTINE TO CLOSE SYS1.BRODCAST AND          */ 00069000
* /*      RELEASE THE DCB AND RECORD1 DATA AREA CORE.                */ 00070000
* /*      DEQUEUE FROM RECORD1.                                      */ 00071000
* /*******************************************************************/ 00072000
*CLOSEDCB:                                                         0037 00073000
*         SDIOPARM = SDIOPARM && SDIOPARM; /* CLEAR IO PARM AREA     */ 00074000
CLOSEDCB XC    SDIOPARM(20,COMPTR),SDIOPARM(COMPTR)                0037 00075000
*         P2CLOSE = '1'B;           /* REQUEST CLOSE                 */ 00076000
         OI    P2CLOSE(COMPTR),B'00100000'                         0038 00077000
*         R1 = ADDR(SDIOPARM);      /* SET PARM REGISTER             */ 00078000
         LA    R1,SDIOPARM(,COMPTR)                                0039 00079000
*         CALL IEEVSND5;            /* CALL I/O ROUTINE              */ 00080000
         L     @15,@CV00170                                        0040 00081000
         BALR  @14,@15                                             0040 00082000
*EXITCODE:                                                         0041 00083000
*         GEN (DEQ (QNAME,REC1RBA,3,SYSTEM),RET=HAVE,MF=(E,DEQL)); 0041 00084000
EXITCODE DEQ (QNAME,REC1RBA,3,SYSTEM),RET=HAVE,MF=(E,DEQL)              00085000
*         RETURN;                   /* RETURN TO CALLER              */ 00086000
*                                                                  0042 00087000
@EL00001 L     @13,4(,@13)                                         0042 00088000
@EF00001 L     @00,@SIZDATD                                        0042 00089000
         LR    @01,@12                                             0042 00090000
         FREEMAIN R,LV=(0),A=(1)                                        00091000
@ER00001 LM    @14,@12,12(@13)                                     0042 00092000
         BR    @14                                                 0042 00093000
*IOFAIL:                                                           0043 00094000
*         FBADIO = '1'B;            /* SET FLAG FOR WARNING MSG      */ 00095000
IOFAIL   OI    FBADIO(COMPTR),B'00000100'                          0043 00096000
*         SDIORC = RETC;            /* SAVE RETURN CODE IN COMMON    */ 00097000
         L     @10,RETC                                            0044 00098000
         STC   @10,SDIORC(,COMPTR)                                 0044 00099000
*         IF RETC = BADFMT          /* CHECK RETURN CODE             */ 00100000
*           THEN                    /* DCB OPEN                      */ 00101000
         MVC   @ZT00003+3(1),BADFMT                                0045 00102000
         C     @10,@ZT00003                                        0045 00103000
         BE    @RT00045                                            0045 00104000
*             GOTO CLOSEDCB;        /* CLOSE DCB AND CLEANUP         */ 00105000
*         GOTO EXITCODE;            /* CLEANUP DONE                  */ 00106000
         B     EXITCODE                                            0047 00107000
*         GEN;                                                     0048 00108000
LISTBEG  ENQ   (QNAME,REC1RBA,S,3,SYSTEM),RET=HAVE,MF=L                 00109000
         DEQ   (QNAME,REC1RBA,3,SYSTEM),RET=HAVE,MF=L                   00110000
LISTEND  EQU   *                                                        00111000
SPARE    DC    50X'00'              PATCH AREA                          00112000
*         END IEEVSND9;                                            0049 00113000
         B     @EL00001                                            0049 00114000
@DATA    DS    0H                                                       00115000
@DATD    DSECT                                                          00116000
         DS    0F                                                       00117000
@SA00001 DS    18F                                                      00118000
@PC00001 DS    1F                                                       00119000
@SAV001  EQU   @SA00001                                                 00120000
@ZTEMPS  DS    0F                                                       00121000
@ZT00003 DC    F'0'                                                     00122000
@ZTEMPND EQU   *                                                        00123000
@ZLEN    EQU   @ZTEMPND-@ZTEMPS                                         00124000
@TEMPS   EQU   @ZTEMPS                                                  00125000
@L       EQU   @ZLEN                                                    00126000
IEEVSND9 CSECT                                                          00127000
         DS    0F                                                       00128000
@DATD    DSECT                                                          00129000
         DS    0D                                                       00130000
RETC     DS    A                                                        00131000
AUTOLIST DS    CL24                                                     00132000
         ORG   AUTOLIST                                                 00133000
ENQSL    DS    CL12                                                     00134000
DEQL     DS    CL12                                                     00135000
         ORG   AUTOLIST+24                                              00136000
@ENDDATD EQU   *                                                        00137000
@DATEND  EQU   *                                                        00138000
IEEVSND9 CSECT                                                          00139000
         DS    0F                                                       00140000
@SIZDATD DC    AL1(0)                                                   00141000
         DC    AL3(@ENDDATD-@DATD)                                      00142000
@SIZ001  EQU   @SIZDATD                                                 00143000
@CV00170 DC    V(IEEVSND5)                                              00144000
         DS    0D                                                       00145000
         DS    CL1                                                      00146000
REC1RBA  DC    AL3(0)                                                   00147000
BADFMT   DC    X'10'                                                    00148000
DDNAME   DC    CL8'SYSLBC'                                              00149000
DSFULL   DC    X'01'                                                    00150000
IOERR    DC    X'08'                                                    00151000
NOCORE   DC    X'40'                                                    00152000
OPENERR  DC    X'02'                                                    00153000
QNAME    DC    CL8'SYSIKJBC'                                            00154000
SDERR    DC    X'80'                                                    00155000
@00      EQU   00                      EQUATES FOR REGISTERS 0-15       00156000
@01      EQU   01                                                       00157000
@02      EQU   02                                                       00158000
@03      EQU   03                                                       00159000
@04      EQU   04                                                       00160000
@05      EQU   05                                                       00161000
@06      EQU   06                                                       00162000
@07      EQU   07                                                       00163000
@08      EQU   08                                                       00164000
@09      EQU   09                                                       00165000
@10      EQU   10                                                       00166000
@11      EQU   11                                                       00167000
@12      EQU   12                                                       00168000
@13      EQU   13                                                       00169000
@14      EQU   14                                                       00170000
@15      EQU   15                                                       00171000
@0       EQU   00                                                       00172000
@1       EQU   01                                                       00173000
@2       EQU   02                                                       00174000
@3       EQU   03                                                       00175000
@4       EQU   04                                                       00176000
@5       EQU   05                                                       00177000
@6       EQU   06                                                       00178000
@7       EQU   07                                                       00179000
@8       EQU   08                                                       00180000
@9       EQU   09                                                       00181000
@A       EQU   10                                                       00182000
@B       EQU   11                                                       00183000
@C       EQU   12                                                       00184000
@D       EQU   13                                                       00185000
@E       EQU   14                                                       00186000
@F       EQU   15                                                       00187000
COMPTR   EQU   @03                                                      00188000
R1       EQU   @01                                                      00189000
R15      EQU   @15                                                      00190000
R14      EQU   @14                                                      00191000
COMMON   EQU   0                                                        00192000
COMMONA  EQU   COMMON                                                   00193000
MSGFLAGS EQU   COMMONA+3                                                00194000
FLAGS    EQU   COMMONA+4                                                00195000
@NM00002 EQU   FLAGS+1                                                  00196000
@NM00003 EQU   FLAGS+2                                                  00197000
@NM00004 EQU   FLAGS+3                                                  00198000
FSOURCE  EQU   @NM00004                                                 00199000
FBADIO   EQU   @NM00004                                                 00200000
SDIORC   EQU   COMMONA+16                                               00201000
ACCESSOR EQU   COMMONA+29                                               00202000
COMMONB  EQU   COMMON+160                                               00203000
COMMONC  EQU   COMMON+284                                               00204000
SDIOPARM EQU   COMMONC+168                                              00205000
@NM00006 EQU   SDIOPARM                                                 00206000
P1OPEN   EQU   @NM00006                                                 00207000
@NM00007 EQU   SDIOPARM+1                                               00208000
P2CLOSE  EQU   @NM00007                                                 00209000
PARMDDNM EQU   SDIOPARM+12                                              00210000
IEEVSND  EQU   0                                                        00211000
COMMONPT EQU   0                                                        00212000
*                                      START UNREFERENCED COMPONENTS    00213000
PARMRCD1 EQU   COMMONC+196                                              00214000
PARMDCB  EQU   COMMONC+192                                              00215000
PARMLMCT EQU   COMMONC+188                                              00216000
PARMIOAD EQU   SDIOPARM+8                                               00217000
PARMRBA  EQU   SDIOPARM+4                                               00218000
PARMFDBK EQU   SDIOPARM+3                                               00219000
PARMKEY  EQU   SDIOPARM+2                                               00220000
P2DEVAD  EQU   @NM00007                                                 00221000
P2DEL    EQU   @NM00007                                                 00222000
P2WRDAF  EQU   @NM00007                                                 00223000
P2WRDI   EQU   @NM00007                                                 00224000
P1READ1  EQU   @NM00006                                                 00225000
P1CREATE EQU   @NM00006                                                 00226000
P1READ   EQU   @NM00006                                                 00227000
@NM00005 EQU   COMMONC+167                                              00228000
OPERID   EQU   COMMONC+160                                              00229000
IDUSRID  EQU   COMMONC                                                  00230000
COMBUF   EQU   COMMONB                                                  00231000
MSG1EXT  EQU   COMMONA+36                                               00232000
CBCCONID EQU   COMMONA+34                                               00233000
CBCMSGNO EQU   COMMONA+32                                               00234000
TEXTLENG EQU   COMMONA+28                                               00235000
COMBUFP  EQU   COMMONA+25                                               00236000
COMI     EQU   COMMONA+24                                               00237000
CSCBPTR  EQU   COMMONA+21                                               00238000
TBEG     EQU   COMMONA+20                                               00239000
RETVATT1 EQU   COMMONA+17                                               00240000
IDTBL    EQU   COMMONA+13                                               00241000
IDCNT    EQU   COMMONA+12                                               00242000
MSG1EXTP EQU   COMMONA+9                                                00243000
M1IND    EQU   COMMONA+8                                                00244000
FBADTPUT EQU   @NM00004                                                 00245000
FBADRITA EQU   @NM00004                                                 00246000
FMSG1    EQU   @NM00004                                                 00247000
FWTO2    EQU   @NM00004                                                 00248000
FERRSYN  EQU   @NM00004                                                 00249000
FCONSOL  EQU   FSOURCE                                                  00250000
FTERM    EQU   FSOURCE                                                  00251000
FERRID   EQU   @NM00003                                                 00252000
FTEXT    EQU   @NM00003                                                 00253000
FALL     EQU   @NM00003                                                 00254000
FLOGON   EQU   @NM00003                                                 00255000
FNOW     EQU   @NM00003                                                 00256000
FLIST    EQU   @NM00003                                                 00257000
FLISTALL EQU   @NM00003                                                 00258000
FDEL     EQU   @NM00003                                                 00259000
FCNS     EQU   @NM00002                                                 00260000
FMAILFL  EQU   @NM00002                                                 00261000
FUSER    EQU   @NM00002                                                 00262000
FBRDCST  EQU   @NM00002                                                 00263000
FMN      EQU   @NM00002                                                 00264000
FADDBC   EQU   @NM00002                                                 00265000
FYESBCM  EQU   @NM00002                                                 00266000
FNOMSG   EQU   @NM00002                                                 00267000
FLISTING EQU   FLAGS                                                    00268000
FOVER20  EQU   FLAGS                                                    00269000
FENDUSL  EQU   FLAGS                                                    00270000
FUPUSD   EQU   FLAGS                                                    00271000
FCHNMSG  EQU   FLAGS                                                    00272000
FBADSEND EQU   FLAGS                                                    00273000
FANYINV  EQU   FLAGS                                                    00274000
FOPEN    EQU   FLAGS                                                    00275000
FMSGA    EQU   MSGFLAGS                                                 00276000
FMSG9    EQU   MSGFLAGS                                                 00277000
FMSG8    EQU   MSGFLAGS                                                 00278000
FMSG6    EQU   MSGFLAGS                                                 00279000
FMSG5    EQU   MSGFLAGS                                                 00280000
FMSG4    EQU   MSGFLAGS                                                 00281000
FMSG3    EQU   MSGFLAGS                                                 00282000
FMSG2    EQU   MSGFLAGS                                                 00283000
VALCNT   EQU   COMMONA+2                                                00284000
TPUTRC   EQU   COMMONA+1                                                00285000
@NM00001 EQU   COMMONA                                                  00286000
*                                      END UNREFERENCED COMPONENTS      00287000
@RT00033 EQU   IOFAIL                                                   00288000
@RT00045 EQU   CLOSEDCB                                                 00289000
@EL01    EQU   @EL00001                                                 00290000
@ENDDATA EQU   *                                                        00291000
         END   IEEVSND9                                                 00292000
