MACRO 00060020 MIEDQHM &X 00120020 .*A-000000-999999 @X31X8Q0 00150008 LCLA &A 00180020 .*CHANGE ACTIVITY= AS FOLLOWS: 00180522 .*A526200 S22029 00181022 .*C159600 S22029 00181122 .*A103200,243600,286800,307200,316200,423000,423600,820200 S21101 00181222 .*A904800 S21101 00181322 .*C123000,131400,300000,301800,338400,400800-402000 S21101 00181422 .*C211800-212400 S21101 00181522 .*D235200-238200,263400-270600,309600 S21101 00181622 .*C121800,447000 A42363 00181722 .*C123000,865200 A42367 00181822 .*A868800 A42367 00181922 .*C123000 A42400 00182022 .*A525000 A42400 00182122 .*D527400 A42400 00182222 .*A199200,202800 S21101 00182322 .*A707000 A47137 00182422 .*C160800-162000,528600-529800,535800 S22026 00182522 .*A109900-110100,162300,544860-545340,906300 S22026 00182622 .*A106800,131630,131952 A51765 00182722 .*A489100-489300 SA52986 00182822 .*C487200 SA52986 00182922 .*D487400-487600 SA52986 00183022 .*A103500,393700-394100,397280-397680 SA57334 00183122 .*D395400-396600 SA57334 00183222 .*A103400,110130,128460,129600,131670,261600,323400,377400,434400S22025 00183322 .*A910800,918000 S22025 00183422 .*C009000,012000,111000,121200,213300,253200,262800,328800,378600S22025 00183522 .*C385800,416400,489600,559800,772800,902400,906400,907800,909000S22025 00183622 .*C913200,915000,916800,922200,924000 S22025 00183722 .*A480600,579600,846600,847800,860400,900000,915300 SA52971 00183822 .*C639000-639400,640200-642600,849000-849930,866400-892200 SA52971 00183922 .*C901200-902280 SA52971 00184022 .*D850800 SA52971 00184122 .*A275470,484800-486800 SA51078 00184222 .*A275540-275890 SA50192 00184322 .*A381030-381570 SA51783 00184422 .*D484800-489300,909000 SA51078 00184522 .*D886800 SA58988 00184622 .*A886800-886860 SA58988 00184722 .*A018600 S21903 00184822 .*A546600 SA59006 00184922 .*A432200 SA60012 00185022 .*C002399,019800 SA60012 00185122 .*C117000-117500,532800,543600-544200,545340 SA61768 00185200 .*A532800 SA61768 00185300 .*D536400,541800-542400 SA61768 00185400 .*A654000,654600 SA61085 00185500 .*A110340,894600,897600 OX02183 00195554 .*C307720,308400 SA66611 00205554 .*A547000 @XA05307 00205661 .*A529000 X03039 00210608 * A275680 @SA71682 00215661 .*A377700 OX06353 00215761 .*C668400-677400,681600,718800-719400,720600 @SA72466 00219761 .*D680400,709200,687000 @SA72466 00223761 .*A682800,713400,723600 @SA72466 00227761 .*A894600,897900,103400 @YA06890 00231761 *A849030 @SA74018 00232700 *A605400,687600,742200 @YA07705 00233700 *C547200,553200 @SA74250 00234700 * A686400 @SA74250 00235700 *C349800,356400,360600 @XA11314 00236700 *A275680 @SA76275 00237700 *A588600 @ZA06194 00238700 *A849046 @SA76309 00238881 *A588600 @OY12977 00239100 *D589200 @OY12977 00239400 *A674400 @OY14492 00239500 *A674400 00239600 *D686700-687300 00239700 *A103800,128400 00239800 *A850280 @OZ29731 00239982 *A103800,849720 @OX16398 00240000 *C849870 @OX16398 00270000 SPACE 3 00300000 AIF ('&X' NE 'CORE').CKD 00500000 &A SETA 1 00700000 IEDQHM1 TITLE '''IEDQHM'' - DESTINATION SCHEDULER (CORE ONLY)' S22025 00900022 IEDQHM1 CSECT 00960020 AGO .GO 01020020 .CKD AIF ('&X' NE 'DISK').BOTH 01080020 &A SETA 2 01140020 IEDQHM2 TITLE '''IEDQHM'' - DESTINATION SCHEDULER (DISK ONLY)' S22025 01200022 IEDQHM2 CSECT 01260020 AGO .GO 01320020 .BOTH ANOP 01380020 &A SETA 3 01440020 IEDQHM3 TITLE '''IEDQHM'' - DESTINATION SCHEDULER (DISK AND CORE)' 01500022 IEDQHM CSECT 01560020 .GO ANOP 01620020 ENTRY IEDQHM02 01680020 * 01740020 *********************************************************************** 01800020 * * 01860020 AIF ('&X' NE 'CORE').TAG1 S21903 01864022 * MODULE NAME = IEDQHM1 ( CORE ) * 01868000 AGO .TAG3 S21903 01872022 .TAG1 AIF ('&X' NE 'DISK').TAG2 S21903 01876022 * MODULE NAME = IEDQHM2 ( DISK ) * 01880000 AGO .TAG3 S21903 01884022 .TAG2 ANOP S21903 01888022 * MODULE NAME = IEDQHM ( MIXED - CORE / DISK ) * 01892000 .TAG3 ANOP S21903 01896022 * * 01900000 * DESCRIPTIVE NAME = DESTINATION SCHEDULER * 01920000 * * 01940000 * COPYRIGHT = 'NONE' * 01960000 * * 01980000 * STATUS: CHANGE LEVEL 8 @Z30X8QE 02000008 * * 02040020 *FUNCTION -- THIS SUBTASK ASSIGNS A BUFFER TO A LOCATION IN A * 02100020 * MESSAGE QUEUE3 DATA SET (REUSEABLE DISK, NONREUSEABLE DISK, OR * 02160020 * CORE AS APPLICABLE). THIS BUFFER WILL BE CHAINED TO OTHER * 02220020 * BUFFERS OF THIS MESSAGE AND THIS MESSAGE WILL BE CHAINED TO * 02280020 * OTHER MESSAGES IN THE SAME QUEUE. * 02340020 * THE HEADER OF THE MESSAGE MUST CONTAIN THE ADDRESS OF THE * 02400020 * NEXT TEXT SEGMENT AND THE NEXT MESSAGE HEADER. ALL BUFFERS * 02460020 * MUST HAVE THE ADDRESS OF THE NEXT TEXT (IF IT IS NOT THE * 02520020 * LAST BUFFER), THE ADDRESS OF THE ADDITIONAL RECORES (IF ANY), * 02580020 * AND IF IT IS NOT A HEADER, IT WILL HAVE THE ADDRESS OF ITS * 02640020 * HEADER. * 02700020 * DISK QUEUEING * 02760020 * IF THE MESSAGE IS DISK QUEUED, THE HEADER AND LAST TEXT * 02820020 * BUFFERS ILL CONTAIN THE QBACK CHAIN POINTERS. QBACK CHAIN IS * 02880020 * A TIME SEQUENTIAL RECORD OF THE EVENTS (BOTH SENDING AND * 02940020 * RECEIVING) FOR THIS QCB. IF THE QCB REPRESENTS THE DESTINATION * 03000020 * OF THE MESSAGE, THE HEADER WILL APPEAR IN THE QBACKCHAIN FROM * 03060020 * THAT QCB. IF THE QCB REPRESENTS THE SOURCE OF THE MESSAGE * 03120020 * (LINE OR TERMINAL) THE LAST BUFFER OF THE MESSAGE WILL APPEAR * 03180020 * IN THE QBACK CHAIN OF THE QCB. * 03240020 * DISK MESSAGE QUEUEING (REUSABLE OR NONREUSABLE) WILL BE * 03300020 * ACCOMPLISHED BY ASSIGNING RECORD NUMBERS AHEAD ON DISK. * 03360020 * THERE EXISTS A VALUE CALLED 'ADDRESS' FOR BOTH REUSABLE (RADDR) * 03420020 * AND NONREUSABLE (NADDR) DISK. THERE IS A CORRESPONDENCE * 03480020 * BETWEEN THE VALUE OF ADDRESS AND THE PHYSICAL LOCATION * 03540020 * (MBBCCHHR) OF THE RECORD ON DISK. WHEN ADDRESS MODULO * 03600020 * (THE TOTAL NUMBER OF RECORDS IN THE DATA SET) IS USED, THIS * 03660020 * IS A ONE TO ONE CORRESPONDENCE. WHEN A 'HEADER NOT LAST' * 03720020 * BUFFER IS RECEIVED, A VALUE OF ADDRESS IS RESERVED FOR THE NEXT * 03780020 * HEADER FOR THE QCB AND THE NEXT TEXT BUFFER OF THIS MESSAGE. * 03840020 * SEQUENTIAL VALUES OF ADDR ARE RESERVED FOR ANY ADDITIONAL * 03900020 * RECORDS REQUIRED. WHEN A 'TEXT NOT LAST' IS RECEIVED LOCA- * 03960020 * TIONS FOR NEXT TEXT AND ADDITIONAL RECORDS ARE RESERVED. * 04020020 * WHEN A 'LAST' BUFFER IS RECEIVED, NO NEXT TEXT IS RESERVED. * 04080020 * CORE QUEUEING * 04140020 * THE CORE QUEUES DATA SET IS NOT DIVIDED INTO NUMBERED * 04200020 * RECORDS. ONE RECORD CORRESPONDS IN SIZE TO ONE BUFFER UNIT * 04260020 * UNITS ARE NOT ASSIGNED AHEAD AS IN DISK QUEUES, HOWEVER THE * 04320020 * MESSAGES IN ONE QUEUE ARE CHAINED TOGETHER AND THE BUFFERS * 04380020 * OF A MESSAGE ARE CHAINED TOGETHER, THERE IS A VALUE CADDR * 04440020 * SIMILIAR TO ADDRESS ON DISK WHICH CORRESPONDS TO THE NUMBER OF * 04500020 * UNITS WHICH ARE USED OUT OF THE NUMBER RESERVED FOR CORE * 04560020 * QUEUES. CHAINING IS NOT DONE BY RECORD NUMBER FOR CORE QUEUES * 04620020 * BUT BY THE ACTUAL ADDRESS. THE ADDITIONAL RECORDS AND * 04680020 * LOCATED THROUGH THE TIC FIELDS OF THE BUFFER UNITS WHILE IN * 04740020 * THE CORE QUEUE. WHEN A BUFFER IS RECIEVED, IF IT IS A HEADER * 04800020 * IT IS CHANED TO THE PREVIOUS HEADER IN THE QUEUE. IF IT IS A * 04860020 * TEXT, IT IS CHAINED TO THE PREVIOUS BUFFER OF THIS NESSAGE. A 04920020 * NUMBER OF UNITS CORRESPONDING TO THE NUMBER OF UNITS IN THE 04980020 * BUFFER WILL BE REMOVED FROM THE FREE CORE QUEUE UNITS (LINE * 05040020 * BUFFER POOL). IF THIS QCB'S MESSAGES ARE TO BE CORE QUEUED ONLY * 05100020 * THESE UNITS ARE POSTED TO THE AVAILABLE BUFFER POOL IN * 05160020 * RETURN FOR THE BUFFER. THE BUFFER IS THEN PLACED THE THE * 05220020 * QCB'S CORE QUEUE OF MESSAGES. IF THE MESSAGE IS THE BE DISK * 05280020 * QUEUED ALSO, THE MESSAGE WILL BE COPIED INTO THESE UNITS AND * 05340020 * BUFFER FORMED WILL BE PLACED IN THE QCB'S MESSAGE QUEUE. * 05400020 * THE ORIGINAL BUFFER WILL THEN BE DISK QUDUED. * 05460020 * * 05520020 *ENTRY POINTS -- THIS ROUTINE HAS TWO ENTRY POINTS * 05580020 * 1. IEDQHM / FROM THE DISPATCHER WITH A FULL BUFFER TO BE * 05640020 * QUEUED. * 05700020 * CALLING SEQUENCE - * 05760020 * L R15,ENTRY POINT ADDRESS * 05820020 * L R1,BUFFER ADDRESS * 05880020 * BR R15 * 05940020 * 2. IEDQHM02 / FROM THE REUS-RECOPY SUBTASK WITH ONE UNIT OF * 06000020 * A BUFFER TO BE QUEUED. * 06060020 * CALLING SEQUENCE * 06120020 * L R15,ENTRY POINT ADDRESS * 06180020 * L R1,UNIT ADDRESS * 06240020 * BALR R14,R15 * 06300020 * * 06303020 * 3. IEDQHM03 -- CALLED BE THE REUS COPY SUBTASK WITH A * 06306020 * PRIORITY QCB * 06309020 * CALLING SEQUENCE -- L R15,ADDR HM03 * 06312020 * BALR R14,R15 * 06315020 * RETURN CODES -- IF RETURN IS BR R14 - THE MESSAGE ON THE * 06318020 * PRIORITY QCB IS NOT BEING SENT * 06321020 * IF RETURN IS B 4(R14) - THE MESSAGE IS BEING SENT * 06324020 * * 06327020 * 4. FINDSTCB -- CALLED FROM REUS - COPY WITH A DESTINATION * 06330020 * QCB. UPON RETURN THE SEND SCHEDULER WILL HAVE BEEN * 06333020 * NOTIFIED THAT THERE IS A MESSAGE TO SEND. * 06336020 * CALLING SEQUENCE - L R12,HMBASE * 06339020 * L RX,OFFSET OF SUBROUTINE * 06342020 * BAL R14,R12+RX * 06345020 * * 06360020 *INPUT -- R15 WILL CONTAIN THE ENTRY POINT ADDRESS * 06420020 * R1 - THE BUFFER ADDRESS * 06480020 * R13 THE AVT ADDRESS AND SAVE AREA ADDRESS * 06540020 * * 06600020 *OUTPUT -- THE BUFFER WILL CONTAIN THE QUEUEING POINTERS MENTIONED * 06660020 * ABOVE. * 06720020 * IF THE BUFFER WAS DISK QUEUED THE BUFFER WILL BE POSTED TO THE * 06780020 * DISK O /I QCB TO BE WRITTEN ON DISK. * 06840020 * IF THE BUFFER WAS CORE QUEUED ONLY, A CORRESPONDING NUMBER OF * 06900020 * UNITS WILL BE RETURNED TO THE AVAILABLE BUFFER POOL. * 06960020 * IF THE ENTRY WAS FROM COPY SUBTASK WITH A CORE ONLY BUFFER, * 07020020 * THE FERE CORE UNIT WILL BE RETURNED TO COPY. * 07080020 * * 07140020 *EXTERNAL ROUTINES -- DSPPOSTR - TO INSERT AN ELEMENT BY PRIORITY * 07200020 * ON THE READY QUEUE. * 07260020 * DSPUNAVR - TO REMOVE A STCB FROM THIS QCBS STCB CHAIN AND * 07320020 * INSERT IT BY PRIORITY INTO THE STCB CHAIN OF ANORHER QCV. * 07380020 * AVTRNMPT - TO FIND THE ADDRESS OF THE TERM TABLE ENTRY FROM * 07440020 * THE OFFEST INTO THE TERM NAME TABLE * 07500020 * * 07560020 *EXITS-NORMAL -- TO THE DISPATCHER AT DSPPOST OR DSPDISP OR IF * 07620020 * CALLED BY COPY - TO THE CALLING ROUTINE WITH R15 =0 * 07680020 * * 07740020 *EXITS -ERROR -- NONE * 07800020 * * 07860020 *TABLES/WORK AREAS -- DSECTS- LCB,DCB,SCB,PREFIX,AVT 4,QCB * 07920020 * AVT FIELDS - RADDR,NADDR,CADDR * 07980020 * * 08040020 *ATTRIBUTES -- REUSEABLE,REFRESHABLE,ENABLED,RESIDENT * 08100020 * * 08160020 *NOTES -- THE OPERATION OF THIS MODULE DOES NOT DEPEND UPON A * 08220020 * PARTICULAR INTERNAL REPRESENTATION OF THE EXTERNAL CHARACTER * 08280020 * SET. * 08340020 * * 08400020 *********************************************************************** 08460020 EJECT 08520020 R0 EQU 0 WORK REGISTER 08580020 R1 EQU 1 ELEMENT ADDRESS FORM DISP 08640020 * PARAMETER TO TERM NAME TBL 08700020 * ELEMENT ADDR TO DISP 08760020 R2 EQU 2 ADDRESS OF THE VALUE 08820020 * OF ADDRESS BEING USED 08880020 * (RADDR,NADDR) 08940020 * ADDRESS OF QCB TO POST T TO 09000020 RSCB EQU 3 ADDR OF SCB 09060020 RLCB EQU 4 ADDR OF LCB 09120020 R5 EQU 5 WORK REGISTER 09180020 * ADDR OF BUFFER FORMED 09240020 * FROM CORE UNITS 09300020 RPREFIX EQU 6 ADDRESS OF BUFFER 09360020 RPRF EQU 6 ADDRESS OF BUFFER 09420020 R6 EQU 6 09480020 RQCB EQU 7 ADDRESS OF MASTER QCB 09540020 R7 EQU 7 WORK REGISETER 09600020 RPQ EQU 8 ADDR OF PRIORITY QCB 09660020 R9 EQU 9 WORK REGISTER 09720020 R10 EQU 10 WORK REGISTER 09780020 R11 EQU 11 WORK REGISTER 09840020 * DISP BASE REG 09900020 R12 EQU 12 PROGRAM BASE 09960020 R13 EQU 13 AVT ADDRESS 10020020 R14 EQU 14 NUMBER OF CORE UNITS TO GET 10080020 * WORK REG. AND RETURN REG 10140020 R15 EQU 15 WORK REGISTER 10200020 *********************************************************************** 10260020 SPACE 2 10320020 ONE EQU 1 . S22025 10340022 TWO EQU 2 . CONSTANT @YA06890 10345061 HEX01 EQU X'01' TEST FOR MULTI-UNIT BFR SA57334 10350022 MULT4 EQU 2 . VALUE FOR RRN ADJUSTMENT S21101 10370020 DIV4 EQU 2 . VALUE FOR RRN ADJUSTMENT S21101 10372020 ROUNDER EQU 3 . VALUE FOR RRN ADJUSTMENT S21101 10374020 INCR EQU 4 . VALUE FOR ADDR INCREMENT S21101 10376020 THREE EQU 4 10380020 D24 EQU 24 DISPLACEMENT @OX16398 10440000 D28 EQU 28 DISPLACEMENT @OX16398 10500000 REGSAVE EQU 28 OFFSET INTO SAVEAREA @XM05843 10560000 PRIEXOFS EQU 13 OFFSET TO PRIEXIT @XM05843 10620000 ADDR EQU 7 MASK FOR ICM STCM @XM05843 10680000 SPACE 1 10740020 * PRFTIC FLAGS WILL BE AS FOLLOWS 10800020 * X'28' - TO BE QUEUED ON REUSABLE DISK 10860020 * X'18' - TO BE QUEUED ON NONREUSABLE DISK 10920020 * X'40' - TO BE QUEUED IN MS QUEUES 10980020 CONC EQU X'20' . S22026 10990022 CLOCK EQU X'80' . S22026 11000022 INTVL EQU X'70' . S22026 11010022 SPACE 2 . S22025 11013022 *****************************************************************S22025 11016022 * S22025 11019022 *** CONDITION CODE MASKS S22025 11022022 * S22025 11025022 *****************************************************************S22025 11028022 SPACE 2 . S22025 11031022 ZEROES EQU 8 . ZEROES CONDITION S22025 11034022 FOUR EQU 4 . CONSTANT OX02183 11037054 EJECT 11040020 USING AVTSAVE2,R13 . S22025 11100022 USING IEDQLCB,RLCB 11160020 USING IEDQPRF,RPRF 11220020 USING IEDQSCB,RSCB 11280020 USING IEDQQCB,RQCB 11340020 USING IEDQPQCB,RPQ 11400020 USING IEDQDISP,R11 11460020 USING IEDQDATA,R2 11520020 SPACE 2 11580020 DC AL1(DSPMCPL6) 11640020 DC AL3(FINDSTCA) ADDRESS OF SUBROUTINE SA61768 11700000 * CALLED BY QFA AND 19RP TO ACTIVATE THE SEND SA61768 11720000 * SCHEDULER SA61768 11740000 DC X'00',X'00' 11760020 SPACE 2 11820020 USING *,12 11880020 SPACE 1 11940020 DESTSCH EQU * 12000020 LA R12,0(0,R15) SET BASE REG 12060020 IEDQHM&A IEDHJN QUEUE . MODULE ID AND DATE S22025 12120022 LR RPREFIX,R1 12480020 L RLCB,PRFLCB-1 12540020 L RSCB,LCBSCBA-1 SCB ADDR 12600020 L RQCB,SCBDESTQ-1 12660020 LA RPQ,QCBMSIZE(RQCB) ADDR OF FIRST PQCB 12720020 LA R11,QCBPEND-IEDQPQCB SIZE OF A PRTY QCB 12780020 SR R10,R10 12840020 TM LCBSTAT1,LCBRECVN IS RECEIVE BIT ON? @AS05843 12840700 BZ ENDEXTST NO, NO EXIT USED @AS05843 12841400 TM PRFSTAT1,PRFDUPLN DUPLICATE HEADER? @AS05843 12842100 BZ ENDEXTST NO, NO EXIT USED @AS05843 12842800 L R15,AVTRDYA GET ADDR OF USER EXITS @AS05843 12843500 ICM R15,ADDR,PRIEXOFS(R15) GET ADDR OF PRIEXITS @AS05843 12844200 BZ ENDEXTST NO EXIT SPECIFIED @AS05843 12844900 MVI SCBPRI,AVTEZERO SET ZERO PRIORITY @AS05843 12846000 STM R2,R12,AVTSAVE3+REGSAVE SAVE REGS @AS05843 12846800 BALR R14,R15 BRANCH TO USER @AS05843 12847600 LM R2,R12,AVTSAVE3+REGSAVE RESTORE REGS @AS05843 12848400 STC R15,SCBPRI SET NEW PRIORITY @AS05843 12849200 ENDEXTST EQU * @AS05843 12850000 TM PRFSTAT1,PRFDUPLN DUP HEADER S22025 12850800 BO BUMPCNT YES, BUMP COUNT S22025 12852022 TM PRFSTAT1,PRFNLSTN EOM S22025 12858022 BO CNTOK NO, DON'T BUMP COUNT S22025 12864022 BUMPCNT EQU * S22025 12870022 LH R9,QCBMSGCT . THE COUNT OF MESSAGES S22025 12876022 LA R9,1(,R9) . SHOULD BE INCREMENTED S22025 12882022 STH R9,QCBMSGCT . EACH EOM OR DUP HEADER S22025 12888022 CNTOK EQU * S22025 12894022 TM PRFSTAT1,PRFNHDRN IS THIS A HEADER 12900020 BO TXTBFR BR NO 12960020 TM PRFSTAT1,PRFERMGN IS THIS AN ERROR MSG S22025 12980022 BO COMPARE YES, BRANCH S22025 13000022 NI SCBQTYPE,X'0F' . CLEAR QTYPE FOR HDRS 13020020 TM LCBSTAT1,LCBINITN INITIAE MODE 13080020 BZ COMPARE . BRANCH NO INITIATE MODE S21101 13140021 SPACE 13163021 L R15,QCBDCBAD-1 . ADDR OF DEST DCB A51765 13167022 TM DCBPCI-IHADCB(R15),PCISEND IS PCI=A/PCI=X S22025 13171022 * SPECIFIED FOR SEND S22025 13175022 BZ NOTINIT . BR IF NO PCI S22025 13179022 CLI LCBRSKEY,DSPBUFSC . INITIATE FUNCTION NOT S21101 13186021 BNE OUT . SUPPORTED FOR BUFFERED S21101 13190621 * TERMINAL AS SOURCE S21101 13195221 NOTINIT EQU * . A51765 13197222 NI LCBSTAT1,X'FF'-LCBINITN . TREAT AS FEFO MESSAGE S21101 13199821 COMPARE EQU * 13200020 CLC SCBPRI(1),QCBPRIPQ IS THIS MSG PRTY SAME 13260020 * AS THIS QCB PRTY 13320020 BNL OUT . BR IF THIS MSG IS HI OR EQ 13380020 * LAST QCB HAS 0 PRI 13440020 LA R10,1(,R10) . SET OFFSET TO NEXT QCB 13500020 AR RPQ,R11 . ADDR OF NEXT PQCB 13560020 B COMPARE . GO LOOK AT IT 13620020 SPACE 1 13680020 NOINIT EQU * 13740020 * IF QCB IS FOR 24 HOUR DELAY DO NOT REMOVE IT 13800020 NI LCBSTAT1,LCBINITF RESET INIT MODE 13860020 B GETSIZE 13920020 POSTSUB EQU * 13980020 LA R2,AVTBFRTB ADDR OF BFRRTN QCB 14040020 MVI PRFPRI-IEDQPRF(R1),PRIBFRTB 14100020 POSTSUBA EQU * 14160020 ST RSCB,AVTSAVE3 14220020 BAL R14,POSTA 14280020 L RSCB,AVTSAVE3 14340020 L RQCB,SCBDESTQ-1 RESTORE QCB ADDR 14400020 BR R10 . RETURN 14460020 SENDINIT EQU * 14520020 TM LCBSTAT1,LCBINITN+LCBRECVN 14560020 * RECEIVING AN INITIATE MODE MESSAGE 14600020 BCR 14,R14 . BR NOT INIT 14640020 TM LCBINSRC+2,XXXON . NOW BEING SENT 14700020 BCR 1,R14 . BR NOT GEING SENT 14760020 L R1,LCBINSRC-1 . ADDR OF DEST LCB 14820020 TM LCBSTAT1-IEDQLCB(R1),LCBINITN . STILL BEING SENT 14880020 BCR 14,R14 . BR NOT BEING SENT 14940020 B 4(R14) BR INIT BEING SENT 15000020 TXTBFR EQU * 15060020 IC R10,SCBPRI . OFFSET TO PRI QCB 15120020 MR R10,R10 . 15180020 AR RPQ,R11 + QCB ADDR 15240020 B GETSIZE . 15300020 SPACE 1 15360020 OUT EQU * 15420020 STC R10,SCBPRI REPLACE PRI WITH OFFSET 15480020 TM PRFSTAT1,PRFDUPLN DUPL HDR 15720020 BO POSTDISK BR YES TO BYPASS NEXT THING 15780020 TM LCBSTAT1,LCBINITN+LCBRECVN 15820020 * RECEIVING AN INITIATE MODE MESSAGE 15860020 BNO GETSIZE 15900020 TM SCBSTATE,SCBMSGLN+SCBLCK1N . LOCK MODE 15920020 BNZ NOINIT . IF LOCK - NO INIT MODE 15940020 TM QCBDSFLG,QCBTSQ TIME-SHARING QUEUEING? S22029 15960022 BO NOINIT BRANCH ON YES TSO 16020020 CLI QCBSTVTO,CONC . DEST A CONC S22026 16080022 BE NOINIT . BRANCH IF YES S22026 16110022 CLI QCBSTPRI,CLOCK . CLOCK OPTION S22026 16140022 BE NOINIT . BRANCH IF YES S22026 16170022 CLI QCBSTPRI,INTVL . INTVL OPTION S22026 16200022 BNE NOTDIAL . BRANCH IF NO S22026 16230022 BAL R10,CKDELAYQ CK IF IN DELAY Q 16260020 NOTDIAL EQU * 16320020 LA R7,0(R7) . CLEAR HI 16380020 LR R2,R7 . SET R2 16440020 * FIND THE LAST LCB IN INSRC CHAIN BEFORE INSERT THIS ONE 16500020 INITLOOP EQU * 16560020 LR R1,R2 . SET ADDR OF PVEV IN Q 16620020 L R2,QCBINSRC-1-IEDQQCB(R1) . ADDR OF NEXT 16680020 N R2,CLEAROFF . CLEAR HI AND INSRC BITS 16740020 CLR R2,R7 . IS THIS LAST ONE 16800020 * LAST IN CHAIN POINTS TO ITSELF 16860020 BNE INITLOOP . BR NOT LAST TO GET NEXT 16920020 MVC LCBINSRC(3),QCBINSRC-IEDQQCB(R1) 16980020 MVC QCBINSRC-IEDQQCB(3,R1),PRFLCB 17040020 * CHAIN LCB INTO CHAIN 17100020 OI QCBINSRC+2-IEDQQCB(R1),XXXON . SET INSRC FLAG ON 17160020 OI LCBINSRC+2,XXXON . SET INSRC FLAG ON 17220020 GETSIZE EQU * 17280020 LR R10,RPREFIX . INITIALIZE FOR LOOP WITH FIRST 17340020 * UNIT ADDR 17400020 SR R2,R2 . INITIALIZE UNIT COUNT TO ZERO 17460020 LH R5,PRFSIZE 17520020 SR R11,R11 17580020 IC R11,PRFNBUNT NUMBER OF UNITS IN BFR 17640020 COMPARE1 EQU * 17700020 L R10,PRFTIC-IEDQPRF(R10) 17760020 LA R2,1(0,R2) 17820020 SH R5,AVTKEYLE SUBTRACT AMT. IN THIS UNIT 17880020 BP COMPARE1 . IF UNITS REMAIN, GO COUNT THEM 17940020 ALL EQU * 18000020 STC R2,PRFNBUNT REPLACE CORRECT NO. UNITS 18060020 CR R2,R11 18120020 BE POSTDISK 18180020 SR R11,R2 18240020 STC R11,PRFNBUNT-IEDQPRF(R10) 18300020 LR R1,R10 18360020 BAL R10,POSTSUB . POST BFR 18420020 POSTDISK EQU * 18480020 CLI QCBSTPRI,DIALPRTY DIAL QCB 18540020 BNH NODIAL BR NOT DIAL 18600020 TM PRFSTAT1,PRFNLSTN IS THIS A LAST SEG 18660020 BO NODIAL BR IF NOT LAST 18720020 IC R14,QCBPRIPQ PRTY OF THIS QCB 18780020 EX R14,COMPRI THIS MSG PRTY HIGHER THAN 18840020 BH NODIAL PREVIOUS MSG - BR NO 18900020 STC R14,QCBPRLVL SET HIGHSET PRTY MSG 18960020 NODIAL EQU * 19020020 * IF A LOGICAL READ ERROR OCCURS IN INITIATE MODE - FA WILL 19080020 * DROP THE ERB LEAVING LCBDLNK SWITCH SET TO 'NOT POSTABLE' 19140020 * PCI WILL NOT POST THE ERB. LOGICAL READ ERROR WILL ALSO BE 19200020 * SET IN ERBST. WHEN HM RECEIVES A BFR IN INIT MODE UNDER 19260020 * THESE CONDITIONS - THE ERB FOR THE DESTINATION LINE WILL 19320020 * BE REPOSTED TO FA WITH AN E0 PRIORITY REQUESTING 19380020 * THE BUFFERS OF THIS MESSAGE AGAIN. THE DESTINATION LCB 19440020 * WILL BE FOUND FROM THE LCBINSRCE CHAIN OF THE SOURCE LCB. 19500020 BAL R14,SENDINIT 19560020 B NOERB 19620020 TM LCBERBST-IEDQLCB(R1),LCBDLNKN+LCBEOMSG 19680020 * CAN THE ERB BE POSTED 19740020 BNZ NOERB BR YES PCI MAY POST IT 19800020 TM LCBERBST-IEDQLCB(R1),LCBRDERR . HAS A READ ERROR 19860020 BNO NOERB . BR IF NO ERROR 19920020 CLI LCBERBKY-IEDQLCB(R1),AVTEZERO SHOULD HM POST ERB S21101 19970020 BE NOERB NO IT IS ALREADY ON READY Q S21101 19972020 CLI LCBERBPY-IEDQLCB(R1),PRIFSPCI . SHOULD PTRY BE CHGED 19980020 BNE PRIOK . BR NO 20040020 MVI LCBERBPY-IEDQLCB(R1),PRISBPCI . SET PRTY 20100020 PRIOK EQU * 20160020 LA R1,LCBERB-IEDQLCB(R1) . ADDR OF ERB TO POST 20220020 LA R2,AVTDSIOB . QCB ADDR FOR FA 20280020 * . STORE OF R2 WILL ZERO S21101 20330020 * . FIRST BYTE OF ERB S21101 20332020 BAL R10,POSTSUBA . POST ERB TO FA 20340020 NOERB EQU * 20400020 AIF (&A NE 1).H001 20460020 B COREQUE 20520020 AGO .H005 20580020 .H001 ANOP 20640020 TM PRFSTAT1,PRFDUPLN DUPL HDR 20700020 AIF (&A NE 2).H002 20760020 BNO QUEUE1 20820020 AGO .H003 20880020 .H002 ANOP 20940020 BO DUPL BR YES 21000020 TM QCBDSFLG,QCBCORE 21060020 * IS THIS A CORE QUEUE QCB 21120020 BNO QUEUE1 . NO, DISK ONLY S21101 21180021 * YES, HAS CORE Q S21101 21230021 CLI PRFPRI,COPYPRI . IS THIS BUF FROM COPY S21101 21240021 BNE COREQUE . NO, NOT COPY, GO ENQUE S21101 21290021 * ONTO CORE QUEUE S21101 21292021 * YES, FROM COPY S21101 21294021 TM QCBDSFLG,QCBDISK . DOES THIS CORE Q HAVE S21101 21296021 * ANY DISK BACKUP S21101 21298021 BZ COREQUE . NO, CORE ONLY S21101 21298421 * YES, CORE WITH DISK S21101 21298821 B QUEUE1 . ENQUEUE ONTO DISK S21101 21299221 .H003 ANOP 21300020 TITLE '''IEDQHM'' - DUPLICATE MESSAGE TESTING' . S22025 21330022 DUPL EQU * 21360020 * * * * * * * * * * * * * * * * * * * * * * * * 21420020 * WHEN A DUPL. HDR IS BEING PROCESSED-- 21480020 ** A COPY MAY OR MAY NOT BE ON THE QUEUEING MEDUUM INVOLVED 21540020 * WITH THIS DESTINATION. 21600020 ** WHEN THE INITIAL RECALL IS DONE (IEDQBD), THE CONTENTS 21660020 * OF SCBQTYPE - HIGH HALF BYTE -- INDICATING THE ORIGINAL 21720020 * COPY OF THE MESSAGE IS PUT INTO SCBCQT ( HBFNO) AND SCB 21780020 * QTYPE IS CLEARED TO 0. 21840020 ** WHEN THE SUBTASK GETS THE ERB FROM THE INITIAL RECALL 21900020 * - USUALLY IEDQBD -- THE XTRA RECORDS ADDRESS IS COPCOPIED 21960020 * INTO SCBRDX (SCBMBSSA) FOR RESUABLE DISK AND FOR NON- 22020020 * REUSABLE DISK INTO SCBNDX (SCBMBSSA+4). FOR A CORE COPY 22080020 * NO COPY SHOULD BE MADE OF XTRA. 22140020 ** SCBDCHDR WILL REFLECT THE DCHDR OF THE DISK Q TYPE INDICATED 22200020 * IN SCBQTYPE. THE OTHER DISK QTYPE WILL BE IN SCBOTHER 22260020 * (SCBTRANS). IF ONE EXISTS. 22320020 ** SCBCQT HIGH HALF BYTE WILL BE THE COPY OF SCBQTYPE MADE 22380020 * EARLIER. THE LOW HALF BYTE IS THE INDICATION OF ALL MED- 22440020 * IUMS WHICH CONTAIN A COPY OF THES MESSAGE. 22500020 * * * * * * * * * * * * * * * * * * * * * * * * 22560020 L RSCB,LCBSCBA-1 22680020 AIF (&A EQ 2).H003A 22740020 LA R1,256*SCBCC+SCBCC+SCBCOREQ 22800020 * SET TO MARK FISLD AS HAVING A COPY ON THIS MEDIUM 22860020 * SET REG TO TEST FOR MSG ORIGINAL OR COPY ON THIS MEDIUM 22920020 LA R14,COREQUE . ASSUME COPY THERE - TRN TO Q 22980020 TM QCBDSFLG,QCBREUS+QCBNREUS 23040020 BZ EXTM 23100020 .H003A ANOP 23160020 * IS COPY IS TO BE CALLED AND THE ORIGINAL IS IN CORE, THEN 23220020 * IT MUST NOT BE FREED (SERVICED) UNITL AFTER COPY IS DONE. 23280020 * THEREFORE IT WILL BE FLAGGED AS A DUPL WITH ONE MORE DUPL HDR 23340020 * COUNTED THAN EXISTS. THEN WHEN COPY FINISHES. IT WILL 23400020 * REDUCE THE COUNT BY ONE. 23460020 TM QCBDSFLG,QCBREUS . RESU DISK 23880020 BO TSTSCB . BR YES 23940020 LA R1,256*SCBCN+SCBCN+SCBNREUS 24000020 * SET REG TO TEST FOR MSG ORIGINAL OR COPY ON THIS MEDIUM 24060020 * SET TO MARK FISLD AS HAVING A COPY ON THIS MEDIUM 24120020 LA R14,QUEUE1 . ASSUME COPY THERE - SET RTN 24180020 EXTM EQU * 24240020 EX R1,TM . TEST FOR ORIG. OR COPY 24300020 BNZ EXBR . BR IF ONE THERE 24360020 AIF (&A EQ 2).H003B . S21101 24410021 TM SCBCQT,SCBREUS+SCBNREUS .ANY DISK-COPY WILL USE ITS21101 24412021 BNZ NOCORE . YES, DISK S21101 24414021 * NO, Q=MO S21101 24416021 LR R14,R1 . SAVE REG 1 S21101 24418021 BAL R1,DUPLCORE . S21101 24418421 * S21101 24418821 BAL R1,INCRCNT . INCR COUNT OF DUPLS-COPY S21101 24419221 * S21101 24419621 LR R1,R14 . RESTORE REG 1 S21101 24419721 NOCORE EQU * . S21101 24419821 .H003B ANOP , . S21101 24419921 LA R14,POSTCOPY . SET RTN TO PUT ONE THER) 24420020 EXBR EQU * 24480020 SRL R1,8 . SET R1 TO OI MASK 24540020 EX R1,OI . SET COPY HERE 24600020 BR R14 . RETURN 24660020 TSTSCB EQU * 24720020 LA R1,256*SCBCR+SCBCR+SCBREUS 24780020 * SET TO MARK FISLD AS HAVING A COPY ON THIS MEDIUM 24840020 * SET REG TO TEST FOR MSG ORIGINAL OR COPY ON THIS MEDIUM 24900020 BAL R14,EXTM . ASSUME COPY THERE - RTN HERE 24960020 BAL R14,REUSDUPL . IF DUPL TO BE QUEUED HE½E 25020020 * CHECK FOR TOO FAR 25080020 TITLE '''IEDQHM'' - DISK ASSIGNMENT' . S22025 25320022 QUEUE1 EQU * 25380020 LA R2,AVTDSIOB SET FOR LATER POST 25440020 ST R2,PRFQCBA-1 25500020 MVI PRFPRI,PRIDESTQ 25560020 LA R2,AVTNADDR NON REUSABLE VALUE OF ADDR 25570022 MVI PRFTIC,XPRFNRUS+XTIC SET TIC FLAGS TO NON REUS 25580022 LA R9,SCBNREUS . SET FOR LATER OI 25590022 TM QCBDSFLG,QCBREUS 25620020 * IS THIS FOR REUS DISK 25680020 BZ NONREUS BR NO 25740020 LA R2,AVTRADDR ADDR OF REUS VALUE OF 25800020 * ADDRESS 25860020 MVI PRFTIC,XPRFREUS+XTIC SET TIC FLAGS TO REUS DSK 25920020 * TELL TIC OP CODE FIELD IS USED TO 25980020 * TELL DISK I/O WHICH DISK DATA SET 26040020 * IS TO BE USED 26100020 LA R9,SCBREUS . SET FOR LATER OI 26160020 NONREUS EQU * . S22025 26170022 MVC PRFCRCD(3),SCBDNSEG . SET RRNS ASSUMING TEXT S22025 26180022 MVC PRFCHDR(3),SCBDCHDR . BUFFER S22025 26190022 TM PRFSTAT1,PRFNHDRN IS THIS A HEADER 26220020 BO TXTSAME . NO, SKIP HEADER PROCESS S22025 26280022 QUESAME EQU * 27120020 TM PRFSTAT1,PRFDUPLN+PRFERMGN DUPL OR ERR MSG 27180020 BNZ NOEX . BR IF EITHER 27240020 EX R9,QTYPEOI 27300020 NOEX EQU * 27360020 MVC PRFCRCD(3),QCBDNHDR 27420020 MVC PRFHQBCK(3),QCBQBACK 27480020 MVC QCBQBACK(3),PRFCRCD 27540020 MVC QCBPQBCK,PRFCRCD UPDATE PRI Q BACK PTR SA51078 27547022 TM QCBPREVF+L'QCBPREVF-1,CPBQTYPE SA50192 27554022 * FIRST MSG ON QUEUE SA50192 27561022 BNZ PREVFSET BRANCH IF NO SA50192 27568022 BAL R9,LOCKMSG IS IT LOCK MODE @SA76275 27568100 B LKPFEFO BR NOT LOCK @SA76275 27568200 B PREVFSET BYPASS SETTING UP PFEFO@SA76275 27568300 * IF ONLY A LOCK RESPONSE@SA76275 27568400 LKPFEFO EQU * @SA76275 27568500 TM PRFSTAT1,PRFCNCLN CANCELLED HEADER? @SA71682 27569061 BO PREVFSET YES, DOES NOT GET IN @SA71682 27570061 * FEFO CHAIN @SA71682 27571061 MVC QCBPREVF,PRFCRCD SET FOR RESTART IF NO SA50192 27575022 * PFEFO IN CHKPOINT SA50192 27582022 PREVFSET EQU * SA50192 27589022 MVC QCBDNHDR(3),1(R2) 27600020 MVC PRFNHDR(3),QCBDNHDR 27660020 BAL R9,ADDONE 27720020 TM PRFSTAT1,PRFERMGN ERR MSG IN THIS BFR 27780020 BO TXTSAME BR YES - DO NOT UPDATE QCB 27840020 MVC SCBDCHDR(3),PRFCRCD SET CORRENT HDR ADDR 27900020 TM PRFSTAT1,PRFDUPLN DUPL HDR 27960020 BO DUPLHDR BR YES 28020020 BAL R9,LOCKMSG 28080020 B TXTSAME BR NOT LOCK 28140020 MVC QCBLKRRN(3),PRFCRCD 28200020 * SET DEST QCB LOCK FIELD 28260020 TXTSAME EQU * 28320020 XC PRFXTRA(3),PRFXTRA . CLEAR THE XTRA ADDRESS 28350020 SR R14,R14 28380020 IC R14,PRFNBUNT NUMBER OF UNITS CONTAINING 28440020 BCTR R14,R0 DATA -1 28500020 LTR R14,R14 IS THERE MORE THAN 1 UNIT 28560020 BZ ISITLAST . BR IF JUST ONE 28620020 MVC PRFXTRA(3),1(R2) SET LOCATION OF XTRA AS ADDR 28680020 SLL R14,MULT4 . ADJUST NO. OF RECORDS S21101 28730020 A R14,0(R2) ADD NO. ADD. RECS. TO ADR 28740020 ST R14,0(R2) 28800020 ISITLAST EQU * 28860020 TM PRFSTAT1,PRFNLSTN IS THIS THE LAST SEG 28920020 BZ LASTSEG BR YES 28980020 MVC SCBDNSEG(3),1(R2) 29040020 MVC PRFNTXT(3),SCBDNSEG 29100020 BAL R9,ADDONE 29160020 CKLDPT EQU * 29220020 TM QCBDSFLG,QCBNREUS 29280020 BO DISKPOST IF NON REUS RETURN 29340020 CKLOADPT EQU * 29400020 TM PRFSTAT1,PRFERMGN+PRFDUPLN . THIS ERMSG OR DUPL 29420020 BNZ NOABEND . BR NO 29440020 L R14,AVTRADDR . NEXT VALUE OF ADDR 29460020 L R11,SCBDCHDR-1 . ADDR OF HDR THIS MSG 29520020 LA R11,0(R11) . CLEAR HI 29580020 SR R14,R11 . GET DIFFERENCE FOR MSG SPAN 29640020 L R11,AVTTOTNR . ADJUST AVTTOTNR TO S21101 29700020 SLL R11,MULT4 . REFLECT THE RRN NUMBERINGS21101 29750020 * SYSTEM WHICH INCREMENTS S21101 29752020 * BY 4 S21101 29754020 CR R14,R11 . COMPARE MSG SPAN TO SIZE S21101 29756020 BL NOABEND . DOES MSG SPAN THE DISK 29760020 LA R15,ABCODE7 . SET ABEND CODE 29800020 BAL R14,AVTABEND . SET 14 TO ADDR OF ABEND 29840020 * AND GO TO RTN TO ABEND 29880020 NOABEND EQU * 29940020 L R2,AVTRADDR . ADJUST AVTRADDR S21101 30000020 LA R2,ROUNDER(R2) . TO REFLECT S21101 30050020 SRL R2,DIV4 . THE ABSOLUTE S21101 30052020 CL R2,AVTLODPT . NO. OF RECORDS S21101 30054020 BL DISKPOST LESS THAN LDPT - RETURN 30060020 SR R10,R10 DIVIDE RADDR BY TOTAL NO. 30120020 LR R11,R2 . OF RECORDS. IF REMAINDER S21101 30180020 D R10,AVTTOTNR ER IS LESS THAN 1/4 OF THE 30240020 SR R14,R14 TOT NO OF OF RECORDS RADDR 30300020 L R15,AVTTOTNR SHOULD BE CHANGED TO ITS 30360020 LA R5,4 MODULO VALUE IF THE 2 TO 30420020 DR R14,R5 23RD BIT IS ALSO ON 30480020 CR R15,R10 IS THE REMAINDER LESS THAN 30540020 BL SETREUS 1/4 OF TOTAL BR NO 30600020 TM AVTRADDR+1,AVTMODBT IS THE 2 TO 23RD BIT ON 30660020 BNO SETREUS BR NO 30720020 SLL R10,MULT4 . ADJUST THE VALUE S21101 30770020 A R10,ROUND REINITIALIZE RADDR SA66611 30772054 ST R10,AVTRADDR SET REUS TO MODULO VALUE 30780020 SRL R10,MULT4 DIVIDE BY FOUR SA66611 30840054 ST R10,AVTLODPT SET NEW VALUE SA66611 30870054 SETREUS EQU * 30900020 IC R2,AVTADEBR SINCE 1/4 OF TOTAL MAY 31020020 LA R2,1(R2) HAVE A REMAINDER, EVERY 4TH 31080020 STC R2,AVTADEBR TIME LDPT IS CHANGED, THE 31140020 CLI AVTADEBR,THREE QUDTIENT AND REMAINDER MUST 31200020 BL ADD1QTR BE ADDED TO KEEP THE ZONE 31260020 MVI AVTADEBR,AVTEZERO BOUNDARIES ON THE SAME DISK 31320020 AR R15,R14 LOCATION 31380020 ADD1QTR EQU * 31440020 L R2,AVTLODPT ADD 1/4 ( OR 1/4 + REMAINDER) 31500020 AR R2,R15 TO LDPT FOR NEXT POINT 31560020 ST R2,AVTLODPT TO CALL RESUABILITY 31620020 L R1,AVTIA . GET ADDRESS OF REUS QCB S21101 31670020 L R11,AVTEA . SET DISPATCHER BASE S21101 31672020 BAL R14,DSPPOSTR . POST REUS QCB TO ITSELF S21101 31674020 * TO ACTIVATE REUS ZONE S21101 31676020 * CLEANING S21101 31678020 * THE REUS QCB ALREADY HAS ASSEMBLED IN IT THE PROPER PRIORITY & S21101 31678420 * THE ADDRESS OF ITSELF IN ITS FIRST WORD TO SIMPLIFY TPOSTING. S21101 31678820 * S21101 31679220 DISKPOST EQU * 31680020 L R2,PRFQCBA-1 FOR COMMON CODE 31740020 .H005 ANOP 31800020 NRPOST EQU * 31860020 LTR R12,R12 31920020 BM COPYRTN 31980020 LR R1,RPREFIX 32040020 L R11,AVTEA 32100020 LA R15,DSPPOST 32160020 B POSTB 32220020 AIF (&A EQ 1).H006 32280020 LASTSEG EQU * 32340020 BAL R14,SAMELAST . S22025 32370022 LA R10,CKLOCK . SET RETURN ADDR 32400020 TQBACK EQU * 32460020 * IF VALID THE SRCE QCB MUST 32520020 * BE LOCATED TO UPDATE THE 32580020 * SOURCE QBACK CHAIN 32640020 LR R5,R15 32700020 LH R1,PRFSRCE 32760020 N R1,AVTCLRHI . CLEAR HI-ORDER HALF AND TEST 32820020 BCR ZEROES,R10 . NO, BR S22025 32880022 L R15,AVTRNMPT 32940020 BALR R14,R15 33000020 L R1,0(R1) 33060020 MVC PRFTQBCK(3),QCBQBACK-IEDQQCB(R1) 33120020 * QBACK PTR INTO BFR 33180020 MVC QCBQBACK-IEDQQCB(3,R1),PRFCRCD 33240020 * UPDATE QCB QBACK WITH THIS REC. ADDR. 33300020 LR R15,R5 33360020 BR R10 33420020 QTYPEOI OI SCBQTYPE,X'00' . SET A VALUE IN QTYPE 33480020 ADDONE EQU * 33780020 LA R0,INCR . ADD 4 TO THE VALUE OF S21101 33840020 A R0,0(R2) ADDRESS CURRENTLY BEING 33900020 ST R0,0(R2) USED 33960020 BR R9 34020020 .H006 ANOP 34080020 SAMELAST EQU * 34140020 LTR R12,R12 IF THIS IS COPY OR REUS 34200020 BCR 4,R14 NO CHECKING REQUIRED 34260020 BAL R9,LOCKMSG 34320020 B CKINIT BR NOT LOCK 34380020 AIF (&A EQ 1).H007 34440020 TM QCBDSFLG,QCBREUS+QCBNREUS ANY DSIK 34500020 BNZ POSTLCB IF CORE ONLY CLEAR BITS 34560020 .H007 ANOP 34620020 TM SCBSTATE,SCBLCK1N+SCBMSGLN 34680020 BNO POSTLCB 34740020 NI SCBSTATE,X'FF'-(SCBLCK1N+SCBMSGLN) MSG LOCK OFF 34800020 ********* INITIALIZE LCB TO SEND 34860020 POSTLCB EQU * 34920020 ST R14,AVTPARM3 SAVE RETURN ADDRESS @XA11314 34980000 L R1,QCBDCBAD-1 DCB ADDR 35040020 CLI QCBSTVTO,DSPLOGSC IS QCB FOR LOGTYPE S22024 35046022 BE NOLGB BRANCH ON YES S22024 35052022 TM DCBDSORG-IHADCB(R1),AVTE80 IS THIS AN LGB S22024 35060022 BO LGB BRANCH ON YES S22024 35080022 NOLGB EQU * S22024 35090022 SR R14,R14 CLEAR FOR IC 35100020 LR R15,R14 CLEAR FOR IC 35160020 IC R14,QCBLKRLN . REL LN O OF LOCKED LINE 35220020 IC R15,DCBEIOBX-IHADCB(R1) SIZE OF LCB 35280020 MR R14,R14 SIZE X LN NO. 35340020 AL R15,DCBIOBAD-IHADCB(R1) + ADDR FIRST IOB - SIZE OF 35400020 LA R1,LCBFLAG1-IEDQLCB IOB -- SIZE OF LCB-IOB 35460020 SR R15,R1 - LCB ADDR 35520020 LR R1,R15 LCB ADDR FOR POST 35580020 RESUME EQU * S22024 35610022 L R14,AVTPARM3 RESTORE REGISTER 14 @XA11314 35640000 NI LCBINSRC+2-IEDQLCB(R1),X'FF'-X'40' 35700020 BCR 7,R14 35760020 ST R1,LCBQCBA-1-IEDQLCB(R1) 35820020 MVI LCBPRI-IEDQLCB(R1),PRILNFRE 35880020 L R11,AVTEA RSSTORE DISP ADDR 35940020 BAL R14,DSPPOSTR 36000020 L R14,AVTPARM3 RESTORE RETURN ADDRESS @XA11314 36060000 L RSCB,LCBSCBA-1 RESTORE R3 36120020 L RQCB,SCBDESTQ-1 RESTORE R7 36180020 BR R14 36240020 LGB EQU * S22024 36250022 LR R1,RQCB PUT QCB ADDR IN R1 S22024 36260022 SH R1,NPRFSIZE BACK UP TO NEG PREFIX @YM04658 36270000 L R1,QCBPLCBA-1-IEDNQCB(R1) ADDRESS OF PLCB S22024 36280022 B RESUME S22024 36290022 CKINIT EQU * 36300020 TM LCBSTAT1,LCBINITN+LCBRECVN 36330020 * RECEIVING AN INITIATE MODE MESSAGE 36360020 BCR 14,R14 . BR NOT RCV INIT 36390020 TM LCBINSRC+2,XXXON IF THELOW ORDER BIT IS NOT 36480020 BO GETINSRC . BR IF LCB IS IN SRCE CHAIN 36540020 L R1,LCBINSRC-1 . ADDR OF DEST LCB 36600020 OI LCBERBST-IEDQLCB(R1),XXHMSG . SET EOM TO HM 36660020 BR R14 36720020 GETINSRC EQU * 36780020 * IS LCB IS IN TE SRCE CHAIN REMOVE IT 36840020 LR R2,RQCB . INITIALIZE FOR LOOP 36900020 LA RLCB,0(0,RLCB) 36960020 CKLCB EQU * 37020020 LR R15,R2 37080020 L R2,LCBINSRC-IEDQLCB-1(R2) ADDR NEXT LCB 37140020 N R2,CLEAROFF CLEAR HI AND INSRC BIT 37200020 CR R2,RLCB . IS THIS THE LCB TO REMOVE 37260020 BNE CKLCB . IF NOT, GO LOOK AT NEXT ONE 37320020 REMOVE EQU * 37380020 MVC LCBINSRC-IEDQLCB(3,R15),LCBINSRC-IEDQLCB(R2) 37440020 * REMOVE LCB FROM SOURCE CHAIN 37500020 BR R14 37560020 AIF (&A EQ 1).H007A 37620020 DUPLHDR EQU * 37680020 BAL R10,GETNTXT 37740020 CKLOCK EQU * . S22025 37770022 TM PRFSTAT1,PRFCNCLN CANCELLED MESSAGE OX06353 37777061 BO CKLDPT BR YES OX06353 37784061 * OX06353 37791061 BAL R14,FINDSTCB 37800020 B CKLDPT . GO, SEE IF REUS NEEDED S22025 37860022 SPACE 1 . S22025 37950022 POSTCOPY EQU * 38040020 MVI PRFPRI,PRICOPY 38100020 SPACE 1 . SA51783 38103022 *** QCB MESSAGE COUNT HAS BEEN INCREMENTED FOR THIS DUPLICATE SA51783 38106022 * HEADER; BUT, COPY WILL TPOST THE BUFFERS OF THE MESSAGE SA51783 38109022 * BACK HERE WHEREUPON THE MESSAGE WOULD BE RECOUNTED. HEADERSSA51783 38112022 * OF MESSAGES WHICH WILL BE DISK QUEUED WILL NOT RETURN HERE. SA51783 38115022 * SO, TO AVOID AN INCORRECT MESSAGE COUNT, WE MUST DECREMENT SA51783 38118022 * IT FOR CORE-ONLY QUEUED OR DISK QUEUED MULTI-BUFFER MSGS. SA51783 38121022 SPACE 1 . SA51783 38124022 AIF (&A EQ 2).H900 . SA51783 38127022 TM QCBDSFLG,QCBDISK . IS THIS DISK QUEUED SA51783 38130022 BZ DECRCT . NO, GO DECREMENT COUNT SA51783 38133022 .H900 ANOP , . SA51783 38136022 TM PRFSTAT1,PRFNLSTN . IS IT LAST BUFFER SA51783 38139022 BZ NODECRCT . YES, IT WON'T RETURN SA51783 38142022 DECRCT EQU * . SA51783 38145022 LH R2,QCBMSGCT . DECREMENT MESSAGE COUNT SA51783 38148022 BCTR R2,0 . BY ONE SA51783 38151022 STH R2,QCBMSGCT . RESTORE IT SA51783 38154022 NODECRCT EQU * . SA51783 38157022 L R2,AVTCOPY QCB ADDR FOR POST 38160020 LA R2,0(R2) CLEAR HI BYTE 38220020 LTR R2,R2 COPY THERE 38280020 BNZ NRPOST . BR YES 38340020 LA R15,ABCODE4 . SET ABEND CODE IN 15 38400020 BAL R14,AVTABEND . SET 14 TO INSTR OF ABEND 38460020 * AND GO TO RTN TO ABEND 38520020 SPACE 3 . S22025 38580022 REUSDUPL EQU * 39360020 MVC AVTDOUBL+1(3),QCBDNHDR HEADER RECORD SA57334 39370022 MVC AVTDOUBL+5(3),PRFXTRA EXTRA SEGMENT SA57334 39380022 CLI PRFNBUNT,HEX01 ANY EXTRAS SA57334 39390022 BNE PASTNTXT BR YES SA57334 39400022 SPACE 39410022 TM PRFSTAT1,PRFNLSTN LAST SEG 39420020 BCR 14,R14 BR YES - NO NTXT 39480020 MVC AVTDOUBL+5(3),PRFNTXT 39720020 * SA57334 39728022 * IF A DUPL HDR IS MORE THAN 1 ZONE AWAY FROM ITS SA57334 39736022 * PREVIOUSLY ASSIGNED NEXT TEXT OR EXTRA SEGMENT SA57334 39744022 * THE WHOLE MSG SHOULD BE RECOPIED SA57334 39752022 * SA57334 39760022 PASTNTXT EQU * SA57334 39768022 L R5,AVTDOUBL 39780020 LA R5,0(0,R5) 39840020 MVI AVTDOUBL+4,AVTEZERO 39900020 S R5,AVTDOUBL+4 39960020 SR R10,R10 40020020 L R11,AVTTOTNR . AVTTOTNR IS THE ABSOLUTE S21101 40080020 * NUMBER OF RECORDS. THIS S21101 40130020 * IS ALSO THE SIZE OF A S21101 40140020 * ZONE IN THE RRN NUMBERINGS21101 40190020 * SYSTEM WHICH INCREMENTS S21101 40200020 * BY 4 S21101 40250020 CR R5,R11 40260020 BH POSTCOPY 40320020 L R7,SCBDESTQ-1 RESTORE QCB ADDR 40380020 BR R14 40440020 .H007A ANOP 40500020 POST EQU * 40560020 LR R1,RPREFIX 40620020 POSTA EQU * 40680020 L R11,AVTEA 40740020 LA R15,DSPPOSTR 40800020 POSTB EQU * 40860020 ST R2,PRFQCBA-1-IEDQPRF(R1) 40920020 BR R15 GO POST @XM05743 40980000 AIF (&A EQ 1).H008 41040020 GETNTXT EQU * 41100020 CLI PRFNBUNT,X'01' JUST ONE UNIT 41160020 BNE NOCLEAR BR MORE THAN 1 41220020 XC PRFXTRA(3),PRFXTRA THERE IS NO EXTR REC 41280020 TM PRFSTAT1,PRFNLSTN LAST BFR 41340020 BNO TQBACK BR YES - NO NTXT EITHER 41400020 NOCLEAR EQU * 41460020 MVC PRFNTXT(3),SCBNDX 41490022 TM PRFTIC,XPRFNRUS . THIS FOR NREUS DISK 41520020 * ALREADY HAVE A COPY FOR THIS MSG ON THE ONE NEEDED 41580020 BNZ CKUNITS . BR YES S22025 41640022 MVC PRFNTXT(3),SCBRDX ASSUME REUS - GET NTXT 41700020 CKUNITS EQU * 41760020 CLI PRFNBUNT,X'01' JUST ONE UNIT 41820020 BCR 8,R10 BR YES 41880020 MVC PRFXTRA(3),PRFNTXT SET XTRA 41940020 TM PRFSTAT1,PRFNLSTN LST BFR 42000020 BNO TQBACK BR IF LAST 42060020 SR R1,R1 42120020 IC R1,PRFNBUNT NO UNITS 42180020 BCTR R1,0 SUBTR 1 FOR ADD 42240020 L R0,PRFXTRA-1 ADDR OF XTRA 42300020 SLL R1,MULT4 . ADJUST FOR 4'S S21101 42350020 * ARITHMETIC S21101 42352020 AR R0,R1 42360020 SRL R1,DIV4 . ADJUST BACK S21101 42410020 STC R0,PRFNTXT+2 SET VALUE FOR NTXT SEGS 42420020 SRL R0,8 42480020 STH R0,PRFNTXT 42540020 BR R10 RETURN 42600020 .H008 ANOP 42840020 LOCKMSG EQU * 42900020 LTR R12,R12 . COPY CALL 42920020 BCR 4,R9 . BR IF OCPY - NOT LOCK 42940020 TM PRFSTAT1,PRFDUPLN+PRFERMGN 42960020 * DUPL HDR OR ERRMSG COULD BE FROM ORIGINAL LOCK MSG 43020020 BCR 7,R9 . BR IF EITHER 43080020 TM SCBSTATE,SCBLCK1N+SCBMSGLN LOCK MSG 43140020 BCR 8,R9 BR NOT LOCK 43200020 CLI LCBRSKEY,DSPPUTSC PUT RESPONSE MSG SA60012 43220022 BCR 7,R9 BRANCH IF NO SA60012 43240022 TM QCBFLAG,QCBPROC THIS THE REQ. MSG OR RESP MSG 43260020 BNO 4(R9) BR IF THE RESPONSE MSG 43320020 BR R9 BR IF REQUESTING MSG 43380020 AIF (&A EQ 2).H009 43440020 TITLE '''IEDQHM'' - CORE ENQUEUE' . S22025 43500022 * THE FIRST 12 BYTES OF THE RECORDS WILL BE USED AS A KEY FIEDS 43560020 * ON DISK. THE TIC PORTION OF THIS FIELD WILL BE USED TO 43620020 * COUNT DUPLICATE HEADERS 43680020 COREQUE EQU * 43740020 AIF (&A NE 3).H011A . A51776 43746022 TM LCBSTAT1,LCBRECVN+LCBINITN INITIATE MESSAGE A51776 43752022 BNO INITCORE . NO, GO QUEUE IT A51776 43758022 TM QCBDSFLG,QCBREUS+QCBNREUS IS IT DISK BACK-UP A51776 43764022 BNZ CLEARCOR . YES, GO QUEUE ON DISK A51776 43770022 * ONLY A51776 43776022 INITCORE EQU * . A51776 43782022 .H011A ANOP , . A51776 43788022 TM PRFSTAT1,PRFNHDRN 43800020 BNO NOCHECK 43860020 NC SCBCCHDR(3),SCBCCHDR . HDR THERE OR LOST 43920020 BZ NOQUEUE1 . BR IF LOST 43980020 MVC AVTDOUBL+1(3),SCBCCHDR 44040020 L R2,AVTDOUBL 44100020 TM PRFSTAT1,PRFCNCLN 44160020 BNO NOTCNCL BR NO 44220020 OI DATFLAGS-IEDQDATA(R2),DATCNCLD SET CNCL FLAG 44280020 NOTCNCL EQU * 44340020 TM DATFLAGS-IEDQDATA(R2),DATLOSTN+DATINITL 44400020 * HAS THIS MSG BEEN LOST 44460020 BNZ NOQUEUE 44520020 NOCHECK EQU * 44580020 XC 0(8,RPRF),0(RPRF) ZERO DATA FIELD 44640020 XC PRFNTXT(L'PRFNTXT+L'PRFCRCD),PRFNTXT . A42363 44700021 BAL R9,CNTUNITS 44760020 TM PRFSTAT1,PRFDUPLN 44820020 BO COREDUPL 44880020 AIF (&A EQ 1).H009A 44940020 TM QCBDSFLG,QCBREUS+QCBNREUS 45000020 * IS THIS TO BE DISK QUEUED ALSO 45060020 BNZ SWAPNOT 45120020 .H009A ANOP 45180020 INITRTN EQU * 45240020 LR R1,R5 45300020 BAL R10,POSTSUB . POST BFR 45360020 UNITQUE EQU * 45420020 BAL R10,QUEUNITS 45480020 AIF (&A EQ 1).H009B 45540020 BAL R9,SETDISK 45600020 .H009B ANOP 45660020 TM PRFSTAT1,PRFNLSTN IS THIS A LAST SEG 45720020 BO RETURN 45780020 LTR R12,R12 IS THIS REUS OR COPY 45840020 BM COPYRTN BR YES 45900020 BAL R9,SETFEFO 45960020 BAL R14,FINDSTCB 46020020 BAL R14,SAMELAST 46080020 NI LCBINSRC+2,X'FF'-XXXON . SET INSRC FLAG OFF 46140020 NI LCBSTAT1,LCBINITF . SET INIT MODE OFF 46200020 RETURN EQU * 46260020 LTR R12,R12 46320020 BM COPYRTN 46380020 L R11,AVTEA 46440020 B DSPDISP 46500020 COREHDR EQU * 46560020 TM PRFSTAT1,PRFCNCLN 46620020 BNO NOTCNCLD BR NO 46680020 OI DATFLAGS-IEDQDATA(RPREFIX),DATCNCLD SET CNCL 46740020 NOTCNCLD EQU * 46800020 TM PRFSTAT1,PRFDUPLN+PRFERMGN DUPL OR ERRMSG 46860020 BNZ NOQTYPE . BR IF EITHER - NO QTYPE TO SET 46920020 OI SCBQTYPE,SCBCOREQ 46980020 NOQTYPE EQU * 47040020 AIF (&A EQ 1).H009C 47100020 TM QCBDSFLG,QCBREUS+QCBNREUS 47160020 BNZ ASSIGN 47220020 .H009C ANOP 47280020 BAL R9,LOCKMSG 47340020 B ASSIGN BR NOT LOCK 47400020 MVC QCBLKRRN(3),AVTDOUBL+1 47460020 ASSIGN EQU * 47520020 BAL R9,ASSIGN1 47580020 NC PRFTIC+1(3),PRFTIC+1 47640020 BCR 8,R10 47700020 L R2,PRFTIC 47760020 MVI PRFTIC-IEDQPRF(R2),AVTEZERO 47820020 BR R10 47880020 ASSIGN1 EQU * 47940020 MVC PRFCORE(3),AVTDOUBL+1 48000020 ASSIGN1A EQU * 48060020 MVC PRFCRCD(3),PRFCORE SET CURRENT RECORD IN SA52971 48080022 * CASE MAIN ONLY SA52971 48100022 XC PRFNHDR(3),PRFNHDR ZERO NEXT HDR POINTER 48120020 TM PRFSTAT1,PRFERMGN ERROR MSG THIS BFR 48180020 BO SKIP BR YES DO NOT UPDATE SCB 48240020 MVC SCBCCHDR(3),PRFCORE NEW SCB CURR HDR ADDR 48300020 MVC SCBCLSEG(3),PRFCORE >ET NEW LAST SEGMENT 48360020 SKIP EQU * 48420020 MVC PRFNHDR,QCBCFHDR LINK HDR ON QUE SA51078 48480022 MVC QCBCFHDR,PRFCRCD UPDATE FIRST HDR SA51078 48580022 BR R9 RETURN SA51078 48680022 SPACE 1 . S22025 48960022 DUPLCORE EQU * 49140020 L R2,SCBCCHDR-1 HDR ADDR 49200020 TM LCBSTAT1,LCBSENDN SENDING 49260020 BNO NOTSEND BR NO CCHDR IS OK 49320020 L R2,SCBSCHDR-1 GET HDR ADDR 49380020 NOTSEND EQU * 49440020 ST R2,AVTDOUBL . HAS THIS MSG BEEN FREED 49450020 CLC AVTDOUBL+1(3),PRFCORE-IEDQPRF(R2) . FROM THE CORE 49460020 BNE RCQCB . QUEUE- ALREADY SENT 49470020 * THE ORIGINAL HDR ADDRESS MUST REMAIN IN R2 FOR COREDUPL 49475020 OI PRFSTAT1-IEDQPRF(R2),PRFDUPLN . FLAG ORIG AS DUPL 49480020 MVC PRFNTXT(3),PRFNTXT-IEDQPRF(R2) 49500020 L R9,PRFTIC-IEDQPRF(R2) ADDR OF NEXT UNIT 49560020 ST R9,AVTDOUBL 49580020 MVI AVTDOUBL,AVTEZERO . CLEAR HI BYTE 49600020 NC PRFTIC+1-IEDQPRF(3,R2),PRFTIC+1-IEDQPRF(R2) 49620020 BNZ DUPLCNT 49680020 MVC AVTDOUBL+1(3),PRFNTXT-IEDQPRF(R2) 49860020 L R9,AVTDOUBL 49920020 LTR R9,R9 . IS THE COUNT TO BE UPDATED 49940020 BCR 8,R1 . BR NO - NO TIC TO COUNT IN 49960020 DUPLCNT EQU * 49980020 * IF THE DUPL HDR HAS A SINGLE UNIT, THE COUNT OF HEADERS 50040020 * WILL BE KEPT IN THE TIC FIELD OF HTE NEXT TEXT 50100020 * SEGMENT. IF IT HAS MORE THAN ONE UNIT, THE COUNT WILL 50160020 * BE IN THE TIC OF THE FIRST UNIT 50220020 * IF THERE IS ONE UNIT AND ONE SEGMENT, NO COUNT IS NEEDED. 50280020 CLI PRFTIC-IEDQPRF(R9),X'FF' . DO NOT ALLOW MORE THAN 50340020 BE RCQCB . 255 DUPL ENTRIES IN CORE Q 50400020 BR R1 . RETURN 50410020 INCRCNT EQU * 50420020 L R9,AVTDOUBL . ADDR OF UNIT TO PUT CNT IN 50430020 LTR R9,R9 . IS ONE THERE 50440020 BCR 8,R1 . BR IF NO COUNT 50450020 IC R14,PRFTIC-IEDQPRF(R9) COUNT OF DUPL HDRS 50460020 LA R14,1(0,R14) 50520020 STC R14,PRFTIC-IEDQPRF(R9) 50580020 BR R1 50760020 COREDUPL EQU * 50820020 BAL R1,INCRCNT . COUNT THIS DUPL HDR 50880020 MVC DATFLAGS-IEDQDATA(AVTUMALN,R5),DATFLAGS-IEDQDATA(R2) 50920020 * COPY TIC, FLAGS AND LINK FIELD 50960020 XC DATFEFO-IEDQDATA(3,R5),DATFEFO-IEDQDATA(R5) 51000020 * CLEAR FEFO PRT 51040020 LH R9,AVTKEYLE 51120020 BCTR R9,0 ADJUST COUNT 51180020 EX R9,DUPLTRAN 51240020 LH R9,PRFDEST . COPY THE DEST FOR THIS 51260020 STH R9,PRFDEST-IEDQPRF(R5) . DUPL HDR 51280020 IC R9,PRFCORE-1-IEDQPRF(R5) 51300020 ST R5,PRFCORE-1-IEDQPRF(R5) 51360020 STC R9,PRFCORE-1-IEDQPRF(R5) 51420020 ST RPREFIX,AVTDOUBL+4 SAVE ADDR OF ORIGINAL BFR 51480020 LR RPREFIX,R5 USE R6 FOR SUBROUTINE 51540020 BAL R9,ASSIGN1A 51660020 BAL R9,SETFEFO1 51960020 L RPREFIX,AVTDOUBL+4 RESTORE R6 52020020 RCQCB EQU * 52080020 MVI PRFTIC,X'08' 52140020 L R2,LCBRCQCB 52200020 MVI PRFPRI,PRIRCQCB SET FOR POST 52260020 BAL R14,POST 52320020 LA R14,RETURN 52380020 .H009 ANOP 52440020 FINDSTCB EQU * 52500020 L RSCB,LCBSCBA-1 . RESTORE SCB A42400 52550000 L RQCB,SCBDESTQ-1 . RESTORE QCB A42400 52552000 FINDSTCA EQU * . A42400 52554000 LTR R12,R12 COPY CALL 52560020 BCR 4,R14 BR IF COPY 52620020 TM QCBFLAG,QCBTSSES TERMINAL IN TIME-SHARING S22029 52630022 * SESSION S22029 52640022 BCR 7,R14 YES, DO NOT SEND ANY MSG S22029 52650022 * TRAFFIC AT THIS TIME S22029 52660022 L R11,AVTEA 52680020 CLI QCBSTPRI,CLOCK . CLOCK OPTION S22026 52860022 BNE CHKINTVL BR NO X03039 52900008 * X03039 52903008 CLI QCBSTVTO,DSPSEND QCB FOR VTAM TERMINAL @Y17XAQZ 52906000 BNER R14 BR NO X03039 52909008 * X03039 52912008 TM QCBTSOF1,QCBDELAY QCB ON TIME DELAY X03039 52915008 BOR R14 BR YES X03039 52918008 * X03039 52921008 B CONTINUE GO FIND SEND SCHEDULER X03039 52924008 * X03039 52927008 CHKINTVL EQU * X03039 52930008 CLI QCBSTPRI,INTVL . INTVL OPTION S22026 52940022 BNE CONTINUE . BRANCH IF NO S22026 52980022 * IF THE STCB PRTY IS X'70' CHECK IF THE QCB IS IN THE TIME 53040020 * QUEUE. IF YES - REMOVE THE QCB AND PUT THE SEND SCHED. 53100020 * BACK INTO THE QCB STCB CHAIN. 53160020 BAL R10,CKDELAYQ 53220020 CONTINUE EQU * 53280020 STM R0,R15,AVTSAVE4 SAVE CALLERS REGISTERS SA61768 53288000 * SAVE AREAS USED AT THIS POINT ARE SA61768 53296000 * 19R4 - AVTSAVE3+4, R14 SA61768 53304000 * IEDQHG - AVTSAVE2 ( IN R13) +C FOR R14 - R12 SA61768 53312000 * PRIOR TO THIS APAR FIX, IEDQFA USED AVTSAVE4+10 FOR SA61768 53320000 * REGS 0 - 15, IGG019RP USED AVTSAVE3+36 FOR REGS 3-12 SA61768 53328000 CONTINU2 EQU * SA61768 53334000 LA R15,QCBSTCHN-1 IS THE SCHEDULER THE 53340020 L RSCB,QCBSTCHN-1 FIRST STCB ON THE QCB 53400020 LA RSCB,0(RSCB) STCB CHAIN 53460020 CLR RSCB,R15 BR NO 53520020 BNE CHKCONC . TO CHECK IF CONC S22026 53580022 SR R15,R15 53700020 IC R15,QCBSTVTO OFFSET TO THE SCHEDULER 53760020 AR R15,R15 DOUBLED TO GET TO THE 53820020 L RSCB,AVTDISP-24(R15) ADDRESS IN THE DISP V CON 53880020 SH RSCB,AVTHA2 TABLE - HALF WORD BEFORE 53940020 LH R15,0(RSCB) THE CODE IS THE OFFSET 54000020 AR R15,RSCB TO THE SUBROUTINE TO FIND 54060020 BALR R14,R15 54120020 RESET EQU * 54300020 LM R0,R15,AVTSAVE4 RESTORE REGISTERS SA61768 54360000 BR R14 54480020 CHKCONC CLI QCBSTVTO,CONC . CONCENTRATOR S22026 54486022 BNE RESET . BRANCH IF NO S22026 54492022 TM QCBDSFLG,QCBDRQQ . DRQ S22026 54498022 BO RESET . BRANCH IF YES S22026 54504022 LH RSCB,QCBEXTO . EXT OFFSET S22026 54510022 AR RSCB,RQCB . QCBE ADDRESS S22026 54516022 L RSCB,QCBECONC-1-IEDQQCBE(RSCB) TRM ENTRY S22026 54522022 L RQCB,TRMDESTQ-1-IEDQTRM(RSCB) .DRQ ADDRESS S22026 54528022 B CONTINU2 CONTINUE SA61768 54534000 CKDELAYQ EQU * 54540020 TM QCBINSRC+2,QCBDELAY QCB IN DELAY Q 54600020 BCR 14,R10 BR NO 54660020 TM QCBSTAT,QCBTRMHO TERMINAL HELD SA59006 54680022 BCR 1,R10 BR YES, RETURN SA59006 54700022 TM AVTBIT2,AVTREUSN REUSABILITY RUNNING @XA05307 54701061 BNO CONT BR NO, FORGET IT @XA05307 54702061 LA R1,IEDQQCB+QCBMSIZE-QCBPSIZE INIT FOR SCAN LOOP @XA05307 54703061 SCANLOOP EQU * @XA05307 54704061 LA R1,QCBPSIZE(0,R1) NEXT PRIORITY QCB @XA05307 54705061 OC QCBFFEFO-IEDQPQCB(3,R1),QCBFFEFO-IEDQPQCB(R1) @XA05307 54706061 * UNSENT FEFO MESSAGE @XA05307 54707061 BNZ CONT BR YES, CONTINUE @XA05307 54708061 CLI QCBPRIPQ-IEDQPQCB(R1),AVTEZERO LAST PRIORITY QCB@XA05307 54709061 BNE SCANLOOP BR NO, CONTINUE @XA05307 54710061 BR R10 BR RETURN @XA05307 54711061 CONT EQU * @XA05307 54712061 ST R14,AVTPARM3 SAVE RETURN ADDRESS @SA74250 54720000 LR R1,RQCB QCB ADDR TO REMOVE 54780020 L R15,AVTHG02 ADDR OF SUBRTN 54840020 BALR R14,R15 54900020 NI QCBINSRC+2,X'FF'-QCBDELAY 54960020 LA R15,QCBSTCHN-1 ADDR OF SEND SCHED 55020020 MVC QCBSLINK(3),QCBSTCHN MOVE THE STCB LINK FIELD 55080020 IC R1,QCBSTCHN-1 PUT SEND SCH BACK IN CHAIN 55140020 ST R15,QCBSTCHN-1 55200020 STC R1,QCBSTCHN-1 55260020 L R14,AVTPARM3 SAVE RETURN ADDRESS @SA74250 55320000 BR R10 RETURN 55380020 AIF (&A NE 3).H010 55440020 SWAPNOT EQU * 55500020 BAL R10,NOSWAP 55560020 B UNITQUE 55620020 SETDISK EQU * 55680020 TM QCBDSFLG,QCBREUS+QCBNREUS 55740020 * IS THIS A CORE ONLY QCB 55800020 BCR 8,R9 55860020 MVC PRFCRCD(3),QCBDNHDR 55890022 TM PRFSTAT1,PRFNHDRN 55920020 BZ DISKALL . YES, WE'RE SET S22025 55980022 MVC PRFCRCD(3),SCBDNSEG . SEG DISK ADDRESS OF THIS BFR 56040020 DISKALL EQU * 56100020 L RPREFIX,AVTDOUBL+4 56160020 B QUEUE1 56220020 .H010 AIF (&A EQ 2).H011 56460020 QUEUNITS EQU * 56520020 ST RPREFIX,AVTDOUBL 56580020 LTR R12,R12 56640020 BM OUTSZE 56700020 LH R9,PRFSIZE 56760020 COMPSZE EQU * 56820020 CH R9,AVTKEYLE 56880020 BNH FIXSZE . BR IF END IN THIS UNIT 56970020 SH R9,AVTKEYLE 57060020 L R6,PRFTIC 57120020 XC 1(7,R6),1(R6) CLEAR DATA AREA 57180020 MVI DATFLAGS-IEDQDATA(R6),DATNPRFX 57240020 B COMPSZE 57300020 FIXSZE EQU * 57360020 STC R9,DATCOUNT-IEDQDATA(RPRF) 57420020 OUTSZE EQU * 57480020 XC PRFTIC+1(3),PRFTIC+1 57540020 L R6,AVTDOUBL 57600020 XC PRFKEY(6),PRFKEY . ZERO IF SINGLE UNIT 57630020 XC PRFNTXT(3),PRFNTXT CLEAR THE NTXT OF BFR 57660020 TM PRFSTAT1,PRFNHDRN IS THIS A HEADER 57720020 BNO COREHDR BR YES 57780020 MVI PRFTIC,AVTEZERO 57840020 MVC PRFCHDR(3),SCBCCHDR CORE CURR HDR ADDR 57900020 MVC PRFCORE(3),AVTDOUBL+1 57960020 MVC PRFCRCD(3),PRFCORE SET CURRENT RECORD IN SA52971 57980022 * CASE MAIN ONLY SA52971 58000022 MVC AVTDOUBL+1(3),SCBCLSEG ADDR OF PREV. TXT 58020020 L R9,AVTDOUBL 58080020 MVC PRFNTXT-IEDQPRF(3,R9),PRFCORE 58140020 * ADDR OF THIS RECORD IN PREVIOUS UN TXT 58200020 MVC SCBCLSEG(3),PRFCORE 58260020 BR R10 58320020 CNTUNITS EQU * 58380020 SR R14,R14 58440020 IC R14,PRFNBUNT MO. OF UNITS IN TGUS BFR 58500020 TM PRFSTAT1,PRFDUPLN 58560020 BNO UNITCNT 58620020 LR R10,R9 . SAVE RTN ADDR 58630020 BAL R1,DUPLCORE . FIND THIS ORIG. HDR 58640020 LR R9,R10 . RESTORE ADDR 58650020 LA R14,1 58680020 UNITCNT EQU * 58740020 SR R5,R5 . CLEAR TO INITIALIZE 58800020 SR R0,R0 . CLEAR TO INITIALIZE 58860020 L R10,AVTCADDR NO. UNITS USED IN COREQ@OY12977 58870000 TM QCBSTAT,QCBTRMHO TERM HELD @ZA06194 58880000 BO TOOMANY BR, YES @ZA06194 58900000 AR R10,R14 + NO. IN THIS BFR 58980020 C R10,AVTTOTNC 59040020 BH TOOMANY NO. OF CORE UNITS-BR YES 59100020 C R10,AVTCMAX 59220020 BL NOBITSET 59280020 OI AVTSYSER,AVTCMAXN SET CORE MAX 59340020 AIF (&A EQ 1).H012A 59348020 * IF DISK BACKUP - STOP CORE QUEUEING WHEN OVER CORE 59356020 * MAX TO PREVENT FILLING TJE CORE QUEUE 59364020 TM QCBDSFLG,QCBREUS+QCBNREUS 59372020 BM TOOMANY . BR IF DISK BACKUP 59380020 .H012A ANOP 59388020 NOBITSET EQU * 59400020 ST R10,AVTCADDR . SET NEW NO. USED FROM CORE Q 59430020 C R10,AVTCMIN 59460020 BL GETUNITS 59520020 NI AVTSYSER,AVTCMINF 59580020 GETUNITS EQU * 59640020 LR R11,R14 . SAVE NUMBER GOTTEN 59670020 TAKEUNIT EQU * 59700020 NC AVTBFREB+1(3),AVTBFREB+1 59760020 BZ ALLGONE 59820020 L R5,AVTBFREB 59880020 MVC AVTBFREB+1(3),PRFLINK-IEDQPRF(R5) 59940020 * REMOVE THE FIRST UNIT 60000020 ST R0,PRFTIC-IEDQPRF(R5) LINK THIS UNIT TO PREV. ONE 60060020 LR R0,R5 GET NOE PREV. UNIT 60120020 BCT R14,TAKEUNIT WHEN THE NECESSARY UNITS 60180020 * HAVE BEEN REMOVED, SET UP 60240020 * TO POST THEM AS ONE UNIT 60300020 IC R14,PRFNBUNT PUT NUMB OF UNITS 60360020 STC R14,PRFNBUNT-IEDQPRF(R5) IN NEXT BFR 60420020 XC PRFLINK-IEDQPRF(3,R5),PRFLINK-IEDQPRF(R5) 60480020 LH R0,AVTAVFCT . SUBTRACT THE NO. OF UNITS 60540020 N R0,AVTCLRHI CLEAR HIGH BYTES @YA07705 60570000 * TO BE USED FROM THE AVAILABLE COUNT 60600020 SR R0,R11 . DECR NO GOTTEN 60660020 STH R0,AVTAVFCT 60720020 BR R9 60780020 ALLGONE EQU * 60840020 LA R5,0(0,R5) 60900020 LTR R5,R5 60960020 BZ TOOMANY 61020020 MVC PRFLINK-IEDQPRF(3,R5),AVTBFREB+1 61080020 ST R5,AVTBFREB 61140020 L R5,PRFTIC-IEDQPRF(R5) 61200020 B ALLGONE 61260020 AIF (&A EQ 1).H012 61320020 NOSWAP EQU * 61380020 LH R2,AVTKEYLE 61440020 XC 0(8,R5),0(R5) CLEAR FIRST 8 BYTES OF BFR 61500020 ST RPRF,AVTDOUBL+4 61560020 LR R0,R5 61620020 LR R9,RPRF 61680020 BCTR R2,0 FOR EXECUTE INSTR. 61740020 SR RPRF,RPRF CLEAR 61800020 IC RPRF,PRFNBUNT-IEDQPRF(R9) UNITS IN BFR 61860020 MOVE EQU * 61920020 EX R2,TRANSFER 61980020 BCT RPRF,NXTUNT DECR UNIT CNT 62040020 LR RPREFIX,R0 62100020 BR R10 62160020 NXTUNT EQU * 62220020 L R5,PRFTIC-IEDQPRF(R5) 62280020 L R9,PRFTIC-IEDQPRF(R9) 62340020 B MOVE 62400020 .H012 ANOP 62460020 SETFEFO EQU * 62520020 LTR R12,R12 CALLED BY REUS 62580020 BCR 8,R9 YES - RETURN 62640020 LR R2,R9 . SAVE RTN ADDR 62700020 BAL R9,LOCKMSG 62760020 B INITFEFO . IF RTN HERE - NOT LOCK MSG 62820020 * SO THE FEFO PRTR SHOULD BE SET 62880020 LR R9,R2 . RESTORE RTN ADDR 62940020 BR R9 . RETURN - NO FEFO PTR ON LOCK 63000020 INITFEFO EQU * 63060020 LR R9,R2 . RESTORE RTN ADDR 63120020 BAL R14,SENDINIT 63180020 B SETFEFO1 63240020 BR R9 63300020 SETFEFO1 EQU * 63360020 MVC AVTDOUBL+1(3),PRFCORE 63420020 TM PRFSTAT1,PRFNHDRN THIS A HDR 63480020 BNO RECOK BR YES 63540020 MVC AVTDOUBL+1(3),PRFCHDR NEW HDR ADR 63600020 RECOK EQU * 63660020 * IF ONLY 1 THERE THE MSG COULD HAVE BEEN READ BUT THE 63720020 * FEFO PTR MAY NOT BE UPDATED YET , SO THE SCB IN WHICH 63780020 * THE FEFO PTR WAS SAVED MUST BE UPDATED. 63840020 STM R14,R12,AVTSAVE2+12 . SAVE REGS SA52971 63900022 LA R9,QCBLFEFO . SET HM03 INPUT SA52971 63920022 LA R10,AVTDOUBL+1 . PARAMETERS SA52971 63940022 BAL R14,IEDQHM03 63960020 LM R14,R12,AVTSAVE2+12 . RESTORE REGS SA52971 64020022 LH R2,QCBLFEFO KEEP ADDR OF 64320020 SLL R2,8 LAST COMPLETELY RCVD MSG 64380020 IC R2,QCBLFEFO+2 64440020 MVC QCBLFEFO(3),AVTDOUBL+1 64500020 NC QCBFFEFO(3),QCBFFEFO IS THERE ONE FEFO MSG 64560020 BZ FIRSTFFO 64620020 MVC DATFEFO(3),QCBLFEFO 64680020 BR R9 64740020 FIRSTFFO EQU * 64800020 MVC QCBFFEFO(3),QCBLFEFO 64860020 BR R9 64920020 MSGCNT EQU * 64980020 LH R5,QCBMSGCT . MSGCNT HAS ALREADY BEEN 65040020 BCTR R5,0 CHANGED FOR THIS HDR 65100020 STH R5,QCBMSGCT . FIX IT BACK 65160020 B RCQCB 65220020 TOOMANY EQU * 65280020 LTR R12,R12 . REUS OR COPY 65340020 BM 4(R9) . RETURN AT +4 65400020 TM QCBDSFLG,QCBREUS+QCBNREUS ANY DISK SA61085 65420000 BM NOTLOST . BRANCH IF YES SA61085 65440000 OI SCBERR3,SCBLOSTN . SET LOST MSG 65460020 NOTLOST EQU * SA61085 65490000 SR R10,R14 65520020 ST R6,AVTDOUBL+4 SAVE BFR ADDR 65580020 TM PRFSTAT1,PRFNHDRN 65640020 BO NOTHDR 65700020 TM PRFSTAT1,PRFDUPLN . DUPL HDR - NO QUEUEING 65720020 BO MSGCNT . BR IF DUPL TO DECR MSG COUNT 65740020 AIF (&A EQ 1).H013 65760020 TM PRFSTAT1,PRFERMGN . IS THIS AN ERRORMSG 65770020 BO NOCLR . BR IF ERR MSG 65780020 CLEARCOR EQU * . A51776 65785022 XC SCBCCHDR(3),SCBCCHDR . CHEAR FOR NOQUEUE 65790020 NOCLR EQU * 65800020 TM QCBDSFLG,QCBREUS+QCBNREUS 65880020 BM QUEUE1 65940020 .H013 ANOP 66000020 XC SCBMRFSD(4),SCBMRFSD STOP MULT RT AND DLIST 66180020 BAL R14,SENDINIT 66240020 B NOHMSG 66300020 OI DATFLAGS-IEDQDATA(R6),DATINITL . SET INIT LOST 66360020 NOHMSG EQU * 66420020 LA R10,1(R10) 66480020 C R10,AVTTOTNC IF ONE UNIT IS AVAILABLE 66540020 * THE RCV. SWITCH SHOULD NOT BE SET 66600020 BNH UNITHERE BR IF AVAILABLE 66660020 OI AVTBIT3,AVTRECVN SET RCV SW. 66720020 UNITHERE EQU * 66780020 SR R5,R5 CLEAR TO SET NO BUF RET@SA72466 66840061 ST R5,AVTDOUBL+4 SET NO BFR TO RETURN @SA72466 67140061 MVC AVTDOUBL+4(1),PRFSTAT1 SAVE PRFSTAT @SA72466 67440061 SR R9,R9 CLEAR REGISTER @OY14492 67510000 IC R9,PRFNBUNT NO. OF UNITS IN BUFFER @OY14492 67580000 AR R10,R9 SET TO CADDR+NBUNT @OY14492 67650000 BCTR R10,R0 ACCOUNT FOR 1 UNIT @OY14492 67720000 ST R10,AVTCADDR UPDATE NO USED UNITS 67800020 ST R6,AVTDOUBL 67860020 BAL R9,ASSIGN1 67920020 TM PRFSTAT1,PRFCNCLN . IS THIS TO BE CNCLD 67930020 BNO NOCNCL . BR NO 67940020 OI DATFLAGS-IEDQDATA(R6),DATCNCLD 67950020 NOCNCL EQU * 67960020 XC AVTDOUBL+1(3),AVTDOUBL+1 67980020 LR R2,R6 68100020 B FOUNDMSG GO FREE EXTRA UNITS @SA72466 68160061 NOLOST EQU * 68220020 ST R6,AVTDOUBL+4 SAVE BFR ADDR 68280020 MVC AVTDOUBL+4(1),PRFSTAT1 SAVE PRFSTAT @SA72466 68310061 L R2,AVTDOUBL 68340020 FOUNDMSG EQU * 68400020 MVC AVTDOUBL+1(3),PRFNTXT-IEDQPRF(R2) 68460020 XC PRFNTXT-IEDQPRF(3,R2),PRFNTXT-IEDQPRF(R2) 68520020 SR R9,R9 68580020 IC R9,PRFNBUNT-IEDQPRF(R2) 68640020 LH R1,AVTAVFCT COUNT OF AVAILABLE BFRS 68760020 N R1,AVTCLRHI CLEAR HIGH BYTES @YA07705 68790000 OI DATFLAGS-IEDQDATA(R2),DATLOSTN 68820020 NI PRFSTAT1-IEDQPRF(R2),PRFNLSTF 68880020 CLC PRFSIZE-IEDQPRF(2,R2),AVTKEYLE 68940020 BNH SIZEOK 69000020 MVC PRFSIZE-IEDQPRF(2,R2),AVTKEYLE 69060020 SIZEOK EQU * 69120020 MVI PRFNBUNT-IEDQPRF(R2),X'01' 69180020 * SET NB UNITS TO ONE IN BFR TO LEAVE 69240020 BCT R9,NEXTUNIT 69300020 XC PRFTIC+1-IEDQPRF(3,R2),PRFTIC+1-IEDQPRF(R2) 69360020 NEXTBFR EQU * 69420020 NC AVTDOUBL+1(3),AVTDOUBL+1 69480020 BZ LASTBFR 69540020 L R5,AVTDOUBL 69600020 IC R9,PRFNBUNT-IEDQPRF(R5) NO UNITS IS BFR 69660020 MVC AVTDOUBL+1(3),PRFNTXT-IEDQPRF(R5) 69720020 B FREEUNIT 69780020 NEXTUNIT EQU * 69840020 L R5,PRFTIC-IEDQPRF(R2) 69900020 XC PRFTIC+1-IEDQPRF(3,R2),PRFTIC+1-IEDQPRF(R2) 69960020 FREEUNIT EQU * 70020020 MVC PRFLINK-IEDQPRF(3,R5),AVTBFREB+1 70080020 ST R5,AVTBFREB 70140020 LR R2,R5 70200020 BCTR R10,R0 70260020 LA R1,1(R1) INCREASE COUNT FOR NO. RTNED 70320020 BCT R9,NEXTUNIT 70380020 B NEXTBFR 70440020 LASTBFR EQU * 70500020 MVC SCBCLSEG(3),SCBCCHDR . SET LAST SET (ALSO A47137 70520022 * SCBSCHDR) TO THE LAST SEGMENT ON THE QUEUE A47137 70540022 STH R1,AVTAVFCT RESTORE COUNT OF BFRS 70560020 ST R10,AVTCADDR 70620020 AIF (&A EQ 1).H0013A 70680020 TM QCBDSFLG,QCBREUS+QCBNREUS 70740020 BM QUEUE1 70800020 .H0013A ANOP 70860020 B CKLAST 70980020 NOQUEUE EQU * 71040020 BM NOQUEUE1 . BR NOT INIT LOST 71100020 TM PRFSTAT1,PRFNLSTN . IS THIS THE LAST BFR 71160020 BNO NOTHDR . BR IF LAST BFR 71220020 NOQUEUE1 EQU * 71280020 ST R6,AVTDOUBL+4 71340020 MVC AVTDOUBL+4(1),PRFSTAT1 SAVE PRFSTAT @SA72466 71370061 MVC PRFCHDR(3),SCBCCHDR 71400020 AIF (&A EQ 1).H0013B 71460020 BAL R9,SETDISK 71520020 .H0013B ANOP 71580020 CKLAST EQU * 71640020 LA R6,0(R6) 71700020 LTR R6,R6 71760020 BZ RTNBFR 71820020 TM AVTDOUBL+4,PRFNLSTN WAS THIS LAST @SA72466 71880061 BO TESTLAST BR IF NO @SA72466 71940061 LTR R12,R12 72000020 BM TESTLAST BR IF YES @SA72466 72060061 BAL R9,SETFEFO 72120020 BAL R14,FINDSTCB 72180020 BAL R14,SAMELAST 72240020 NI LCBSTAT1,LCBINITF . SET INIT MODE OFF 72300020 NI LCBINSRC+2,X'FF'-XXXON . SET INSRC FLAG OFF 72360020 TESTLAST EQU * @SA72466 72370061 L R6,AVTDOUBL+4 RESTORE ADDR OF BUFFER @SA72466 72380061 * TO FREE @SA72466 72390061 LA R6,0(R6) CLEAR HIGH ORDER BYTE @SA72466 72400061 RTNBFR EQU * 72420020 L R11,AVTEA DISP ADDR 72480020 LTR R6,R6 72540020 BZ DSPDISP BR NO 72600020 MVI PRFPRI,PRIBFRTB 72660020 LA R2,AVTBFRTB 72720020 B NRPOST 72780020 NOTHDR EQU * 72840020 MVC AVTDOUBL+1(3),SCBCCHDR 72900020 MVC PRFCHDR(3),SCBCCHDR 72960020 BAL R14,SENDINIT 73020020 B NOLOST 73080020 L R2,AVTDOUBL . ADDR OF HDR 73140020 OI DATFLAGS-IEDQDATA(R2),DATLOSTN+DATINITL 73200020 * SET INIT LOST 73260020 TM PRFSTAT1,PRFNLSTN . LAST BFR 73560020 BO RTNBFR . BR NOT LAST - DO NOT QUEUE IT 73620020 OI LCBERBST-IEDQLCB(R1),XXHMSG . SET EOM HERE 73680020 L R1,LCBSCBA-1-IEDQLCB(R1) . DEST SCB 73740020 OI SCBERR3-IEDQSCB(R1),SCBLOSTN . SET MSG LOST 73800020 CKBFR EQU * 73860020 NC AVTBFREB+1(3),AVTBFREB+1 . ANY BFRS 73920020 BZ INITNOBF . BR NO 73980020 L R5,AVTBFREB . UNIT ADDR 74040020 MVC AVTBFREB+1(3),PRFLINK-IEDQPRF(R5) . DELINK VFR 74100020 MVI PRFNBUNT-IEDQPRF(R5),X'01' . SET NO UNITS 74160020 LH R1,AVTAVFCT . DECR COUNT OF AVAIL BFRS 74220020 N R1,AVTCLRHI CLEAR HIGH BYTES @YA07705 74250000 BCTR R1,0 74280020 STH R1,AVTAVFCT 74340020 SR R2,R2 CLEAR 2 74400020 L R1,AVTCADDR . NO. OF CORE UNITS USED 74460020 IC R2,PRFNBUNT . NO THIS BFR 74520020 AR R1,R2 . NEW TOTAL USED 74580020 ST R1,AVTCADDR 74640020 NI PRFSTAT1,PRFNLSTF 74700020 B INITRTN 74760020 INITNOBF EQU * 74820020 L R1,LCBINSRC-1 . DEST LCB ADDR 76620020 TM LCBERBST-IEDQLCB(R1),LCBRDERR 76680020 * NOW WAITING FOR THIS BFR TO SEND 76740020 L R1,LCBSCBA-1-IEDQLCB(,R1) DEST SCB 76800020 BNO SETLAST . BR NOT WAITING FOR THIS BFR 76860020 MVC SCBCORE-IEDQSCB(3,R1),SCBCLSEG RESET LAST BFR 76920020 SETLAST EQU * 76980020 L R1,SCBCLSEG-1 . ADDR FOR LAST BFR 77040020 NI PRFSTAT1-IEDQPRF(R1),PRFNLSTF . SET EON 77100020 B RTNBFR 77160020 .H011 ANOP 77220020 TITLE '''IEDQHM'' - INTER-MODULE SUB-ROUTINES' . S22025 77280022 * 77340020 * 77400020 * ENTRY HERE FROM REUS - COPY AND CKPT-RESTART 77460020 * 77520020 * 77580020 DC A(IEDQHM03) 77640020 IEDQHM02 EQU * 77700020 USING *,R15 77760020 STM 14,12,12(R13) 77820020 L R12,BASE 77880020 DROP R15 77940020 * REUS, COPY, AND RESTART ALL SET UP PQCB 78000020 AIF (&A NE 3).H014 78060020 TM QCBDSFLG,QCBREUS+QCBNREUS 78120020 * IS THES A CORE ONLY QCB 78180020 BM QUEUE1 BR NO 78240020 .H014 AIF (&A NE 2).H014A 78300020 B QUEUE1 78360020 AGO .H015 78420020 .H014A ANOP 78480020 ST R6,AVTDOUBL+4 . SAVE PASSED UNIT 78540020 XC PRFTIC(4),PRFTIC . CLEAR TIC FIELD 78600020 TM DATFLAGS-IEDQDATA(R6),DATNPRFX 78660020 BNO SETNBUNT BR IF UNIT HAS PRFX 78720020 L R6,SCBCLSEG-1 ADDR LAST PRFX PASSED 78780020 B NOMVI BR NOT TO SET NBUNT 78840020 SETNBUNT EQU * 78900020 MVI PRFNBUNT,X'01' . SET 1 UNIT IN BFR 78960020 NOMVI EQU * 79020020 LA R14,1 79080020 BAL R9,UNITCNT 79140020 B TMDAT . HAVE A UNIT TO USE 79200020 BCTR R10,0 . DECRMENT MSUNIT COUNT 79260020 ST R10,AVTCADDR . UPDATE 79320020 ST R5,AVTPARM 79380020 L R2,SCBCCHDR-1 . HDR THIS MSG 79440020 L R10,AVTCADDR . NO MSUNITS USED 79500020 L R1,AVTDOUBL+4 . ADDR OF PASSED UNIT 79560020 TM DATFLAGS-IEDQDATA(R1),DATNPRFX 79620020 BO FOUNDMSG . BR NO PRFX 79680020 TM PRFSTAT1,PRFNHDRN . THIS A HDR 79740020 BO FOUNDMSG . BR NOT HDR 79800020 .H015 ANOP 79860020 COPYRTN EQU * 79920020 L R5,AVTPARM 79980020 LTR R15,R5 PASS BUFFER ADDR TO 19RP 80040000 L R14,12(13,0) RESTORE 14 80100020 LM 0,12,20(13) RESTORE REUS REGISTERS 80160020 BR R14 RETURN 80220020 AIF (&A EQ 2).H017 80280020 TMDAT EQU * 80340020 ST R5,AVTPARM 80400020 L R2,AVTDOUBL+4 . ADDR OF PASSED UNIT 80460020 TM DATFLAGS-IEDQDATA(R2),DATNPRFX PRFX IN TUNIT 80520020 * DOES THIS UNIT JAVE A PRFFIX 80580020 BNO UNITQUE . BR IF PRFX THIS UNIT 80640020 IC R1,PRFNBUNT . ADD 1 TO NBUNT OF LAST BFR 80700020 LA R1,1(R1) 80760020 STC R1,PRFNBUNT . 80820020 CHECKTIC EQU * 80880020 NC PRFTIC+1(2),PRFTIC+1 80940020 BZ NOTIC 81000020 L R6,PRFTIC 81060020 B CHECKTIC 81120020 NOTIC EQU * 81180020 ST R2,PRFTIC LINK TO PREV UNIT 81240020 MVI PRFTIC,X'00' 81300020 B COPYRTN 81360020 AIF (&A EQ 1).H016 81420020 TRANSFER EQU * 81480020 MVC PRFSUNIT-IEDQPRF(0,R5),PRFSUNIT-IEDQPRF(R9) 81540020 .H016 ANOP 81600020 DUPLTRAN EQU * 81660020 MVC PRFSUNIT-IEDQPRF(0,R5),PRFSUNIT-IEDQPRF(R2) 81720020 .H017 ANOP 81780020 COMPRI CLI QCBPRLVL,X'00' 81840020 DS 0F 81900020 BASE DC X'80' 81960020 DC AL3(DESTSCH) 82020020 ROUND DC F'3' . CONSTANT VALUE S21101 82070020 CLEAROFF DC X'00FFFFFC' 82080020 DS 0H ADDRESS CONSTANT FOR @YM04658 82090000 NPRFSIZE DC AL2(QCBPRFSZ) QCB NEG PREFIX SIZE @YM04658 82100000 ABCODE4 EQU X'04' . COPY NOT PRESENT IN SYSTEM 82120020 ABCODE7 EQU X'07' . MSG WRAPPED TOE DISK 82160020 TM TM SCBCQT,X'00' 82220020 OI OI SCBCQT,X'00' 82240020 XTIC EQU X'08' TIC OP CODE 82260020 DIALPRTY EQU X'40' PRTY OF DIAL SCHEDULER 82320020 EJECT 82380020 IEDQHM03 DS 0H 82440020 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 82500020 * 82560020 ENTRY IEDQHM03 82620020 * 82680020 * QUESTION - IS THE MSG POINTED TO BY FFEFO THE ONLY MSG ON THIS Q -- 82740020 * AND IS THAT ONE MSG BEING SENT -- IF SO, WHERE IS THE SCB -- 82800020 * 82860020 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 82920020 * 82980020 * INPUT - R14 RETURN ADDRESS 83040020 * R7 MASTER QCB 83100020 * R8 PRIORITY QCB 83160020 * R13 AVTSAVE2 83220020 * 83280020 *OUTPUT - IF THE ONLY MSG IS BEING SENT, RETURN TO R14+4, SCB IN R2. 83340020 * IF OTHERWISE, RETURN TO R14. THIS COULD BE FOR TWO REASONS -- 83400020 * A. IF FIRST MSG WAS NOT BEING SENT, RETURN TO R14 (POSITIVE). 83460020 * B. IF THE FIRST MSG WAS BEING SENT, BUT WAS NOT THE ONLY 83520020 * MSG ON THE QUEUE, RETURN TO R14 (NEGATIVE), SCB IN R2. 83580020 * 83640020 * WORK REGS MODIFIED - R0,R2,R15,R1 83700020 * 83760020 * SCRATCH AREA MODIFIED - AVTPARM3 83820020 * 83880020 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 83940020 * 84000020 LA R14,0(,R14) . FORCE POSITIVE 84060020 * IF ONLY 1 MSG THERE,THE MSG COULD HAVE BEEN READ BUT THE FEFO PTR 84120020 * MAY NOT BE UPDATED YET, SO THE SCB IN WHICH THE FEFO PTR WAS 84180020 * SAVED MUST BE UPDATED BY THE CALLER. 84240020 * 84300020 TM QCBFLAG,QCBSDFFO . IS THAT ONE MSG BEING SENT 84360020 BCR 8,R14 . NO, NOT BEING SENT 84420020 * YES, SOME MSG IS BEING 84480020 * SENT, BUT IT MAY BE 84540020 * FROM SOME OTHER PRIORITY 84600020 * LEVEL OF THIS SAME QCB 84660020 STM R14,R12,AVTSAVE4+12 SAVE REGS SA52971 84690022 BALR R15,0 . ESTABLISH ADDRESSABILITY 84720020 USING *,R15 . FOR HM03 IN R15 84780020 SR R0,R0 . ZERO WORK REG SA52971 84810022 TM QCBFLAG,QCBPROC . IS QCB FOR PROCESS ENTRY 84840020 BZ FINDLCB . NO, FIND CORRECT LCB SA52971 84900022 L RSCB,QCBPREN . GET TPROCESS ENTRY ADDR SA52971 84903022 CLI TRMSTAT+1-IEDQTRM(RSCB),AVTEZERO @SA74018 84903400 * PROCESS ENTRY CLOSED @SA74018 84903800 BNE PROCGO BRANCH IF NO @SA74018 84904200 NI QCBFLAG,AVTEFF-QCBSDFFO SET NOT SENDING @SA74018 84904600 LM R14,R12,AVTSAVE4+12 RESTORE REGS @SA76309 84904881 BR R14 RETURN TO CALLER @SA74018 84905000 PROCGO EQU * @SA74018 84905400 L RSCB,TRMSTAT-IEDQTRM(,RSCB) GET PEWA ADDR SA52971 84906022 LA RLCB,EOMSAVE-4-IEDQPEWA(,RSCB) SET FOR SAVED EOM SA52971 84909022 LA R2,(SCBFEFO-IEDQSCB)-(PRFSRCE-IEDQPRF) MAKE SAVEDSA52971 84912022 * FEFO LOOK LIKE SCB SA52971 84915022 BAL R14,APPBFR . GO CHECK SAVED BFR SA52971 84918022 LA RLCB,PERAQCB-4-IEDQPEWA(,RSCB) SET FOR READ- SA52971 84921022 * AHEAD QUEUE SA52971 84924022 TM LCBSTAT1-LCBCHAIN(RSCB),LCBRCLLN RETRIEVING SA52971 84927022 BNO NORCL . NO, WE HAVE BFR CHAIN SA52971 84930022 LA RLCB,PERAQCB-IEDQPEWA(,RSCB) GET CORRECT BFR CHN SA52971 84933022 NORCL EQU * . SA52971 84936022 LA R2,(SCBFEFO-IEDQSCB)-(PRFQCBA-IEDQPRF) MAKE SAVEDSA52971 84939022 * FEFO LOOK LIKE SCB SA52971 84942022 BAL R14,APPBFR . GO CHECK SAVED BFRS SA52971 84945022 LOOPBGN EQU * . SA52971 84948022 CLC PRFLINK-IEDQPRF(3,RLCB),AVTDELAD+1 IS THAT ALL SA52971 84951022 BE LOOPEND . YES, EXIT SA52971 84954022 LR R1,RLCB . SAVE PREVIOUS SA52971 84957022 L RLCB,PRFLINK-1-IEDQPRF(,RLCB) GET NEXT SA52971 84960022 MVC PRFQCBA-IEDQPRF(3,RLCB),PRFQCBA-IEDQPRF(R1) SET SA52971 84963022 * NEXT BFR WITH FEFO SA52971 84966022 B LOOPBGN . GO LOOK AT NEXT SA52971 84969022 LOOPEND EQU * . SA52971 84972022 LA R5,PEWASAVE+D24-IEDQPEWA(RSCB) MSG SAVED IN RETR@OX16398 84973000 LR R1,RSCB . SAVE LCB ADDRESS SA52971 84975022 LA RSCB,LCBCHAIN-IEDQLCB . SA52971 84978022 SLR R1,RSCB . SA52971 84981022 L R2,LCBSCBA-1-IEDQLCB(,R1) SCB ADDRESS SA52971 84984022 TM LCBSTAT1-IEDQLCB(R1),LCBRCLLN RETRIEVE @OX16398 84987000 BZ TSTLEVEL NO @OX16398 84987600 LA R2,(PEWASAVE+D28-IEDQPEWA)-(SCBFEFO-IEDQSCB)(R1,RSCB) 84987900 * SET PEWASAVE+28 TO LOOK LIKE SCBFEFO FOR LATER CODE @OX16398 84988800 B FEFOCK CHECK TO UPDATE FEFO PT@OX16398 84989400 SPACE 1 . SA52971 84990022 FINDLCB EQU * . SA52971 84993022 L R2,QCBDCBAD-1 . GET ADDR OF DCB 85020020 CLI QCBSTVTO,DSPLOGSC IS QCB FOR LOGTYPE S22024 85020622 BE NOT3705 BRANCH ON YES S22024 85021222 TM DCBDSORG-IHADCB(R2),AVTE80 IS THIS AN LGB ? S22024 85022022 BNO NOT3705 NO,GO GET SCB ADDR. S22024 85024022 LA R2,QCBPRFSZ QCB PREFIX SIZE @YM06062 85026000 LNR R2,R2 MAKE IT NEGATIVE @YM06062 85027000 AR R2,RQCB SET NEGATIVE QCB BASE @YM06062 85028000 TM QCBSTAT1-IEDNQCB(R2),QCBPLCBN IS PLCB ASSIGNED @OZ29731 85028682 BZ EXIT NO, EXIT IEDQHM03 @OZ29731 85029282 L R2,QCBPLCBA-1-IEDNQCB(R2) GET PLCB ADDRESS S22024 85030022 B RITELCB EXIT TO COMMON CODE 85032022 NOT3705 EQU * 85034022 IC R0,DCBEIOBX-IHADCB(,R2) .GET SIZE OF AN LCB 85140020 ST R0,AVTPARM3 . SAVE SIZE OF AN LCB 85200020 L R2,DCBIOBAD-IHADCB(,R2) .GET PSEUDO IOB ADDR 85260020 LA R1,LCBFLAG1-IEDQLCB . GET OFFSET INTO LCB OF IOB 85320020 SR R2,R1 . BACK UP TO PSEUDO LCB 85380020 AR R2,R0 . BUMP TO FIRST REAL LCB 85440020 TM LCBSTAT2-IEDQLCB(R2),LCBDIAL IS THIS A DIAL LCB 85500020 BO DIALCB . YES, DIAL 85560020 * NO, NON-DIAL 85620020 SR R1,R1 . CLEAR WORK REG 85680020 IC R1,QCBRELLN . GET REL. LINE NO. 85740020 BCTR R1,0 . ADJUST FOR ONE BUMP 85800020 * ALREADY DONE 85860020 MR R1-1,R0 . MULT. REL. LINE NO(-1) TIMES 85920020 * LCB SIZE, GET OFFSET TO LCB 85980020 AR R2,R1 . BUMP TO PROPER LCB 86040020 LR R11,R2 . SAVE LCB ADDRESS SA52971 86070022 L R2,LCBSCBDA-1-IEDQLCB(,R2) GET ADDR FIRST SCB 86100020 SR R0,R0 . CLEAR BOTH 86160020 LR R1,R0 . WORK REGS 86220020 IC R1,QCBSCBOF . GET INDEX TO PROPER SCB 86280020 IC R0,AVTSCBSZ . GET SIZE OF ONE SCB 86340020 MR R1-1,R0 . MULT. NO. OF SCB TIMES SIZE 86400020 * OF ONE SCB, GET OFFSET 86460020 ALR R2,R1 . BUMP ADDR OF FIRST SCB TOA42367 86520021 * PROPER SCB FOR THIS QCB 86580020 LR RSCB,R2 . SAVE SCB ADDR SA52971 86610022 TM SCBQTYPE-IEDQSCB(R2),SCBCONC IS THIS A CONCEN SA52971 86640022 BZ RELOAD . BRANCH IF NO SA52971 86740022 LR R2,RQCB . GET QCB ADDR SA52971 86940022 AH R2,QCBEXTO . GET QCB EXTENSION SA52971 87040022 LR R12,R2 . SAVE PRIMARY ADDR SA52971 87100022 TM QCBEFLG-IEDQQCBE(R2),QCBEOPL MSG,L QUEUE SA52971 87140022 BZ RSETLCB . NO, GO RESET LCB SA52971 87240022 LA RLCB,IEDQPQCB-QCBPSIZE . GET 0TH PRI QCB SA52971 87340022 EXTLOOP EQU * . SA52971 87440022 IC R0,QCBELGTH-IEDQQCBE(,R2) GET EXTENSION LENGTH SA52971 87540022 AR R2,R0 . GO TO NEXT EXTENSION SA52971 87640022 LA RLCB,QCBPSIZE(,RLCB) . POINT TO NEXT PRI QCB SA52971 87740022 CR RLCB,RPQ . IS THIS CORRECT ONE SA52971 87840022 BNE EXTLOOP . NO, LOOK AT NEXT SA52971 87940022 LR R12,R2 . SAVE PRIMARY ADDR SA52971 87990022 LA R5,(SCBFEFO-IEDQSCB)-(QCBEFEFO-IEDQQCBE) GET DECRSA52971 88040022 * FOR DUMMY SCB SA52971 88140022 SLR R2,R5 . MAKE FEFO PTR LOOK LIKE SA52971 88240022 * IT'S IN SCB SA52971 88340022 LA R5,((SCBFEFO-IEDQSCB)-(QCBEFEFO-QCBEHDR))(,R2) PTSA52971 88440022 * TO HEADER ADDR SA52971 88540022 BAL R14,FEFOCOMP . GO CHECK MSG SA52971 88640022 RSETLCB EQU * . SA52971 88650022 TM QCBEFLG-IEDQQCBE(R12),QCBEPEND QACTION HERE SA52971 88660022 BZ RELOAD . NO, WE'RE SET SA52971 88670022 LR R2,RQCB GET QCB ADDR SA58988 88680022 AH R2,QCBEXTO CALC QCB EXTENSION SA58988 88683022 MVC AVTSAVE4+1(3),QCBELCB-IEDQQCBE(R2) RESET TO SA58988 88686022 L R11,AVTSAVE4 . DUMMY LCB IN QACTION SA52971 88690022 RELOAD EQU * . SA52971 88740022 LR R1,R11 . SET LCB ADDRESS SA52971 88840022 LR R2,RSCB . RESET SCB ADDR SA52971 88940022 B TSTLEVEL . GO CHECK SCB SA52971 89040022 SPACE 1 . SA52971 89140022 DIALCB EQU * . R2 IS ADDR OF LCB 89280020 LA R0,QCBSTVTO . GET ADDR OF MASTER QCB STCB 89340020 NXTDIAL EQU * . 89400020 L R1,LCBSTCBA-1-IEDQLCB(,R2) GET ADDR OF FIRST STCB ON 89460020 TM LCBSTCBA+2-IEDQLCB(TWO),ONE LINE STOPPED FOR @YA06890 89467061 * CLOSEDOWN @YA06890 89474061 BO NXTDIAL2 BRANCH IF YES @YA06890 89481061 NXTDIAL1 EQU * OX02183 89490054 LA R1,0(,R1) . STCB CHAIN OF LCB 89520020 CR R1,R0 . DOES 3RD WORD OF LCB POINT 89580020 * TO 3RD WORD OF MASTER QCB 89640020 BE RITELCB . YES, GOT PROPER DIAL LCB 89700020 * NO, TRY NEXT DIAL LCB 89760020 CLI FOUR(R1),AVTEZERO . END OF STCB CHAIN OX02183 89770054 L R1,FOUR(,R1) . GET NEXT STCB ADDRESS OX02183 89780054 BNE NXTDIAL1 . BRANCH IF YES OX02183 89790054 NXTDIAL2 EQU * @YA06890 89800061 A R2,AVTPARM3 . BUMP BY SIZE OF LCB 89820020 B NXTDIAL . MAYBE NEXT LCB IS THE ONE 89880020 * 89940020 RITELCB EQU * . FOUND DIAL LCB 90000020 LR R1,R2 . SET LCB ADDRESS SA52971 90030022 L R2,LCBSCBA-1-IEDQLCB(,R2) GET SCB OF THIS DIAL LCB 90060020 SR R0,R0 . ZERO WORK REG SA52971 90120022 TSTLEVEL EQU * . SA52971 90122022 LA R5,SCBSCHDR-IEDQSCB(,R2) GET HEADER SA52971 90124022 TM SCBHBFNO-IEDQSCB(R2),QCBDISK+QCBCORE RECALLING SA52971 90126022 BZ FEFOCK . NO, GOT POINTER SA52971 90128022 L R1,LCBLSPCI-1-IEDQLCB(,R1) GET SERVICE BFR ADDRESSA52971 90130022 LA R1,AVTEZERO(,R1) . ZERO HI-ORDER SA52971 90132022 LTR R1,R1 . ONE THERE SA52971 90134022 BZ EXIT . NO, EXIT ROUTINE SA52971 90136022 LA R5,PRFCRCD-IEDQPRF(,R1) .ASSUME HDR; GET HDR ADDRSA52971 90138022 TM PRFSTAT1-IEDQPRF(R1),PRFNHDRN IS IT HEADER SA52971 90140022 BZ FEFOCK . YES, GO CHECK IT SA52971 90142022 LA R5,PRFCHDR-IEDQPRF(,R1) .GET HEADER'S RRN SA52971 90144022 FEFOCK EQU * . SA52971 90146022 BAL R14,FEFOCOMP . GO CHECK SCBFEFO SA52971 90148022 EXIT EQU * . SA52971 90150022 LR R2,RPRF . SET RETURN PARAMETER SA52971 90152022 LM R14,R1,AVTSAVE4+12 . RESTORE REGS SA52971 90154022 LM RSCB,R12,AVTSAVE4+32 . RESTORE REGS SA52971 90156022 BR R14 . RETURN SA52971 90158022 SPACE 1 . SA52971 90160022 APPBFR EQU * . SA52971 90162022 CLC PRFLINK-IEDQPRF(3,RLCB),AVTDELAD+1 IS ANYTHING SA52971 90164022 * THERE SA52971 90166022 BCR 8,R14 . NO, RETURN SA52971 90168022 NC PRFLINK-IEDQPRF(3,RLCB),PRFLINK-IEDQPRF(RLCB) IS SA52971 90170022 * ANYTHING THERE SA52971 90172022 BCR 8,R14 . NO, RETURN SA52971 90174022 L RLCB,PRFLINK-1-IEDQPRF(,RLCB) GET BFR ADDR SA52971 90176022 LA R5,PRFCRCD-IEDQPRF(,RLCB) ASSUME HDR SA52971 90178022 TM PRFSTAT1-IEDQPRF(RLCB),PRFNHDRN IS IT HDR SA52971 90180022 BNO HDRRN . YES, THAT'S SET SA52971 90182022 LA R5,PRFCHDR-IEDQPRF(,RLCB) SET HEADER PTR SA52971 90184022 HDRRN EQU * . SA52971 90186022 SLR R2,RLCB . BACK UP TO APPEAR AS SA52971 90188022 LPR R2,R2 . LCB SA52971 90190022 FEFOCOMP EQU * . SA52971 90192022 AIF (&A NE 3).H020 . SA52971 90194022 TM L'SCBSCHDR-1(R5),CPBQTYPE CORE COPY SA52971 90196022 BNZ DISKPTR . NO, IT'S SET SA52971 90198022 NC AVTEZERO(3,R5),AVTEZERO(R5) USABLE POINTER SA52971 90200022 BCR 8,R14 . NO, RETURN SA52971 90202022 MVC AVTSAVE4+1(3),AVTEZERO(R5) ALIGN ADDR SA52971 90204022 L R5,AVTSAVE4 . GET ADDR SA52971 90206022 LA R5,PRFCRCD-IEDQPRF(,R5) .POINT TO FEFO ADDR SA52971 90208022 DISKPTR EQU * . SA52971 90210022 .H020 ANOP , . SA52971 90212022 CLC AVTEZERO(3,R9),AVTEZERO(R5) THIS MSG TO UPDATE SA52971 90214022 BCR 7,R14 . NO, DON'T UPDATE SA52971 90216022 LR RPRF,R2 . SAVE SCB ADDRESS SA52971 90218022 OI AVTSAVE4+12,AVTE80 . SET 'FOUND' FLAG FOR RETSA52971 90220022 LTR R10,R10 . ARE WE TO UPDATE SA52971 90222022 BCR 8,R14 . NO, THEN DON'T SA52971 90224022 MVC SCBFEFO-IEDQSCB(3,R2),AVTEZERO(R10) SET FEFO SA52971 90226022 BR R14 . RETURN SA52971 90228022 TITLE '''IEDQHM'' - DSECTS' . S22025 90240022 * TPRIOR 90420020 TPRIOR 90480020 COPYPRI EQU PRIFEFO-1 . BUF POSTED BY COPY S21101 90530021 EJECT 90540020 TQCBED S22026 90630022 EJECT , . S22025 90640022 * TDISPD 90660020 TDISPD 90720020 EJECT , . S22025 90780022 TDATAD 90840020 EJECT , . S22025 90930022 * DCBD 90960020 DCBD DSORG=TX 91020020 DCBOPEN EQU X'10' 91080020 PCISEND EQU X'50' . SEND PCI=A/PCI=X S22025 91110022 EJECT , . S22025 91140022 * TPRFD 91200020 TPRFD 91260020 XPRFREUS EQU X'20' . REUSABLE DISK BUFFER S22025 91320022 XPRFNRUS EQU X'10' . PERMANENT DISK BUFFER S22025 91340022 EJECT , . S22025 91360022 * TLCBD 91380020 TLCBD 91440020 LCBNSRCD EQU X'01' . IN-SOURCE CHAIN FLAG S22025 91500022 XXXON EQU LCBNSRCD . S22025 91510022 XXHMSG EQU LCBMSG . S22025 91520022 EJECT , . S22025 91530022 * TPEWAD , . SA52971 91537022 TPEWAD , . SA52971 91544022 EJECT , . SA52971 91551022 * TTRMD 91560020 TTRMD 91620020 EJECT , . S22025 91680022 * TSCBD 91740020 TSCBD 91800020 CPBQTYPE EQU X'03' . QUEUE TYPE FLAGS S22025 91830022 SCBCN EQU X'01' 91860020 SCBCQT EQU SCBHBFNO 91920020 SCBRDX EQU SCBMBSSA 91980020 SCBNDX EQU SCBMBSSA+4 92040020 SCBCC EQU X'02' 92100020 SCBCR EQU X'04' 92160020 EJECT , . S22025 92220022 * TQCBD 92280020 TQCBD 92340020 * TAVTD , . S22025 92400022 TAVTD , . S22025 92490022 MEND 92580020