         TITLE 'IEDQNA2-NONRESIDENT CLOSEDOWN COMPLETION'               00300020
IEDQNA2  CSECT                                                          00600020
*A255000,666000                                                @ZA02080 00700061
*A696000                                                       @ZA03128 00800009
*A696000                                                       @XA09997 00850009
*   PACKAGING PROBLEM                                          @OZ09954 00850191
*A860800                                                       @OZ26164 00860111
*C858070-859540                                                @OZ26164 00870111
         SPACE 3                                                        00900020
*********************************************************************** 01200020
*                                                                     * 01500020
*TITLE:'IEDQNA2'-NONRESIDENT CLOSEDOWN COMPLETION                     * 01800020
*                                                                     * 02100020
*STATUS:CHANGE LEVEL 9                                                * 02400000
*D478200,479000                                                  A44022 02450030
*                                                                     * 02700020
*FUNCTION:THIS MODULE WAITS FOR THE COMPLETION OF ALL DISK ACTIVITY   * 03000020
*   IN THE MCP;IT SETS A CLOSEDOWN COMPLETION BIT IN THE ENVIRON-     * 03300020
*   MENT CHECKPOINT REQUEST ELEMENT;IT POSTS ECBS FOR ATTACHED        * 03600020
*   TASKS;IT WAITS FOR TERMINATION OF THE ATTACHED TASKS;IT           * 03900020
*   DETACHES THE TASKS.                                               * 04200020
*                                                                     * 04500020
*   IF REGISTER 1 IS NEGATIVE,THIS ROUTINE IS GETTING CONTROLAFTER    * 04800020
*   THE ABNORMAL TERMINATION OF A TCAM ATTACHED TASK.  THIS MODULE    * 05100020
*   DETERMINES WHICH TASK HAS ABENDED AND NOTIFIES THE USER VIA A     * 05400020
*   WTO TO THE SYSTEM CONSOLE.                                        * 05700020
*                                                                     * 06000020
*ENTRY POINT:                                                         * 06300020
*                                                                     * 06600020
*        IEDQNQ2                                                      * 06900020
*INPUT:                                                               * 07200020
*   IF REGISTER 1 IS POSITIVE,IT HAS THE ADDRESS OF AVTSAVE2.         * 07500020
*                                                                     * 07800020
*   IF REGISTER 1 IS NEGATIVE, IT HAS THE ADDRESS OF THE TCB FOR      * 08100020
*        THE ABENDED TASK.                                            * 08400020
*                                                                     * 08700020
*OUTPUT:NONE                                                          * 09000020
*                                                                     * 09300020
*EXTERNAL ROUTINES:DSPPOSTR                                           * 09600020
*                                                                     * 09900020
*EXITS-NORMAL:                                                        * 10200020
*                                                                     * 10500020
*   1.IF THERE IS ANY DISK ACTIVITY IN THE MCP,THIS MODULE EXITS      * 10800020
*   TO IEDQNA WITH 0 IN REGISTER 15.  IF TCAM IS CLOSED DOWN,IT EXITS * 11100020
*   TO IEDQNA WITH 8 IN REGISTER 15.  IF AN ATTACHED HAS ABENDED, IT  * 11400020
*   EXITS TO IEDQNA, WITH 4 IN REGISTER 15.                           * 11700020
*                                                                     * 12000020
*EXITS-ERROR:NONE                                                     * 12300020
*                                                                     * 12600020
*TABLES/WORK AREAS:                                                   * 12900020
*                                                                     * 13200020
*   AVT(AVTIOBR,AVTIOBN,AVTOSECB,AVTCKELF,AVTCKECA,AVTOPECA,          * 13500020
*       AVTINECA,AVTOLECA,AVTCKPTB,AVTOPCOB,AVTINSQB,AVTOLTQB,        * 13800020
*       AVTOCGET)                                                     * 14100020
*   IOSBE - DISK QUEUES                                        @VS41905 14400000
*   DCB                                                               * 14700020
*   DEB                                                               * 15000020
*                                                                     * 15300020
*ATTRIBUTES:SERIALLY REUSABLE                                         * 15600020
*                                                                     * 15900020
*NOTES:THE OPERATION OF THIS MODULE DEPENDS UPON AN INTERNAL REPRE-   * 16200020
*   SENTATION OF THE EXTERNAL CHARACTER SET WHICH IS EQUIVALENT TO    * 16500020
*   THE ONE USED AT ASSEMBLY TIME. THE CODING HAS BEEN ARRANGED SO    * 16800020
*   THAT REDEFINITION OF 'CHARACTER' CONSTANTS,BY REASSEMBLY, WILL    * 17100020
*   RESULT IN A CORRECT MODULE FOR THE NEW DEFINITIONS.               * 17400020
*                                                                     * 17700020
*********************************************************************** 18000020
         SPACE 3                                                        18300020
*REGISTER ASSIGNMENTS                                                   18600020
         SPACE                                                          18900020
R0       EQU   0                        TEMPORARY REG                   19200020
R1       EQU   1                        PARAMETER REG                   19500020
R2       EQU   2                                                        19800020
R3       EQU   3                                                        20100020
R4       EQU   4                        BASE FOR TCB                    20400020
R5       EQU   5                        BASE FOR DEB                    20700020
R6       EQU   6                        BASE FOR DCB                    21000020
R7       EQU   7                        BASE FOR LCB                    21300020
R8       EQU   8                        INDEX REG-NUMBER OF IOB'S       21600020
R9       EQU   9                        INDEX FOR LCB LIST-LCB LENGTH   21900020
R10      EQU   10                       BASE FOR IOB                    22200020
R11      EQU   11                       INCREMENT REG-LENGTH OF IOB     22500020
R12      EQU   12                       BASE REG                        22800020
R13      EQU   13                       SAVE REG-POINTS TO AVTSAVE2     23100020
R14      EQU   14                       RETURN REG                      23400020
R15      EQU   15                       BRANCH REG                      23700020
         SPACE                                                          24000020
         SPACE 3                                                        24600020
*STANDARD LINKAGE                                                       24900020
         SPACE                                                          25200020
         USING *,R15                                                    25500020
IEDQNA2  IEDHJN ID                                             @ZA02080 25600061
         LTR   R1,R1                    CHECK TYPE OF PARAMETER         27000020
         BM    QNA70                    BRANCH IF A TCB ADDRESS         27300020
         LR    R13,R1                   ADDRESS OF AVTSAVE2             27600020
         USING AVTSAVE2,R13                                             27900020
         STM   R14,R12,AVTSAVE2+12      SAVE REGS                       28200020
         LR    R12,R15                  SET UP BASE                     28500020
         DROP  R15                                                      28800020
         USING IEDQNA2,R12                                              29100020
         SPACE 3                                                        29400020
*ALL LINE ACTIVITY IS NOW STOPPED. NOW CHECK FOR ANY DISK ACTIVITY IN   29700020
*THE MCP. GET IOSBE'S FROM AVT AND CHECK FOR BUSY. IF THERE             30000000
*ARE ANY INCOMPLETE, THIS ROUTINE ISSUES OS WAIT ON THE I/O,THEN EXITS  30300020
*TO DISPATCHER QPOSTING ITS OWN QCB TO ITSELF WITH LOWEST PRIORITY.     30600020
         SPACE                                                          30900020
         TM    AVTBIT1,AVTDISKN         CHECK FOR DISK=YES         1119 31000020
         BZ    QNA52                    BRANCH IF DISK=NO          1119 31100020
         L     R10,AVTIOBR              ADDR OF REUS IOSBE'S   @VS41905 31200000
         L     R5,AVTADEBR              GET ADDR OF DEB        @VS41905 31300000
QNA40    EQU   *                                                        31500020
         LR    R3,R10                   SAVE ADDRESS FOR LATER COMPARE  31800020
         USING IOSBE,R10                BASE FOR IOSBE         @VS41905 32100000
         SPACE 3                                                        32400020
*INITIALIZE FOR IOSBE LOOP                                     @VS41905 32700000
         SPACE                                                          33000020
         LTR   R10,R10                  CHECK FOR NO IOSBE'S   @VS41905 33300000
         BZ    QNA50                    BRANCH IF THERE ARE NONE        33900020
         USING IEDQDEB,R5                                               35100020
         XR    R8,R8                    CLEAR INDEX REG                 35400020
         IC    R8,DEBNMEXT              GET NUMBER OF IOSBE'S  @VS41905 35700000
         LA    R11,IOSBELEN             GET LENGTH OF IOSBE    @VS41905 36100000
         SPACE 3                                                        36600020
*BEGINNING OF LOOP THROUGH IOSBE'S                             @VS41905 36900000
         SPACE                                                          37200020
QNA44    EQU   *                                                        37500020
         TM    IOSBEFLG,IOSBERDY        IS IOSBE IN READY STATE@VS41905 37800000
*                                       (I.E., NOT BUSY)       @VS41905 38000000
         BO    QNA48                    YES, BRANCH            @VS41905 38200000
         SPACE 3                                                        38400020
*IOSBE BUSY - WAIT FOR I/O TO COMPLETE                         @VS41905 38700000
         SPACE                                                          39000020
         WAIT  ECB=AVTOSECB             WAIT FOR I/O                    39300020
         SPACE                                                          39600020
         LA    R1,AVTCLOSB              ADDRESS OF CLOSEDOWN COMP'S QCB 39900020
         L     R11,AVTEA                ADDRESS OF DISPATCHER           40500020
         USING IEDQDISP,R11             BASE FOR DISPATCHER             40800020
         LA    R15,DSPPOSTR             ADDRESS OF POST ENTRY           41100020
         BALR  R14,R15                  EXIT TO DISPATCHER,POST QCB     41400020
         LA    R15,0                   SET RETURN CODE FOR DSPDISP      41700020
         B     QNA60                    RETURN TO RESIDENT RTN          42000020
QNA48    EQU   *                                                        42300020
         AR    R10,R11                  MOVE TO NEXT IOSBE     @VS41905 42600000
         BCT   R8,QNA44                 SUBTRACT FROM COUNT AND BRANCH T42900020
                                        BEGINNING OF LOOP               43200020
         SPACE                                                          43500020
*END OF LOOP THROUGH IOSBE'S                                   @VS41905 43800000
         SPACE 3                                                        44100020
QNA50    EQU   *                                                        44400020
         L     R10,AVTIOBN              GET ADDR OF NON-REUS   @VS41905 44700000
*                                       DISK IOSBE'S           @VS41905 44900000
         L     R5,AVTADEBN              GET ADDR OF DEB        @VS41905 45100000
         CR    R3,R10                   WHICH IOSBE'S WERE     @VS41905 45300000
*                                       PROCESSED              @VS41905 45600000
         BNE   QNA40                    BRANCH IF 1ST LIST(REUSABLE) WAS45900020
                                        JUST PROCESSED                  46200020
         SPACE 3                                                        46500020
*ALL DISK ACTIVITY HAS STOPPED. NOW MAKE SURE ALL ATTACHED TASKS HAVE   46800020
*TERMINATED BY POSTING THEIR TCAM ECB'S AND ISSUING OS WAIT ON THEIR    47100020
*OS ECB'S.                                                              47400020
         SPACE                                                          47700020
QNA52    EQU   *                                                   1119 47800020
QNA53    EQU   *                                                   0106 47920020
         OI    AVTCKELF,AVTCCLCN        TURN ON BIT FOR CKPT            48000020
         POST  AVTOPCOB+4               OPERATOR  CONTROL               48300020
         POST  AVTCKPTB+4               CHECKPOINT                      48600020
         POST  AVTOLTQB+4               ON LINE TEST                    48900020
         POST  AVTCWEC1                 POST ECB FOR COMMON WRITE       49200020
         LA    R1,AVTOPECA              ADDRESS OF OP. CONTROL ECB      49500020
         LA    R2,AVTCKECA              ADDRESS OF CHECKPOINT ECB       49800020
         LA    R3,AVTOLECA              ADDRESS OF ON-LINE-TEST         50100020
         LA    R4,AVTCWECA              ADDRESS OF COMMON WRITE RTN     50400020
         STM   R1,R4,QNAECBLS           PUT ADDRESS IN ECB LIST         50700020
         OI    QNAEND,X'80'             INDICATE END OF LIST            51000020
         SPACE 3                                                        51300020
         WAIT  4,ECBLIST=QNAECBLS                                       51600020
         SPACE 3                                                        51900020
*DETACH THE ATTACHED TASKS: CHECKPOINT, OPERATOR CONTROL, ON-LINE-      52200020
*TEST,COMMON WRITE ROUTINE. THE ADDRESS OF THE TCBS ARE IN THE AVT.     52500020
         SPACE                                                          52800020
         NC    AVTCKTCB(4),AVTCKTCB     CHECK FOR CHECKPOINT       0317 53100020
         BZ    QNA55                    BRANCH IF NOT ATTACHED     0317 53400020
         DETACH AVTCKTCB                                                53700020
QNA55    EQU   *                                                        54000020
         DETACH AVTOCTCB                                                54300020
         NC    AVTOLTCB(4),AVTOLTCB     CHECK FOR TOTE SPECIFIED   0317 54600020
         BZ    QNA56                    BRANCH IF NOT ATTACHED     0317 54900020
         DETACH AVTOLTCB                                                55200020
QNA56    EQU   *                                                        55500020
         NC    AVTCWTCB(4),AVTCWTCB      CHECK FOR COMWRITE        0317 55800020
         BZ    QNA57                    BRANCH IF NOT ATTACHED     0317 56100020
         DETACH AVTCWTCB                DETACH COMMON WRITE             56400020
QNA57    EQU   *                                                        56700020
         SR    R0,R0                    CLEAR                      1203 56760020
         CLI   AVTCLOSB+8,X'FF'         CHECK FOR CONSOLE ID       1203 56820020
         BE    QNA58                    BRANCH IF NOT FROM CONSOLE 1203 56880020
         IC    R0,AVTCLOSB+8            GET CONSOLE ID             1203 56940020
         OI    QNAMSG+2,X'40'           MCSFLAG=REG0 BIT IS ON     1203 57000020
QNA58    EQU   *                                                   1203 57060020
         WTO   MF=(E,QNAMSG)            CLOSEDOWN REQUEST DID NOT  1203X57120020
                                        COME FROM CONSOLE          1203 57180020
QNA59    EQU   *                                                   1203 57240020
         LA    R15,8                    SET RETURN CODE FOR USER        57300020
         SPACE 3                                                        57600020
*RETURN TO THE RESIDENT PORTION OF CLOSEDOWN COMPLETION                 57900020
         SPACE                                                          58200020
QNA60    EQU   *                                                        58500020
         RETURN (14,12),T,RC=(15)                                       58800020
         SPACE 3                                                        59100020
*DETERMINE THE ATTACHED TASK THAT HAS ABENDED                           59400020
         SPACE                                                          59700020
QNA70    EQU   *                                                        60000020
         LR    R11,R15                  SET NEW BASE REG                60300020
         USING IEDQNA2,R11                                              60600020
         DROP  R12                                                      60900020
         LPR   R1,R1                    REG IS NEGATIVE                 61200020
         LA    R1,0(,R1)                CLEAR HIGH ORDER BYTE           61500020
        LA    R10,10                   COUNT FOR TIMER LOOP       1209  61540020
         SPACE 3                                                        61580020
*BEGINNING OF STIMER LOOP WAITING FOR OPEN TO INITIALIZE TCAM WORD 1209 61620020
*IN CVT                                                                 61660020
         SPACE                                                          61700020
QNA71    EQU   *                                                   1209 61740020
         L     R9,16                    GET CVT ADDRESS                 61800020
         L     R9,AVTCVTPT(,R9)                                         62100020
         LA    R9,0(,R9)                CLEAR HIGH ORDER BYTE      1111 62170020
         LTR   R9,R9                    CHECK FOR LOADED DISPATCHER1111 62240020
         BNZ   QNA73                    BRANCH IF OPEN HAS BEEN IN 1209 62250020
         STIMER WAIT,BINTVL=QNAINTVL    WAIT FOR 10 SECONDS        1209 62260020
         BCT   R10,QNA71                SUB FROM INDEX,CHECK AGAIN 1209 62270020
         B     QNA78                    GIVE UP ON OPEN -DEFAULT   1209 62280020
         SPACE                                                          62290020
*END OF STIMER LOOP                                                     62300020
         SPACE 3                                                        62310020
QNA73    EQU   *                                                   1209 62320020
         L     R9,0(,R9)                GET AVT ADDRESS                 62400020
         DROP  R13                                                      62700020
         USING IEDQAVTD,R9              BASE FOR AVT                    63000020
         C     R1,AVTCKTCB              COMPARE CKPT TCB ADDRESS        63300020
         BNE   QNA75                    BRANCH IF NOT CHECKPOINT        63600020
         NI    AVTCKFLG,X'FF'-AVTCKTAC-AVTCKNAC IND CHECKPOINT @ZM47551 63900020
*                                       NO LONGER ACTIVE       @ZM47551 64500020
         LA    R1,QNAMSG1               ADDRESS OF ERROR MSG            64800020
         B     QNA90                    ISSUE ERROR MSG                 65100020
QNA75    EQU   *                                                        65400020
         C     R1,AVTOCTCB              COMPARE WITH TCB FOR           X65700020
                                        OPERATOR CONTROL                66000020
         BNE   QNA80                    BRANCH IF NOT OPERATOR CNTL     66300020
QNA78    EQU   *                                                   1111 66400020
         LA    R1,QNAMSG2               ADDRESS OF ERROR MSG            66600020
         XC    AVTAFE10(AVTCWINT-AVTAFE10),AVTAFE10 CLEAR THE  @ZA02080 66700061
*                                         COMWRITE POINTERS    @ZA02080 66800061
         B     QNA90                    ISSUE MSG                       66900020
QNA80    EQU   *                                                        67200020
         C     R1,AVTOLTCB              COMPARE TCB ADDRESS FOR TOTE    67500020
         BNE   QNA85                    BRANCH IF NOT TOTE              67800020
         LA    R1,QNAMSG3               ADDRESS OF TOTE MSG        0225 68100020
         MVI   AVTOLTST,AVTEZERO        CLEAR TOTE PARM TO ZERO    0225 68400020
         B     QNA90                    ISSUE ERROR MSG                 68700020
QNA85    EQU   *                                                        69000020
         LA    R1,QNAMSG4               ADDRESS OF MSG FOR COMWRITE     69300020
         NI    AVTCWFL1,X'FF'-AVTCOMWN  INDICATE COMWRT NOT ACTIVE      69600020
         MVI   AVTCWTS1,AVTEFF          MAKE COMWRITE'S...     @ZA03128 69700009
         MVI   AVTCWTS2,AVTEFF          ... ECB'S UNAVAILABLE  @ZA03128 69800009
         SPACE 3                                                        69900020
*ISSUE WTO TO NOTIFY USER OF ABEND                                      70200020
         SPACE                                                          70500020
QNA90    EQU   *                                                        70800020
         WTO   MF=(E,(1))                                               71100020
         LA    R15,4                    RETURN CODE -TO OS              71400020
         BR    R14                      RETURN TO RESIDENT MODULE      X71700020
                                        WITHOUT RESTORING REGS          72000020
         SPACE 3                                                        72300020
*ECB LIST USED TO WAIT ON TERMINATION OF ATTACHED TASKS                 72600020
         SPACE                                                          72900020
QNAECBLS DS    0F                                                       73200020
         DC    F'0'                                                     73500020
         DC    F'0'                                                     73800020
         DC    F'0'                                                     74100020
QNAEND   DS    0F                                                       74400020
         DC    F'0'                                                     74700020
         SPACE 3                                                        74800020
QNACODE  DC    X'80042000'              ABEND COMPLETION FOR TOTE  0916 74900020
QNAINTVL DC    XL4'3E8'                 BINARY INTERVAL OF 10.00SEC1209 74950020
         SPACE 3                                                        75000020
QNAMSG1  WTO   'IED096I CHECKPOINT NO LONGER ACTIVE',MF=L,             X75300020
               ROUTCDE=(2,11),DESC=4                                    75600020
QNAMSG2  WTO   'IED096I OPERATOR CONTROL NO LONGER ACTIVE',MF=L,       X75900020
               ROUTCDE=(2,11),DESC=4                                    76200020
QNAMSG3  WTO   'IED096I TOTE NO LONGER ACTIVE',MF=L,               0225X76500020
               ROUTCDE=(2,11),DESC=4                                    76800020
QNAMSG4  WTO   'IED096I COMWRITE NO LONGER ACTIVE',MF=L,               X77100020
               ROUTCDE=(2,11),DESC=4                                    77400020
QNAMSG   WTO   'IED097I TCAM IS CLOSED DOWN',ROUTCDE=(2,11),DESC=5,    X77500020
               MF=L                                                1203 77600020
         SPACE 3                                                        77700020
         TTSID                                                          77800020
         EJECT                                                 @VS41905 78000000
         TAVTD                                                          78300020
         TDISPD                                                         78600020
         TTCBD                                                          78900020
         SPACE 3                                                        79200020
*DSECT FOR DEB                                                          79500020
         SPACE                                                          79800020
         TDEBD                                                 @VS41905 80100000
         DCBD  DSORG=TQ                                                 85200020
         TLCBD                                                          85500020
         EJECT                                                 @VS41905 85800000
         TIOSBED                                               @OZ26164 85807011
         SPACE 4                                               @VS41905 85961000
*********************************************************************** 85968000
*                *                                                    * 85975000
*    IOSBEENT    *                      IOSBEIOS                      * 85982000
*                *                                                    * 85989000
*********************************************************************** 85996000
*                *                                                    * 86003000
*    IOSBEFLG    *                      IOSBECPB                      * 86010000
*                *                                                    * 86017000
*********************************************************************** 86024000
*                                  *                                  * 86031000
*            IOSBEXCC              *             IOSBERET             * 86038000
*                                  *                                  * 86045000
*********************************************************************** 86052000
*                *                                                    * 86059000
*    IOSBERET    *                      IOSBENEW                      * 86066000
*     (CONT)     *                                                    * 86073000
*********************************************************************** 86080000
*                *                                                    * 86082011
*    IOSBELCK    *                                                    * 86084011
*                *                                                    * 86086011
*********************************************************************** 86088011
*                                                                     * 86090011
*                                                                     * 86092011
*                                                                     * 86094011
*********************************************************************** 86096011
         END                                                            86100020
