DataMuseum.dk

Presents historical artifacts from the history of:

IBM System/3

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about IBM System/3

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦d35e9e53a⟧ s3xseg

    Length: 28702 (0x701e)
    Types: s3xseg
    Names: »S$E072«

Derivation

└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
    └─⟦f17e99db6⟧ 
        └─⟦this⟧ »S$E072« 

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.* NAME: $E072                                                        * 00040000                
.********************************************************************** 00650000                
       $E072                                                            00660000                
       GBLB  &ONE,&NOB,&NOM,&MIN,&NSW,&N2741,&NSCTL,&NBFR,&NCS,&NSWL    00670000                
       GBLB  &BPRT                                                    *L00680000                
       LCLA  &MIX                                                       00700000                
       TEXT                                                             00710000                
* R-15,C-00   CHANGE LEVEL                                              00720000                
       TITLE '$E072/$$BMCH--CCP-VERSION-TP-CHECK'                       00730090                
*  PRINTER BUSY FLAG   2/22/78                                        *L00730130                
$$BMCH EQU   *                                                          00730180                
       ENTRY $$BMCH                                                     00730270                
       ENTRY CHBMHL                                                     00730360                
       AIF   (&NOB).H0050                                               00730450                
       ENTRY CHBMBS                                                     00730540                
.H0050 AIF   (&NOM).H0100                                               00730630                
       ENTRY CHBMML                                                     00730720                
       ENTRY CHBMPC                                                     00730810                
.H0100 ANOP                                                             00730900                
*********************************************************************** 00730990                
*                                                                     * 00731080                
*TITLE: $$BMCH - TELEPROCESSING MULTIPLE WAIT.                        * 00731170                
*                                                                     * 00731260                
*FUNCTION: THE FUNCTION OF THIS WAIT ROUTINE IS TO SCAN A LIST OF DTFS* 00731350                
*   AND, IF NECESSARY, PASS CONTROL AND THE DTF TO THE APPROPRIATE    * 00731440                
*   DEVICE WAIT ROUTINE (BSCA, OR MLTA).  THE USER IS THEN NOTIFIED   * 00731530                
*   OF A COMPLETION VIA THE APPROPRIATE DTF.                          * 00731620                
*                                                                     * 00731710                
*INPUT:  INPUT TO THE ROUTINE IS THE WAIT LIST OF DTF'S.              * 00731800                
*                                                                     * 00731890                
*OUTPUT: OUTPUT FROM THE ROUTINE WILL BE REGISTER 2 POINTING AT THE   * 00731980                
*   COMPLETED DTF, WHICH CONTAINS THE COMPLETION CODE.  ON RETURN WITH* 00732070                
*   NO COMPLETIONS OR NO ACTIVE DTF'S, XR2 WILL POINT TO THE LAST DTF * 00732160                
*   IN THE LIST, ALSO WITH THE APPROPRIATE COMPLETION CODE.           * 00732250                
*                                                                     * 00732340                
*EXTERNAL ROUTINES:                                                   * 00732430                
*        MSBSCH - BSCA PROGRAM WAIT ROUTINE.                          * 00732520                
*        $MLCK0 - MLTA CHECK ROUTINE.                                 * 00732610                
*                                                                     * 00732700                
*********************************************************************** 00732790                
       SPACE 3                                                          00732880                
*********************************************************************** 00732970                
*        INITIALIZATION / TEST FOR DEVICE TYPE                        * 00733060                
*********************************************************************** 00733150                
       SPACE 1                                                          00733240                
CHENTR EQU   *                                                          00733330                
       ST    CHSTOR,ARR                SAVE RETURN @                    00733420                
       MVI   CHACTV,UNCOND            INTITALIZE SWITCH TO FALL THRU    00733510                
       L     CCKLST,LISTRG            POINT REGISTER AT WAIT LIST       00733600                
       SPACE 1                                                          00733690                
CHSTRT EQU   *                                                          00733780                
       L     DTFADR(,LISTRG),DTFREG   POINT REGISTER TO DTF             00733870                
       TBN   FLAGS(,LISTRG),OPGONE    WAS THE COMPL. CODE DESTROYED?    00733960                
       JF    CHNODS                   BRANCH IF NOT                     00734050                
       MVI   DTFCMP(,DTFREG),OPACC    RESTORE COMPLETION CODE           00734140                
CHNODS EQU   *                                                          00734230                
       TBN   FLAGS(,LISTRG),SKIP      IS THIS ENTRY TO BE SKIPPED?      00734320                
       JT    CHSTND                   GO TEST FOR END IF YES            00734410                
       TBN   DTFATR(,DTFREG),FILOPN+FILEAC  THIS FILE OPEN AND ACTIVE?  00734500                
       JF    CHSTND                   BRANCH IF NOT                     00734590                
       AIF   (&NOM).H0300                                               00734680                
       AIF   (&NOB).H0200                                               00734770                
       CLI   DTFDEV(,DTFREG),BSCA     BSCA ADAPTER ?                  2 00734860                
       JNL   CHBSCA                   BRANCH IF YES                   2 00734950                
.H0200 EJECT                                                            00735040                
*********************************************************************** 00735130                
*                    PROCESS MLTA DTF                                 * 00735220                
*********************************************************************** 00735310                
       SPACE 2                                                          00735400                
CHMLTA EQU   *                                                          00735490                
       CLI   CHCHEK,NOMLTA            IS MLTA IN THE PROGRAM?         M 00735580                
       JE    CHSTND                   BRANCH IF NOT                   M 00735670                
       MVI   CHACTV,NOOPED            SET ACTIVE DTF FOUND SWITCH     M 00735760                
       ST    CHSV1,LISTRG             SAVE WAIT LIST POINTER          M 00735850                
       L     CCKLST,LISTRG            POINT XR1 TO START OF WAIT LIST M 00735940                
       B     *-*                      GO TO MLTA CHECK ROUTINE        M 00736030                
CHCHEK EQU   *-2                      ADDRESS FILLED BY               M 00736120                
CHBMML EQU   *-1                                       MLTA IOCS OPEN M 00736210                
       SPACE                                                            00736300                
CHSV1  EQU   *+3                                                      M 00736390                
       LA    *-*,LISTRG               RESTORE WAIT LIST POINTER       M 00736480                
       TBN   DTFATR(,DTFREG),FILEAC   WAS THE OP. POSTED COMPLETE?    M 00736570                
       JF    CHPNTR                   BRANCH TO SET POINTER IF YES    M 00736660                
       AIF   (&NOB).H0400                                               00736750                
       J     CHSTND                   GO TEST FOR END OF LIST         2 00736840                
.H0300 EJECT                                                            00736930                
*********************************************************************** 00737020                
*                    PROCESS BSCA DTF                                 * 00737110                
*********************************************************************** 00737200                
       SPACE 1                                                          00737290                
CHBSCA EQU   *                                                          00737380                
       CLI   CHCKBS,NOBSCA             IS BSCA IN THE PROGRAM?        B 00737470                
       JE    CHSTND                    BRANCH IF NOT                  B 00737560                
       CLI   DTFCMP(,DTFREG),OPACC    IS A BSCA OPERATION PENDING?    B 00737650                
       JNE   CHSTND                   GO TEST FOR END OF LIST IF NOT  B 00737740                
       MVI   CHACTV,NOOPED            SET ACTIVE DTF FOUND SWITCH     B 00737830                
CHCKBS EQU   *+2                                                      B 00737920                
       B     *-*                      GO TO BSCA WAIT ROUTINE         B 00738010                
CHBMBS EQU   *-1                      ADDRESS FOR BSCA PROGRAM WAIT   B 00738100                
       CLI   DTFCMP(,DTFREG),OPACC    WAS A COMPLETION POSTED?        B 00738190                
       JNE   CHPNTR                   BRANCH IF POSTED.               B 00738280                
.H0400 SPACE 3                                                          00738370                
*********************************************************************** 00738460                
*                  CHECK FOR END OF WAIT LIST                         * 00738550                
*********************************************************************** 00738640                
       SPACE 1                                                          00738730                
CHSTND EQU   *                                                          00738820                
       AIF   (&MIN).H0500                                               00738910                
       TBN   FLAGS(,LISTRG),LSTEND    END OF WAIT LIST?                 00739000                
       JT    CHEND                    BRANCH IF YES                     00740100                
       LA    NEXT(,LISTRG),LISTRG     POINT  TO NEXT LIST ENTRY         00740200                
       B     CHSTRT                   GO TEST NEXT ENTRY                00740300                
       AGO   .H0540                                                     00740350                
.H0500 SPACE 3                                                          00740400                
       J     CHEND                    NO COMPLETIONS-JUMP               00740430                
.H0540 ANOP                                                             00740460                
CHBMHL DC    XL3'0'                   BOGUS DC FOR BRACKET HALT         00740500                
       AIF   (&NOM).H0550                                               00740600                
CHBMPC EQU   *-1                      BOGUS DC FOR PCI INTERUPTS        00740700                
.H0550 ANOP                                                             00740800                
       EJECT                                                            00740900                
*********************************************************************** 00741000                
*                  PROCESS END OF LIST CONDITIONS                     * 00741100                
*********************************************************************** 00741200                
       SPACE 3                                                          00741300                
CHEND  EQU   *                                                          00741400                
       L     DTFADR(,LISTRG),DTFREG   POINT XR2 TO DTF                  00741500                
       CLI   DTFCMP(,DTFREG),OPACC    IS CODE OP ACCEPTED?              00741600                
       JNE   CHNOOP                   BRANCH IF NOT                     00741700                
       SBN   FLAGS(,LISTRG),OPGONE    SET BIT FOR DESTROYED CODE        00741800                
CHNOOP EQU   *                                                          00741900                
       MVI   DTFCMP(,DTFREG),INACTV   SET COMPLETION TO NO ACTIVE DTF'S 00742000                
** THE FOLLOWING BRANCH IS SET TO NOOP IF AN ACTIVE DTF IS FOUND   **   00742100                
CHACTV EQU   *+1                      ACTIVE DTF SWITCH                 00742200                
       BC    CHPNTR,UNCOND            BRANCH IF NO ACTIVE DTF'S         00742300                
       MVI   DTFCMP(,DTFREG),NOCOMP   SET RETURN ON NO COMPLETIONS CODE 00742400                
       SPACE 3                                                          00742500                
*********************************************************************** 00742600                
*                  RESTORE POINTERS AND EXIT                          * 00742700                
*********************************************************************** 00742800                
       SPACE 3                                                          00742900                
CHPNTR EQU   *                                                          00743000                
       L     DTFADR(,LISTRG),DTFREG   POINT REGISTER TO DTF             00743100                
CHSTOR EQU   *+3                      RETURN @ PLUGGED HERE             00743200                
       B     #                        RETURN                            00743300                
       EJECT                                                            00743400                
*********************************************************************** 00743500                
*              EQUATES FOR COMMON CHECK                               * 00743600                
*********************************************************************** 00743700                
       SPACE 3                                                          00743800                
DTFADR EQU   2                        DISPLACEMENT TO DTF IN WAIT LIST  00743900                
DTFREG EQU   2                        DTF POINTER - REGISTER 2          00744000                
FLAGS  EQU   0                        DISPLACEMENT TO FLAGS IN LIST     00744100                
LISTRG EQU   1                        WAIT LIST POINTER - REGISTER 1    00744200                
LSTEND EQU   X'20'                    END OF WAIT LIST INDICATOR        00744300                
NEXT   EQU   3                        DISPLACEMENT TO NEXT LIST ENTRY   00744400                
NOBSCA EQU   X'00'                    MASK TO TEST FOR BSCA PRESENCE    00744500                
NOMLTA EQU   X'00'                    MASK TO CHECK FOR NO MLTA PRESENT 00744600                
NOOPED EQU   X'80'                    NOOP Q-CODE FOR BRANCH            00744700                
OPGONE EQU   X'08'                    CODE DESTROYED BIT                00744800                
SKIP   EQU   X'80'                    SKIP BIT                          00744900                
UNCOND EQU   X'87'                    UNCONDITIONAL Q-CODE FOR BRANCH   00745000                
       SPACE 2                                                          00745100                
*            DTF EQUATES.                                               00745200                
       SPACE                                                            00745300                
DTFDEV EQU   0                        DTF DEVICE TYPE.                  00745400                
DTFATR EQU   3                        DTF ATTRIBUTE BYTE.               00745500                
FILEAC EQU   X'02'                    FILE ACTIVE.                      00745600                
FILOPN EQU   X'01'                    FILE OPENED.                      00745700                
       SPACE                                                            00745800                
DTFCMP EQU   14                       DTF COMPLETION CODE.              00745900                
OPACC  EQU   X'00'                    OPERATION ACCEPTED.               00746000                
NOCOMP EQU   X'56'                    NO COMPLETED DTF'S.               00746100                
INACTV EQU   X'57'                    NO ACTIVE DTF'S.                  00746200                
       TITLE '$E072--CHECK-COMPLETION-CODE'                             00750000                
CHEND0 EQU   *                                                          00755000                
       SLC   CCOECT,CC0001(1)          SUBTRACT 1 FROM OP END COUNT     00760000                
       AIF   (&ONE).H4450                                               00770000                
       TBF   CMSWIT,CMBSCK             IS IT MLTA OR BSCA               00780000                
       CLI   $MDCMP(,XR2),$MCSKP       CHECK FOR NOTHING COMPLETE       00790000                
       BC    CMOPND,NONE+HI+LO+FALSE   BRANCH IF MLTA NOT COMPLETE      00800000                
.H4450 ANOP                                                             00810000                
       AIF   (&NOB).C0015                                               00820000                
       CLI   $BDCMP(,DTF),$BCCMP       '56' COMPLETION CODE ?         B 00830000                
       JNE   CMNT56                    NO-NOT 56, CHECK OTHERS.       B 00840000                
       AIF   (&MIN).N0100                                               00850000                
       L     CCKLST,XR1                POINT TO THE CHECK LIST.       B 00860000                
CMEXSK EQU   *                         CHECK FOR BSCA SKIP OFF.       B 00870000                
       TBF   CKLSTS(,XR1),CKLSKP       SKIP BIT OFF, AND              B 00880000                
       L     CKLDTF(,XR1),DTF          POINT TO THE DTF.              B 00890000                
       AIF   (&NOM).C0005                                               00900000                
       TBN   $BDDEV(,DTF),BSCA         * BSCA DTF, AND                B 00910000                
.C0005 ANOP                                                             00920000                
       JF    CMEXNX                    NO-GO EXAMINE NEXT ENTRY.      B 00930000                
.N0100 ANOP                                                             00940000                
       SLC   LCBOPE(1,DTF),CC0001      DECREMENT OP END BY ONE.       B 00950000                
       L     LCBPL@(,DTF),PL           POINT TO THE PARM LIST.        B 00960000                
       B     $CC4TT                    CALL TRACE TO LOG THISOP END.  B 00970000                
       DC    AL1(TTMOPN)               TRACE OP END ID.               B 00980000                
       SPACE 1                                                          00990000                
       AIF   (&MIN).N0200                                               01000000                
       J     CMEXOP                    GO CHECK FOR MORE OP ENDS.     B 01010000                
       SPACE 1                                                          01020000                
CMEXNX EQU   *                         EXAMINE NEXT LIST ENTRY.       B 01030000                
       TBN   CKLSTS(,XR1),CKLAST       LAST ENTRY IN THE LIST ?       B 01040000                
       LA    CKLEN(,XR1),XR1           POINT TO THE NEXT ENTRY.       B 01050000                
       BF    CMEXSK                    NO-GO CHECK THE NEXT           B 01060000                
.N0200 ANOP                                                             01070000                
CMEXOP EQU   *                         *                              B 01080000                
       B     CMOPND                    GO CHECK FOR MORE OP ENDS.     B 01090000                
       SPACE 1                                                          01100000                
CMNT56 EQU   *                         *                              B 01110000                
       AIF   (&ONE).C0010                                               01120000                
       TBN   $BDDEV(,DTF),BSCA         BSCA DTF ?                     2 01130000                
       JF    CMEXSV                    NO-GO SAVE DTF @ FROM CHECK.   2 01140000                
.C0010 ANOP                                                             01150000                
       SLC   LCBOPE(1,DTF),CC0001      DECREMENT LINE OP END COUNT.   B 01160000                
CMEXSV EQU   *                                                        B 01170000                
       AGO   .B0300                                                     01180000                
.C0015 ANOP                                                             01190000                
       SPACE 1                                                          01200000                
* XR2 NOW POINTS AT DTF FOR WHICH OP END OCCURRED                       01210000                
       SPACE                                                            01220000                
* ANALYZE THE COMPLETION CODE AND ACT ACCORDINGLY                       01230000                
       SPACE                                                            01240000                
       CLI   $MDCMP(,XR2),$MCRET       EVENT NOT COMPLETE               01250000                
       BNL   CMOPND                    GO TO RETEST THE OP END COUNT    01260000                
.B0300 ANOP                                                             01270000                
       SPACE                                                            01280000                
* SAVE THE TP LINE DTF ADDRESS                                          01290000                
       SPACE                                                            01300000                
       ST    CMSDTF,XR2                SAVE DTF ADDR                    01310000                
       TITLE '$E072/CMSTOP-ABORT-OPERATION-TO-THE-LINE'                 01320000                
*********************************************************************** 01330000                
* DETERMINE IF LCB INDICATION THAT ATTEMPT IS BEING MADE TO STOP THE    01340000                
* LINE IS ON                                                            01350000                
*********************************************************************** 01360000                
       SPACE                                                            01370000                
CMSTOP EQU   *                                                          01380000                
       AIF   (&ONE).C0020                                               01390000                
       TBN   $BDDEV(,DTF),BSCA         BSCA DTF ?                     2 01400000                
       JF    CMABRT                    NO-GO TO CHECK MLTA ABORT.     2 01410000                
.C0020 ANOP                                                             01420000                
       AIF   (&NOB).C0025              PRINTER BUSY                     01430000                
       TBF   $BDATT(,DTF),$BCOUT       OUTPUT SELECTION OPERATION    *L 01432000                
       JF    CMEOSO                    YES, DO NOT SET OFF RVI       *L 01434000                
       SBF   LCBOPC(,DTF),LCBRVI       SET OFF SEND RVI FLAG         *L 01436000                
CMEOSO EQU   *                         END PRINTER BUSY              *L 01438000                
       L     LCBPL@(,DTF),PL           POINT TO THE PARM LIST.        B 01440000                
&MIX   SETA  &NCS+&NSWL                                                 01450000                
       AIF   (&MIX EQ '2').S0100                                        01460000                
       TBN   LCBAT2(,DTF),LCBRCI       RECEIVE INITIAL ?              B 01470000                
       JF    CMBORT                    NO-GO CHECK BSCA ABORT.        B 01480000                
       MVI   CMB#SB,SBN2               SET FOR POLL SKIP BIT ON.      B 01490000                
       B     CMBSKP                    SKIP TO POLL SKIP BIT RTN.     B 01500000                
       SPACE 1                                                          01510000                
CMBORT EQU   *                         *                              B 01520000                
.S0100 ANOP                                                             01530000                
       TBN   LCBAT2(,DTF),LCBABT       LINE ABORT IN PROCESS ?        B 01540000                
       JF    CMSTPX                    NO-GO CHECK FOR STOP RECEIVE . B 01550000                
       SPACE                                                            01560000                
*   HANDLE THE CONTINUATION OF THE ABORTING OF THE LINE.              B 01570000                
*   TRACE THE OP END COMPLETION CODE.                                 B 01580000                
       SPACE                                                            01590000                
       B     $CC4TT                    CALL TRACE.                    B 01600000                
       DC    AL1(TTMOPN)               TRACE OP END STATUS.           B 01610000                
       SPACE 1                                                          01620000                
       TBN   LCBOPC(,DTF),OPPUT        ABORT OF A PUT OPERATION ?     B 01630000                
       BT    CMWABT                    YES-GO LET WRITE OP END HANDLE.B 01640000                
       CLI   $BDCMP(,DTF),$BCDNE       CCP PURGE COMPLETE ?           B 01650000                
       BE    CMPBMP                    NO-GO BUMP TO NEXT BLOCK.      B 01660000                
       L     $BDWKA(,DTF),WKA          POINT TO BSCA WORK AREA.       B 01670000                
       SBF   BSFLGD(,WKA),FWDABT       SET OFF FORWARD ABORT.         B 01680000                
       SLC   LCBAT2(2,DTF),LCBAT2(,DTF) CLEAR  LCBAT1 AND LCBAT2.     B 01690000                
       B     CMRSCH                    GO TO RESCHEDULE THE LINE.     B 01700000                
       SPACE                                                            01710000                
*   HANDLE CANCEL OF RECEIVE INITIAL IF ONE HAS BEEN REQUESTED.         01730000                
       SPACE                                                            01740000                
CMSTPX EQU   *                         *                              B 01750000                
       TBN   LCBAT1(,DTF),LCBCRI       STOP INVITE REQUESTED ?        B 01760000                
       JF    CMGCMP                    NO-GO HANDLE THE OP END.       B 01770000                
       AIF   (&MIX EQ '2').S0200                                        01780000                
       USING CMBSKP,XR1                                                 01790000                
       LA    CMBSKP,XR1                LOAD @ OF POLL SKIP BIT RTN.C/SB 01800000                
       MVI   CMB#SB(,XR1),SBN2         SET OP: SET SKIP BIT ON.    C/SB 01810000                
.S0200 B     $CC4PI                    CALL PROGRAM REQUEST, TO BRING B 01820000                
       DC    AL1(CC4BQ)                * IN $CC4BQ.                   B 01830000                
       SPACE                                                            01840000                
*   $CC4BQ RETURNS CONTROL TO:                                        B 01850000                
*     NSI, IF LINE IS STOPPED SUCCESSFULLY.                           B 01860000                
*     NSI+4, IF STOP FAILED, BUT CONTINUE OP END HANDLING.            B 01870000                
*     NSI+7, IF STOP FAILED, AND ABORT IS REQUIRED.                     01880000                
       SPACE                                                            01890000                
       B     CMRSCH                    LINE STOPPED, RESCHEDULE WORK. B 01900000                
       SPACE                                                            01910000                
CMGCMP EQU   *                         *                              B 01920000                
       J     CMCMP                     NOT STOPPED, HANDLE THE OP END.B 01930000                
       SPACE                                                            01940000                
       B     CMBSTP                    NOT STOPPED, ABORT THE LINE.   B 01950000                
       SPACE                                                            01960000                
       AIF   (&ONE).C0025                                               01970000                
CMABRT EQU   *                         *                              2 01980000                
.C0025 ANOP                                                             01990000                
       AIF   (&NOM).M0050                                               02000000                
       TBN   LCBATR(,XR2),LCBSTP       WAS ABORT TO STOP READ         M 02010000                
       JF    CMSWL                     JUMP IF INDICATOR OFF          M 02020000                
       SPACE                                                            02030000                
* BRING IN TRANSIENT TO HANDLE OP END FOR STOP READ REQUEST           M 02050000                
       SPACE                                                            02060000                
       B     $CC4PI                    BRANCH TO BRING IN TRANSIENT   M 02070000                
       DC    AL1(CC4SQ)                TRANSIENT ID                   M 02080000                
       SPACE                                                            02090000                
* CHECK THE LCB SWALLOW BIT                                           M 02100000                
* AND THE LCB BIT BUCKET BIT                                          M 02110000                
* IF ON - IGNORE THIS OP END                                          M 02120000                
       SPACE                                                            02130000                
CMSWL  EQU   *                         CHECK LCB SWALLOW INDICATION   M 02140000                
       SPACE                                                            02150000                
* IGNORE THE OP END IS BOTH LCB SWALLOW AND BIT BUCKET BITS ARE ON    M 02160000                
* NO MATTER WHAT TYPE OF OPERATION WAS SCHEDULED                      M 02170000                
       SPACE                                                            02180000                
       TBN   LCBATR(,XR2),LCBSWL+LCBTBK IS OP END TO BE IGNORED       M 02190000                
       JT    CMSWLP                    JUMP IF IGNORE OP END          M 02200000                
       SPACE                                                            02210000                
CMSWNT EQU   *                         TEST SWALLOW BIT               M 02220000                
       SPACE 1                                                          02230000                
* IF 2741 BIT BUCKET BIT ON OR                                        M 02240000                
* IF SWALLOW SET AND THE OP END IS FOR AN INPUT OPERATION             M 02250000                
* THEN SWALLOW (BIT BUCKET) THE DATA                                  M 02260000                
       SPACE                                                            02270000                
       TBF   $MDOPC(,XR2),MLWRIT       ASSURE IT WAS NOT WRITE OP.    M 02280000                
       JF    CMTABT                    JUMP IF WRITE                  M 02290000                
       SPACE                                                            02300000                
* HAVE NON-WRITE OP - IF SWALLOW OR BIT BUCKET ON                     M 02310000                
* BIT BUCKET THE DATA THAT CAME IN                                    M 02320000                
       SPACE                                                            02330000                
       TBF   LCBATR(,XR2),LCBSWL+LCBTBK ISBIT BUCKET OR SWALLOW ON    M 02340000                
       JT    CMTABT                    JUMP IF NEITHER SWALLOW OR BIT M 02350000                
*                                      BUCKET SET ON                  M 02360000                
       SPACE                                                            02370000                
*********************************************************************** 02380000                
* BIT BUCKET THE DATA THAT JUST CAME IN                                 02390000                
*********************************************************************** 02400000                
       SPACE                                                            02410000                
CMSWLP SBF   LCBATR(,XR2),LCBSWL+LCBTBK RESET LCB IGNORE OP END BITS  M 02420000                
       SPACE                                                            02430000                
* HAVE SWALLOW BIT SET - THUS MAY HAVE SKIP BIT OFF WHICH NEEDS TO BE M 02440000                
* TURNED ON                                                           M 02450000                
*      BRANCH IN HERE TO TRANSIENT $CC4SK                             M 02480000                
* THIS TRANSIENT WILL SET ALL SKIP BITS ON FOR A POLLING LIST         M 02490000                
       B     $CC4PI                                                   M 02500000                
       DC    AL1(CC4SK)                                               M 02510000                
       J     CMJTBY                                                   M 02520000                
       SPACE                                                            02540000                
* IF OPERATION WAS SUCCESSFUL ABORT - THEN BR TO RESCHEDULE THE LINE  M 02550000                
       SPACE                                                            02560000                
CMTABT EQU   *                         TEST FOR ABORT                 M 02570000                
       CLI   $MDOPC(,XR2),MLABRT       WAS OP AN ABORT                M 02580000                
       JNE   CMDFSV                    JUMP IF NOT ABORT              M 02590000                
       SPACE                                                            02600000                
* HAD ABORT ATTEMPT - IF RETURN CODE 44 - JUMP TO HANDLE              M 02610000                
       SPACE                                                            02620000                
CMLK44 EQU   *                         LOOK FOR 44 RETURN CODE        M 02640000                
       CLI   $MDCMP(,XR2),$MCTNR       WAS COMP CODE 44               M 02650000                
       JNE   CMDFSV                    JUMP IF UNSUCCESSFUL ABORT     M 02660000                
       SPACE                                                            02670000                
* HAD ABORT ATTEMPT                                                   M 02680000                
* ABORT WAS SUCCESSFUL SO LINE IS NOW FREE TO SCHEDULE NEXT OP        M 02690000                
* IF HOLD BUFFER HAS BEEN GETMAINED FOR THIS LINE - FREEMAIN IT NOW   M 02700000                
       SPACE                                                            02710000                
       CLI   LCBIBA-1(,XR2),NOBIT      IS HOLD BUFFER POINTER NULL    M 02720000                
       JE    CMJPRS                    JUMP IF NO HOLD BUFFER         M 02730000                
       SPACE                                                            02740000                
* HAVE HOLD BUFFER WHICH NEEDS TO BE FREEMAINED                       M 02750000                
       SPACE                                                            02760000                
       L     LCBIBA(,XR2),XR2          POINT XR2 AT HOLD BUFFER       M 02770000                
       B     CMFMRT                    BRANCH TO FREEMAIN             M 02780000                
       SPACE                                                            02790000                
       L     CMSDTF,XR2                POINT XR2 BACK AT DTF          M 02800000                
       MVI   LCBIBA-1(,XR2),NOBIT      SET HOLD BUFFER ADDR NULL      M 02810000                
       SPACE                                                            02820000                
* MUST BE SOMETHING IN THE QUEUE BECAUSE ABORT ISSUED TO FREE LINE TO M 02830000                
*  START ANOTHER REQUEST SO GO TO DETERMINE WHICH REQUEST TO START ANDM 02840000                
*  START IT                                                           M 02850000                
       SPACE                                                            02860000                
CMJPRS B     CMRSCH                    BRANCH TO RESCHEDULE THE LINE  M 02870000                
       SPACE                                                            02880000                
* DETERMINE IF OP END WAS FOR ONLINE TEST                             M 02900000                
* CHECK BIT IN LCB WHICH INDICATES IF TEST WAS RUNNING BEFORE OP.END  M 02910000                
       SPACE                                                            02920000                
.M0050 ANOP                                                             02930000                
CMDFSV EQU   *                                                          02940000                
       AIF   (&NOM).M0100                                               02950000                
       SBN   LCBATR(,XR2),LCBNIT       SET INITIAL OP BIT ON          M 02960000                
       TBN   LCBATR(,XR2),LCBOLR       TEST LCB BIT FOR ONLINE TEST   M 02970000                
       JF    CMPARM                    IF NOT OLT, JUMP TO WORK WITH  M 02980000                
*                                      PARM LIST                      M 02990000                
       SPACE                                                            03000000                
* OP END WAS FOR ONLINE TEST REQUEST                                  M 03010000                
*  FOR WHICH THERE IS NO PARM LIST                                    M 03020000                
       SPACE                                                            03030000                
       B     $CC4PI                    BRANCH TO BRING IN TRANSIENT   M 03040000                
       DC    AL1(CC4T2)                OP END OF ONLINE TEST          M 03050000                
       SPACE                                                            03060000                
CMJTBY B     CMTSBY                    BRANCH TO TEST IF LINE IS BUSY M 03070000                
       TITLE '$E072/CMPARM---LOCATE-OP-ENDED-PARM-LIST'                 03080000                
************************************************************************03090000                
*            LOCATE OP ENDED PARAMETER LIST                            *03100000                
************************************************************************03110000                
       SPACE                                                            03120000                
* DETERMINE PARM LIST FOR WHICH OP END OCCURRED                       M 03130000                
* ALSO SET UP FIELD FOR LATER DEQUEING THE PARM LIST                  M 03140000                
* SET PREVIOUS PARM LIST POINTER TO POINT TO ADDR IN DTF OF 1ST PLIST M 03180000                
* THIS FIELD WILL BE USED LATER IN DEQUEING THE OP ENDED PARM LIST    M 03190000                
* XR2 POINTS AT DTF WHICH CONTAINS THE ADDRESS OF THE 1ST PARM LIST INM 03210000                
* THE LINE QUEUE                                                      M 03220000                
       SPACE                                                            03230000                
CMPARM EQU   *                         GET PARM LIST FOR OPERATION    M 03235000                
       LA    LCBPLQ-1(,XR2),XR1        POINT TO ADDR OF 1ST PARM LIST M 03240000                
       ST    CMVPTR,XR1                STORE IN PREVIOUS POINTER FIELDM 03250000                
       SPACE                                                            03260000                
       L     LCBPLQ(,XR2),XR1          POINT XR1 AT 1ST PARM LIST IN QM 03270000                
       SPACE                                                            03280000                
************************************************************************03290000                
* SET UP FOR FINDING OF PARM LIST WHICH OP ENDED                        03300000                
************************************************************************03310000                
       SPACE                                                            03320000                
* XR1 POINTS AT FIRST PARM LIST IN LINE QUEUE                         M 03330000                
* XR2 POINTS AT MLTA DTF FOR OP ENDED LINE                            M 03340000                
       SPACE                                                            03350000                
       AIF   (&NSCTL).S5000                                             03360000                
       MVC   CMSTMA(2),$MDTMA(,XR2)    SAVE THE TERMINAL ADDR OF THE  M 03370000                
*                                      TERMINAL WHICH OP ENDED        M 03380000                
       SPACE                                                            03390000                
.S5000 ANOP                                                             03400000                
* SET UP TEST INSTRUCTION FOR EITHER A READ OR WRITE MLTA OP CODE     M 03410000                
* DEPENDING ON THE OP CODE IN THE DTF WHICH OP ENDED                  M 03420000                
* IF OP IN DTF IS WRITE THEN TEST FOR WRITE OP CODE IN PARM LIST      M 03430000                
* IF DTF OP CODE IS READ OR ABORT THEN TEST FOR READ OP IN PARM LIST  M 03440000                
       SPACE                                                            03450000                
       MVI   CMTBOP+1,OPGET            SET UP TEST INSTRCT. FOR READ  M 03460000                
       SPACE                                                            03470000                
       AIF   (&NSW).A5000                                               03480000                
*      FOR SWITCHED LINES ONLY----------------------------------------* 03490000                
       SPACE                                                            03500000                
* WAS OP END FOR WRITE DISCONNECT TO MLTA SWITCHED LINE              SM 03510000                
       SPACE                                                            03520000                
       CLI   $MDOPC(,XR2),$MWTDS       WAS OP A WRITE DISCONNECT     SM 03530000                
       JNE   CMTSWR                    JUMP IF OP WAS NOT WRITE DISCOSM 03540000                
       SPACE                                                            03550000                
* HAD OP END OF WRITE DISC. SO SET LCBNIT TO INDICATE LINE DISCONT   SM 03560000                
       SPACE                                                            03570000                
       SBF   LCBATR(,XR2),LCBNIT       INDICATE LINE IS DISCONNECTED SM 03580000                
       J     CMOPUT                    JUMP TO LOOK FOR WRITE OP END SM 03590000                
       SPACE                                                            03600000                
*      END OF FOR SWITCHED LINES ONLY  -------------------------------* 03610000                
.A5000 ANOP                                                             03620000                
       SPACE                                                            03630000                
CMTSWR EQU   *                         TEST FOR WRITE OPERATION       M 03640000                
       TBN   $MDOPC(,XR2),MLWRIT       WAS OP END FOR A WRITE         M 03650000                
       JF    CMMVSC                    JUMP IF NOT WRITE OP END       M 03660000                
CMOPUT EQU   *                         OP END WAS FOR PUT PARM LIST   M 03670000                
       MVI   CMTBOP+1,OPPUT            SET UP TEST FOR OP END OF WRITEM 03680000                
       SPACE                                                            03690000                
* GET THE TERMINAL FEATURE TYPES BYTE FROM MLTA DTF FOR TESTING       M 03700000                
       SPACE                                                            03710000                
CMMVSC EQU   *                         FIND PARM LIST                 M 03720000                
       AIF   (&NSCTL).S5200                                             03730000                
       MVC MLSTCL(1),$MDTFT(,XR2)      MOVE TERMINAL FEATURES TO HOLDCM 03740000                
.S5200 ANOP                                                             03750000                
       SPACE                                                            03760000                
*********************************************************************** 03770000                
* LOOK THROUGH PARAMETER LIST LINE QUEUE FOR THE OP ENDED TP REQUEST  * 03780000                
*********************************************************************** 03790000                
       SPACE                                                            03800000                
CMTBOP TBN   PL$OPM(,XR1),#            TEST FOR OP CODE MATCH           03810000                
       AIF   (&NSCTL).S5100                                          CM 03820000                
       JF    CMNXPM                    JUMP IF NO MATCH              CM 03830000                
       SPACE                                                            03840000                
* HAD OP CODE MATCH                                                  CM 03850000                
* DETERMINE IF STATION CONTROL TERMINAL OR NOT                       CM 03860000                
* IF NOT STATION CONTROL - WE HAVE THE PARM LIST                     CM 03870000                
* IF STATION CONTROL - WE NEED TO MATCH THE TERMINAL ADDRESS ALSO    CM 03880000                
       SPACE                                                            03890000                
       TBN   MLSTCL,MLSTAT             IS IT STATION CONTROL         CM 03900000                
       JF    CMMTCH                    JUMP IF NOT SINCE HAVE PL     CM 03910000                
       SPACE                                                            03920000                
* IT IS STATION CONTROL SO MUST MATCH TERMINAL ADDRESS               CM 03930000                
*  MUST SEARCH THE TUBS FOR THE ASSOCIATED PARAMETER LISTS UNTIL     CM 03940000                
*  FIND ONE WHOSE TERMINAL ADDRESS MATCHES THAT OF THE TERMINAL ADDR.CM 03950000                
*  IN THE DTF FOR THE TERMINAL WHICH JUST OP ENDED                   CM 03960000                
       SPACE                                                            03970000                
       L     PLTUBA(,XR1),XR2          POINT XR2 AT TUB FOR THIS PL  CM 03990000                
       CLC   CMSTMA-1(1),TUBTMA-1(,XR2) COMPARE DTF TMA WITH TUB TMA CM 04000000                
       JE    CMMTCH                    JUMP IF THEY MATCH            CM 04010000                
       AGO   .S5150                                                     04020000                
.S5100 ANOP                                                             04030000                
       JT    CMMTCH                    JUMP IF HAVE PARM LIST           04040000                
.S5150 ANOP                                                             04050000                
       SPACE                                                            04060000                
* NO MATCH SO GET NEXT PARAMETER LIST IN QUEUE TO TEST AGAIN            04070000                
* IF NO MORE LISTS IN QUEUE - HAVE ERROR CONDITION                      04080000                
       SPACE                                                            04090000                
CMNXPM CLI   PLCHN-1(,XR1),CMZERO      ARE THERE MORE PARM LISTS IN     04100000                
*                                      THE LINE QUEUE                   04110000                
       JE    CMQERR                    IF NO,HAVE CCP INTERNAL LINE     04120000                
*                                      QUEUEING ERROR                   04130000                
       SPACE                                                            04140000                
       ST    CMVPTR,XR1                STORE NEW PREVIOUS POINTER       04150000                
       L     PLCHN(,XR1),XR1           POINT XR1 AT NEXT PARM LIST IN Q 04160000                
       B     CMTBOP                    BRANCH TO TRY TO MATCH AGAIN     04170000                
       SPACE                                                            04180000                
CMQERR EQU   *                         CCP LINE QUEUEING ERROR          04190000                
*---------------------------------------------------------------------* 04200000                
       B     CPHALT                    BRANCH TO HALT ROUTINE.          04220000                
       DC    AL1(#4)                   SUBHALT.                         04230000                
       DC    AL1(#BLITZ)               SUBHALT.                         04240000                
*---------------------------------------------------------------------* 04250000                
       SPACE                                                            04260000                
*      HAVE FOUND THE PARM LIST WHICH OP ENDED.                         04270000                
*      FOR STATION CONTROL LINE                                         04290000                
* COME HERE WHEN HAVE MATCHED THE TERMINAL ADDRESS AND THUS HAVE FOUND  04300000                
* THE PARM LIST WHICH HAS OP ENDED.                                     04310000                
* XR1 POINTS AT THE OP ENDED PARM LIST                                  04330000                
       SPACE                                                            04340000                
CMMTCH EQU   *                         HAVE MATCH ON TERMINAL ADDRESS   04350000                
       SPACE                                                            04360000                
       L     CMSDTF,XR2                POINT XR2 AT DTF                 04380000                
       AIF   (&NOM).M3566                                               04390000                
       MVC   CMSRTC(1),PL$RTC(,XR1)    SAVE RETURN CODE FROM THE        04400000                
*                                      START OF THE OPERATION           04410000                
.M3566 ANOP                                                             04420000                
       MVC   PL$RTC(1,XR1),$MDCMP(,XR2) MOVE COMPLETION CODE TO PARM LST04430000                
       SPACE                                                            04440000                
       AIF   (&NSCTL).S5300                                             04450000                
       TBN   PL$OPM(,XR1),OPGET        WAS OP END FOR A READ         CM 04460000                
       JF    CMCMP                     JUMP IF NOT READ              CM 04470000                
       SPACE                                                            04480000                
* HAD OP FOR A READ SO JUMP TO SET SKIP BIT ON                       CM 04490000                
* SKIP BIT ROUTINE WILL CHECK FOR STATION CONTROL OR NOT             CM 04500000                
       SPACE                                                            04510000                
       B     CMONSK                    BR TO SET POLL SKIP BIT ON    CM 04520000                
.S5300 ANOP                                                             04530000                
.M0100 ANOP                                                             04540000                
       TITLE '$E072/CMCMP---COMPLETION-CODE-ANALYSIS'                   04550000                
************************************************************************04560000                
*            COMPLETION CODE ANALYSIS                                  *04570000                
************************************************************************04580000                
       SPACE                                                            04590000                
* XR2 POINTS AT DTF                                                     04600000                
       SPACE                                                            04610000                
CMCMP  EQU   *                         COMPLETION CODE ANALYSIS         04620000                
       SPACE                                                            04630000                
* TAKE A TRACE ENTRY NOW                                                04640000                
       SPACE                                                            04650000                
       B     $CC4TT                    BRANCH TO TRACE ROUTINE          04660000                
       DC    AL1(TTMOPN)               TRACE ID FOR MLTA OP END         04670000                
       SPACE                                                            04680000                
       AIF   (&ONE).C0040                                               04690000                
       TBN   $BDDEV(,DTF),BSCA         BSCA DTF ?                     2 04700000                
       JF    CMSVPL                    NO-GO LOAD AND SAVE PARM ADDR. 2 04710000                
.C0040 ANOP                                                             04720000                
       AIF   (&NOB).C0050                                               04730000                
       ST    CMSPL,PL                  SAVE THE PARM LIST REG.        B 04740000                
       CLI   $BDCMP(,DTF),$BCDNE       SUCCESSFUL DATA ?              B 04750000                
       JE    CMSCCS                    YES-GO HANDLE IT.              B 04760000                
       CLI   $BDCMP(,DTF),$BCEOT       EOT RECEIVED, AND              B 04770000                
       TBF   LCBAT2(,DTF),LCBRCI       * NOT RECEIVE INITIAL ?        B 04780000                
       JC    CMSCCS,TRUAEQ             YES-GO HANDLE THE EOT.         B 04790000                
       SPACE 1                                                          04790900                
*  IF SEARCHING FOR EOT FROM ERROR CONDITION,AND ANOTHER ERROR          04791800                
*   IS ENCOUNTERED-TREAT THE SECOND ERROR AS EOT RECEIVED NORMALLY      04792700                
       SPACE 1                                                          04793600                
       TBN   LCBOPC(,DTF),LCBERP       ERP IN PROCESS -               B 04794500                
       TBN   LCBAT1(,DTF),LCBEOT       AND SEARCHING FOR EOT ?        B 04795400                
       JF    CMNEOT                    NO-CONTINUE CHECKS             B 04796300                
       MVI   $BDCMP(,DTF),$BCEOT       YES-MAKE IT *EOT RECEIVED*     B 04797200                
       J     CMREND                    GO HANDLE EOT                  B 04798100                
CMNEOT EQU   *                         *                                04799000                
       JNE   CMBERR                    NOT EOT-GO TO ERP TRANSIENT.   B 04800000                
       TBF   LCBAT1(,DTF),LCBCRI+LCBPRI EOT TO CANCEL REQUEST ?       B 04810000                
       JF    CMSCCS                    YES-EOT IS OK THEN.            B 04820000                
       SPACE 1                                                          04830000                
*   EOT TO RECEIVE INITIAL IS INVALID.                                B 04840000                
       SPACE 1                                                          04850000                
CMBERR EQU   *                         *                              B 04860000                
       SPACE                                                            04870000                
*   HAVE BSCA ERROR, CALL IN BSCA ERROR RECOVERY.                       04880000                
       SPACE                                                            04890000                
       AIF   (&BPRT).BP100             PRINTER BUSY CODE              *L04890500                
       AGO   .BP200                                                   *L04891000                
.BP100 ANOP                                                           *L04891500                
       CLI   $BDCMP(,DTF),$BCNEG       44 COMPLETION                  *L04892000                
       TBN   $BDATT(,DTF),$BCINP       AND POLLING?                  @L 04892500                
       JC    CMBER1,FLSNEQ             NO-HANDLE ERROR                *L04893000                
       SPACE 1                                                        *L04893500                
       B     $CC4PI                    YES-CALL CC4BG TO HANDLE       *L04894000                
       DC    AL1(CC4BG)                ANY BUSY PRINTERS ON THE QUEUE?*L04894500                
       B     CMRSCH                    THEN GO RESCHEDULE THE LINE    *L04895000                
.BP200 ANOP                                                           *L04895500                
CMBER1 EQU   *                                                        *L04896000                
       AIF   (&BPRT).BP300                                            *L04896500                
       AGO   .BP400                                                   *L04897000                
.BP300 ANOP                                                           *L04897500                
       L     PLTUBA(,PL),XR1           POINT TO THE TUB.              *L04898000                
       SBF   TUBAT4(,XR1),TUBBSY       SET OFF THE BUSY BIT.          *L04898500                
       L     CMSPL,PL                  RELOAD THE PARM LIST REG.      *L04899000                
.BP400 ANOP                            END PRINTER BUSY CODE          *L04899500                
       B     $CC4PI                    GO TO CALL IN THE              B 04900000                
       DC    AL1(CC4BE)                ERROR DETERMINATION TRANSIENT. B 04910000                
       SPACE                                                            04920000                
       B     CMRETC                    SET UP TO RETURN TO USER.      B 04930000                
       SPACE                                                            04940000                
       B     CMRSCH                    GO RESCHEDULE WORK ON THE LINE.B 04950000                
       SPACE                                                            04960000                
       J     CMSCCS                    DATA AVAILABLE FOR USER.       B 04970000                
       SPACE 1                                                          04980000                
.C0050 ANOP                                                             04990000                
       AIF   (&NOM).M0200                                               05000000                
* SAVE THE ADDRESS OF THE PARM LIST                                   M 05010000                
       SPACE                                                            05020000                
CMSVPL EQU   *                                                          05030000                
       ST    CMSPL,XR1                 SAVE PARM LIST ADDR            M 05040000                
       SPACE                                                            05050000                
* AT THIS POINT XR1 PTS AT PARM LIST AND XR2 AT DTF                   M 05060000                
       SPACE                                                            05070000                
CMCKER EQU   *                         CHECK FOR ERROR                  05080000                
       SBF   PL$RTC(,XR1),BIT1         SET BIT OFF TO FORM RETURN CODEM 05090000                
       SPACE                                                            05100000                
* DETEMINE IF NON-ERROR COMPLETION CODE (X'40' OR X'42')              M 05110000                
       SPACE                                                            05120000                
       TBF   PL$RTC(,XR1),MLSCCS       TEST FOR SUCCESSFUL OP END     M 05130000                
       JT    CMSCCS                    JUMP IF SUCCESSFUL             M 05140000                
       AIF   (&N2741).B5000                                             05150000                
* FOR 2741 ONLY ------------------------------------------------------* 05170000                
* IF TERMINAL INTERRUPT FROM 2741 - HANDLE AS GOOD OP END            1M 05190000                
       SPACE                                                            05200000                
       CLI   $MDTTP(,XR2),ML2741       IS IT 2741                    1M 05210000                
       JNE   CMMERR                    JUMP IF NOT 2741              1M 05220000                
       CLI   PL$RTC(,XR1),MLCITP       WAS IT TERMINAL INTERRPUT     1M 05240000                
       TBN   PL$OPM(,XR1),OPPUT        WAS IT OUTPUT OPERATION       1M 05250000                
       JC    CMSCC1,NONE+FALSE+HI+LO   JUMP IF 2741 TERMINAL INTERR. 1M 05260000                
*---------------------------------------------------------------------* 05280000                
.B5000 ANOP                                                             05290000                
       EJECT                                                            05300000                
*********************************************************************** 05310000                
* HAD TP ERROR - CALL TRANSIENT TO HANDLE                               05320000                
*********************************************************************** 05330000                
       SPACE                                                            05340000                
CMMERR EQU   *                         HAD MLTA ERROR                   05350000                
       B     $CC4PI                    BR TO BRING IN TRANSIENT       M 05360000                
       DC    AL1(CC4MA)                MLTA ERROR HANDLER             M 05370000                
       B     CMRETC                    BR TO FINISH OP END HANDLING   M 05380000                
       B     CMTSBY                    BRANCH TO TEST LINE STATUS AND M 05390000                
*                                      RESCHEDULE IF NOT BUSY         M 05400000                
.* THE FOLLOWING TWO BRANCHES ARE GENERATED ONLY FOR SYSTEMS WITH 2740B 05410000                
       AIF   (&NBFR).R5500                                              05420000                
       B     CMSCCS                    BRANCH TO HANDLE AS IF SUCCESSRM 05430000                
       B     CMPAII                    BRANCH AROUND RESCHEDULING    RM 05440000                
.R5500 ANOP                                                             05450000                
.M0200 ANOP                                                             05460000                
       EJECT                                                            05470000                
*********************************************************************** 05480000                
*            SUCCESSFUL OP END ANALYSIS                               * 05490000                
*********************************************************************** 05500000                
       SPACE                                                            05510000                
*  OP COMPLETED SUCCESSFULLY                                            05520000                
* DETEMINE WHAT KIND OF OPERATION IT WAS AND HANDLE IT ACCORDINLY       05530000                
       SPACE                                                            05540000                
CMSCCS EQU   *                         SUCCESSFUL COMPLETION CODE       05550000                
       AIF   (&NOM).M3567                                               05560000                
       SPACE                                                            05570000                
* AT THIS POINT SET ANY BITS ON IN THE RETURN CODE FROM THE RETURN    M 05580000                
* CODE SAVED AS PART OF THE START OF THE OPERATION                    M 05590000                
       SPACE                                                            05600000                
CMRSTC SBN   PL$RTC(,XR1),##           RESET RETURN CODE FROM OP.     M 05610000                
CMSRTC EQU   CMRSTC+1                  Q BYTE OF SBN INSTRUCTION      M 05620000                
*                                      START                          M 05630000                
       SPACE                                                            05640000                
CMSCC1 EQU   *                         GOOD OP END BUT AT THIS LABEL  M 05650000                
*                                      THE RETURN CODE IS NOT RESET   M 05660000                
       SPACE                                                            05670000                
.M3567 ANOP                                                             05680000                
* DETERMINE WHAT KIND OF OP COMPLETED BY CHECKING THE OP CODE           05690000                
* RESIDING IN THE PARAMETER LIST                                        05700000                
       SPACE                                                            05710000                
       AIF   (&NOB).C0200                                               05720000                
       ST    CMTXR+3,XR1               SAVE XR1                       B 05722000                
       LA    $CCCOM,XR1                LOAD CCCOM ADDRESS             B 05724000                
       SBN   #TIMEX(,XR1),TXOPND       IND. OP END IF TIMER PRESENT   B 05726000                
CMTXR  LA    ####,XR1                  RESTORE XR1                    B 05728000                
       AIF   (&ONE).C0100                                               05730000                
       TBN   $BDDEV(,DTF),BSCA         BSCA DTF ?                     B 05740000                
       TBN   LCBOPC(,DTF),LCBERP       BSCA TERM ERP IN PROCESS ?     B 05750000                
       JT    CMREND                    YES-THEN MUST BE FINISHING GET.B 05760000                
       AGO   .C0200                                                     05770000                
.C0100 TBF   LCBOPC(,DTF),LCBERP       AND NOT TERM ERP FINISHING ?   B 05780000                
.C0200 ANOP                                                             05790000                
       TBN   PL$OPM(,XR1),OPPUT        WAS IT WRITE                     05800000                
       BT    CMWEND                    BRANCH IF WRITE                  05810000                
       SPACE                                                            05820000                
* NOT WRITE OP END - SO MUST BE READ                                    05830000                
       MEND                                                             05840000