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

⟦dffa1d4bc⟧ s3xseg

    Length: 23368 (0x5b48)
    Types: s3xseg
    Names: »S$E087«

Derivation

└─⟦4498c64f7⟧ Bits:30009191 5704-sc2.V05.ccp
    └─⟦95ee7795b⟧ 
        └─⟦this⟧ »S$E087« 

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.* NAME: $E087                                                        * 00030000                
.********************************************************************** 00040000                
       $E087                                                            00050000                
       GBLB  &ONE,&NOB,&NOM,&MIN,&NDME                                  00060000                
       GBLB  &NSW,&N1050,&N2741,&NMOVE,&NSCTL,&NBFR                     00070000                
       TEXT                                                             00080000                
* R-01,C-00  CHANGE LEVEL                                               00100000                
       AIF   (&NOM).M1400                                               00110000                
       TITLE '$E087/CMMSCH---RESCHEDULE-A-MLTA-LINE'                    00120000                
*********************************************************************** 00130000                
*                                                                     * 00140000                
*  NAME--CMMSCH                                                       * 00150000                
*                                                                     * 00160000                
*  TITLE--RESCHEDULE A MLTA LINE                                      * 00170000                
*                                                                     * 00180000                
*  FUNCTION--TO SCHEDULE WORK ON LINES THAT NOT BUSY, OR TO STOP      * 00190000                
*            POLLING ON A LINE AND SCHEDULE OF PUT OPERATION IF PUT   * 00200000                
*            OPERATIONS ARE PENDING IN THE LINE QUEUE.                * 00210000                
*                                                                     * 00220000                
*  OPERATION--                                                        * 00230000                
*                                                                     * 00240000                
*            . IF MLTA OLT IS IN PROCESS CALL IN TRANSIENT TO CONTINUE* 00250000                
*              THE OLT OPERATION.                                     * 00260000                
*                                                                     * 00270000                
*            . IF QUEUE FOR LINE IS EMPTY THEN POST THE REQUESTOR IF  * 00280000                
*              TP WAS JUST SCHEDULED, CHECK FOR OTHER FUNCTION THAT   * 00290000                
*              CAN BE PERFORMED BY 'CM'.                              * 00300000                
*                                                                     * 00310000                
*            . IF A PUT OPERATION CAN BE STARTED, PERFORM IT NEXT.    * 00320000                
*                                                                     * 00330000                
*            . IF NEITHER OF ABOVE TWO, THEN TRY TO SCHEDULE AN INPUT * 00340000                
*              OPERATION.  IF NO INPUT TO SCHEDULE THEN POST THE      * 00350000                
*              REQUESTOR IF TP WAS JUST SCHEDULED.  THEN CHECK FOR    * 00360000                
*              OTHER 'CM' FUNCTION THAT CAN BE PERFORMED NOW.         * 00370000                
*                                                                     * 00380000                
*            . IF A WRITE OPERATION CAN BE STARTED, THEN SET UP THE   * 00390000                
*              OUTPUT DATA BUFFER FOR THE LINE.  TRANSLATE THE DATA   * 00400000                
*              AS REQUIRED OR SPECIFIED.  ADD DEVICE DEPENDENT        * 00410000                
*              CONTROL CHARACTERS.                                    * 00420000                
*                                                                     * 00430000                
*            . IF MLTA OPERATION SET UP TO DO THE READ, WRITE WITH    * 00440000                
*              THE APPROPRIATE DISCONNECT, CONTINUE OR CONVERSATIONAL * 00450000                
*              OPTION AS REQUIRED BY THE TERMINAL AND/OR CURRENT      * 00460000                
*              LINE CIRCUMSTANCE. (SUBROUTINE: CMFORM).               * 00470000                
*                                                                     * 00480000                
*            . ISSUE OF IOCS CALL AFTER THE DTF IS SET-UP.            * 00490000                
*              CALL MLTIO1.                                           * 00500000                
*                                                                     * 00510000                
*            . AFTER ISSUING THE IOCS CALL, TRACE IT.                 * 00520000                
*                                                                     * 00540000                
*            . IF MLTA START OPERATION CODE INDICATES A START         * 00550000                
*              FAILURE THE CAM IN A TRANSIENT TO DETERMINE THE        * 00560000                
*              PROBLEM.  OTHERWISE, POST THE REQUESTOR IF TP WAS      * 00570000                
*              JUST SCHEDULED.                                        * 00580000                
*                                                                     * 00590000                
*  ENTRY POINTS                                                       * 00600000                
*         CMMSCH - SCHEDULE WORK ON A MLTA LINE                       * 00610000                
*                                                                     * 00620000                
*  INPUT--                                                            * 00630000                
*         CMSDTF - ADDRESS OF DTF TO BE SCHEDULED.                    * 00640000                
*         CMSPL  - ADDRESS OF TP PARAMETER LIST TO BE SCHEDULED.      * 00650000                
*                                                                     * 00660000                
*  OUTPUT--                                                           * 00670000                
*         CMSDTF - ADDRESS OF DTF FOR LINE SCHEDULED.                 * 00680000                
*         CMSPL  - ADDRESS OF TP REQUEST SCHEDULED.                   * 00690000                
*         DTF(LCB),TUB - SET UP FOR THE OPERATION PERFORMED.          * 00700000                
*                                                                     * 00710000                
*  EXTERNAL REFERENCES--                                              * 00720000                
*         $CC4MT - HANDLE MLTA OLT CONTINUATION.                      * 00730000                
*         $CC4JX - X IS THE APPROPRIATE LINE TRANSLATE TRANSIENT.     * 00740000                
*         $CC4WR - HANDLE TRANSLATE ERRORS IN OUTPUT.                 * 00750000                
*         $CC4WC - CONNECT SWITCHED LINE WTO.                         * 00760000                
*         MLTIO1 - MLTA IOCS.                                         * 00770000                
*         $TRACE - CCP TRACE ROUTINE.                                 * 00780000                
*         $CC4SC - MLTA START CODE FAILURE TRANSIENT.                 * 00790000                
*         CMSRPL - SEARCH FOR NEXT OP TO SCHEDULE ON THE LINE.        * 00810000                
*         CMCRID - ADD CARRIAGE RETURN AND IDLES.                     * 00820000                
*         CMMVRT - INTERFACE TO CCP MOVE ROUTINE.                     * 00830000                
*                                                                     * 00840000                
*  EXIT, NORMAL--                                                     * 00850000                
*            - TO CMPAII - CHECK FOR POSTING OF THE REQUESTER.        * 00860000                
*            - TO CMRQBF - CHECK FOR MORE WORK TO DO.                 * 00870000                
*            - TO CMREQ  - IF NEW TP REQUEST IS FOUND IN THE QUEUE.   * 00880000                
*                                                                     * 00890000                
*********************************************************************** 00900000                
       EJECT                                                            00910000                
CMMSCH EQU   *                         *   < ENTRY POINT >            M 00920000                
       L     CMSDTF,DTF                POINT XR2 TO DTF               M 00930000                
       SPACE                                                            00940000                
*  SET DEFAULT TO RESCHEDULE NEEDED - FREE ANY INPUT HOLD BUFFER      M 00941400                
       SBN   LCBATR(,DTF),LCBTIM       SET RESCHEDULE NEEDED          M 00942100                
       CLI   LCBIBA-1(,DTF),NOBIT      ANY HOLD BUFFER?               M 00942800                
       JE    CMMSNF                    NO - NO FREE NEEDED            M 00943500                
*  FREE THE HOLD BUFFER                                               M 00944200                
       L     LCBIBA(,DTF),XR2          XR2--> AREA TO FREE            M 00944900                
       B     CMFMRT                    GO FREE IT                     M 00945600                
       L     CMSDTF,DTF                XR2--> DTF                     M 00946300                
       MVI   LCBIBA-1(,DTF),NOBIT      ZERO HOLD BUFFER ADDRESS       M 00947000                
       B     CMFRMN                    GO CHECK FOR PL NEEDING CORE   M 00947700                
CMMSNF EQU   *                         *                              M 00948400                
       CLI   LCBNW#(,DTF),NOBIT        ANY NEW TP REQUESTS ?          M 00950000                
       BNE   CMPAII                    YES - GO HANDLE NOW            M 00952000                
       SBF   LCBATR(,DTF),LCBTIM       SET OFF RESCHEDULE NEEDED      M 00954000                
       SPACE                                                            00970000                
       CLI   LCBOLT(,DTF),NOBIT        IS ONLINE TEST COUNT ZERO      M 00980000                
       JE    CMLKPL                    JUMP IF YES TO LOOK AT PL      M 00990000                
       SPACE                                                            01000000                
*********************************************************************** 01010000                
*      ON-LINE TEST REQUEST TO BE STARTED                             M 01020000                
********************************************************************  M 01030000                
       SPACE                                                            01040000                
       SVC   0                         ###### TRANSIENT CALL ######   M 01050000                
       DC    AL1(CCPRIB)               CCP SVC RIB.                   M 01060000                
       DC    AL1(CC4MT)                START ONLINE TEST              M 01070000                
       SPACE                                                            01080000                
* RETURN TO NSI   - ONLINE TEST NOT STARTED.                          M 01090000                
*           NSI+4 - ONLINE TEST STARTED.                              M 01100000                
       SPACE                                                            01110000                
*--> NSI.                                                             M 01120000                
       SBN   CMSWIT,CMNOST             INDICATE LINE I/O NOT STARTED  M 01130000                
       SPACE                                                            01140000                
*--> NSI+4.                                                           M 01150000                
       B     CMPAII                    JUMP TO SEE IF POST NEEDED     M 01160000                
       SPACE                                                            01170000                
CMLKPL EQU   *                         *   LOCAL                      M 01180000                
       SPACE                                                            01190000                
**********************************************************************M 01200000                
*    SEARCH LINE QUEUE FOR NEXT REQUEST TO BE SCHEDULED.              M 01210000                
**********************************************************************M 01220000                
       SPACE                                                            01230000                
       B     CMSRPL                    LCB PL QUEUE SEARCH ROUTINE    M 01240000                
*   XR1-> PL, XR2-> TUB.                                              M 01250000                
       SPACE                                                            01260000                
       MVC   CMTCHR(1),TUBCHR(,XR2)    MOVE TUB CHAR TO SAVE AREA     M 01270000                
       AIF   (&NBFR).H4467                                              01280000                
       MVC   TUBVHR(1,XR2),TUBCHR(,XR2) SAVE TUBCHR FIELD            BM 01290000                
.H4467 ANOP                                                             01300000                
       AIF   (&NSCTL).S5400                                             01310000                
       MVC   CMSTMA(2),TUBTMA(,XR2)    SAVE TERMINAL ADDRESS         CM 01320000                
.S5400 ANOP                                                             01330000                
       MVC   SAVTA2(2),TUBTA2(,XR2)    SAVE TERMINAL ATTRIBUTES       M 01340000                
       SPACE                                                            01350000                
       L     TUBDTF(,XR2),DTF          XR2--> DTF FOR THIS LINE.      M 01360000                
       SPACE                                                            01370000                
* DETERMINE IF OPERATION IS READ OR WRITE                             M 01380000                
       SPACE                                                            01390000                
       TBN   PL$OPM(,XR1),OPGET        IS IT READ ?                   M 01400000                
       JF    CMMPUT                    NO - GO HANDLE THE PUT.        M 01410000                
       B     CMIVGM                    GO DETERMINE INPUT OP TO START.M 01420000                
       SPACE 1                                                          01430000                
       L     CMLPL,PL                  LAST READ PL SCHEDULED - WILL  M 01434000                
*                                      * GO INTO TRACE FROM CMSPL     M 01436000                
       B     CMMSIO                    GO ISSUE SIO FOR THE INPUT.    M 01440000                
       TITLE '$E087/CMMSCH----START-A-WRITE-OPERATION'                  01450000                
********************************************************************  M 01460000                
*    WRITE REQUEST TO START ON MLTA LINE                           *  M 01470000                
********************************************************************  M 01480000                
       SPACE                                                            01490000                
CMMPUT EQU   *                         *   LOCAL                        01500000                
       AIF   (&NSW).A5300                                               01510000                
* IF THIS IS PUT DISCONNECT - THEN THERE IS NO DATA TO BE TRANSMITED SM 01520000                
       SPACE                                                            01530000                
       TBN   PLOPM(,XR1),OPDISC        IS THIS PUT DISCONNECT        SM 01540000                
       BT    CMMSIO                    JUMP IF PUT DISCONNECT        SM 01550000                
       SPACE                                                            01560000                
.A5300 ANOP                                                             01570000                
       SPACE                                                            01580000                
*******************************************************************   M 01590000                
*   SETUP PARAMETER LIST FOR MOVE OR TRANSLATE                    *   M 01600000                
*******************************************************************   M 01610000                
       SPACE                                                            01620000                
       MVC   #CMTRL+TLFRMA(2),PLRECA(,XR1) MOVE FROM ADDR TO TRAN LST M 01630000                
       MVC   #CMTRL+TLTOA(2),$MDCRA(,DTF) MOVE TO ADDR TO TL/MV LIST  M 01640000                
       SPACE                                                            01650000                
       MVC   #CMTRL+TLTOL(2),LCBBFL(,DTF) MOVE SIZE OF LINE BUFFER TO M 01660000                
*                                      THE TRANS/MOVE LIST            M 01670000                
       SPACE                                                            01680000                
       MVI   $MDCRL(,DTF),NOBIT        SET DTF RECORD LENGTH TO ZERO  M 01690000                
       TBN   CMTCHR,TUBTYP             IS IT TYPEWRITER TERMINAL      M 01700000                
       JF    CMPWLN                    JUMP IF NOT TYPEWRITER         M 01710000                
       SPACE                                                            01720000                
*******************************************************************   M 01730000                
*   TYPEWRITER TERMINAL                                           *   M 01740000                
*******************************************************************   M 01750000                
       SPACE                                                            01760000                
       AIF   (&N1050).C5000                                             01770000                
*      IF MULTI COMPONENT (MCT) 1050 TERMINAL, CHECK TO SEE IF       1M 01780000                
*          THE COMPONENT BEING WRITTEN TO IS A TYPEWRITER.           1M 01790000                
       SPACE                                                            01800000                
       TBN   CMTCHR,TUBMCT             IS IT MCT                     1M 01810000                
       TBF   PL$MCT(,XR1),BIT5         IF BIT OFF; NOT 1050 PRINTER  1M 01820000                
       TBN   PL$MCT(,XR1),BIT6         IF BIT ON, NOT A 1050 PRINTER 1M 01830000                
       JT    CMPWLN                    JUMP IF MCT AND NON-PRINTER   1M 01840000                
.C5000 ANOP                                                             01850000                
       EJECT                                                            01860000                
* HAVE TYPEWRITER DEVICE - DETERMINE WHETHER TO ADD START OF LINE     M 01870000                
*  AND/OR END OF LINE TYPEWRITER CONTROL CHARACTERS TO THE OUTPUT LINEM 01880000                
       SPACE                                                            01890000                
       AIF   (&NBFR).R5200                                              01900000                
*******************************************************************  BM 01910000                
*   IF NON-BUFFERED TERMINAL,SET CONTROL CHAR LENGTH TO INCLUDE IDLES M 01920000                
*******************************************************************  BM 01930000                
       SPACE                                                            01940000                
       MVI   CMTYPZ,CMTYPL             SET LENGTH TO INCLUDE IDLES.  BM 01950000                
       TBN   $MDTFR(,DTF),$MTBFR       IS IT BUFFERRED RECEIVE TERM  BM 01960000                
       JF    CMTYTS                    JUMP IF NOT BUFFERRED RECEIVE BM 01970000                
       SPACE                                                            01980000                
******************************************************************** BM 01990000                
*   BUFFERED RECEIVE TERMINAL - NEED NO IDLES AFTER CARRIAGE RETURN. BM 02000000                
******************************************************************** BM 02010000                
       SPACE 1                                                          02020000                
       MVI   CMTYPZ,CMTYBF             SET LENGTH TO EXCLUDE IDLES.  BM 02030000                
       SPACE                                                            02040000                
.R5200 ANOP                                                             02050000                
CMTYTS EQU   *                         *   LOCAL                      M 02060000                
       TBF   PLOPM(,XR1),OPSOL         START OF LINE CHARS WANTED ?   M 02070000                
       JF    CMTSEL                    JUMP IF NOT WANTED.            M 02080000                
       SPACE                                                            02090000                
       TBN   CMTCHR,TUB@SL             START OF LINE ISSUED, BUT      M 02100000                
       TBF   CMTCHR,TUBNID             IDLES NOT NEEDED ?             M 02110000                
       JT    CMTSEL                    JUMP IF AT START OF LINE AND   M 02120000                
*                                      NO IDLES ARE NEEDED.           M 02130000                
       SPACE                                                            02140000                
*******************************************************************   M 02150000                
*   ADD # OF START-OF-LINE CHARACTERS TO MESSAGE LENGTH           *   M 02160000                
*******************************************************************   M 02170000                
       SPACE                                                            02180000                
       ALC   $MDCRL(1,DTF),CMTYPZ      ADD # CHARS TO DTF LENGTH      M 02190000                
       SLC   #CMTRL+TLTOL(2),CMTYPZ    REMOVE #CHAR FROM LINE BUF CNT.M 02200000                
       SBN   CMSLSW+1,NOOP             SET SWITCH: SOL CHARS WANTED.  M 02210000                
       SPACE                                                            02220000                
CMTSEL EQU   *                         * LOCAL                        M 02230000                
       SBF   CMTCHR,TUB@SL             SET NOT AT START OF LINE BIT.  M 02240000                
       TBF   PLOPM(,XR1),OPEOL         ARE END OF LINE CHARS REQ'D ?  M 02250000                
       JF    CMPWLN                    JUMP IF NOT TO BE ADDED.       M 02260000                
       SPACE                                                            02270000                
*******************************************************************   M 02280000                
*   ADD # OF   END-OF-LINE CHARACTERS TO MESSAGE LENGTH           *   M 02290000                
*******************************************************************   M 02300000                
       SPACE                                                            02310000                
       SBN   CMTCHR,TUB@SL             SET TERM AT START OF LINE BIT. M 02320000                
       ALC   $MDCRL(1,DTF),CMTYPZ      ADD # CHARS TO DTF RECORD LGTH M 02330000                
       SLC   #CMTRL+TLTOL(2),CMTYPZ    REMOVE #CHAR FROM LINE BUF CNT.M 02340000                
       SBN   CMELSW+1,NOOP             SET SWITCH: EOL CHARS WANTED.  M 02350000                
       EJECT                                                            02360000                
*******************************************************************   M 02370000                
*   DETERMINE LENGTH OF MOVE OR TRANSLATE                         *   M 02380000                
*******************************************************************   M 02390000                
       SPACE                                                            02400000                
CMPWLN EQU   *                         *   LOCAL                      M 02410000                
       SPACE                                                            02420000                
* COMPARE REQUESTED LENGTH IN PARM LIST VS AVAILBALE LENGTH IN        M 02430000                
*  TRANSLATED LIST                                                    M 02440000                
* AVAILABLE LENGTH ALREADY IN PARM LIST                               M 02450000                
       SPACE                                                            02460000                
       CLC   PLOUTL(2,XR1),#CMTRL+TLTOL REQ'D    VS AVAILABLE LENGTH ?M 02470000                
       JH    CMTYSW                    JUMP IF AVAILABLE MUST BE USED.M 02480000                
       MVC   #CMTRL+TLTOL,PLOUTL(2,XR1) USE REQUESTED LENGTH.         M 02490000                
       J     CMSLSW                    SKIP SETTING OF TRUNCATED BIT. M 02500000                
       SPACE                                                            02510000                
CMTYSW EQU   *                         *   LOCAL                      M 02520000                
       SPACE                                                            02530000                
       SBN   PL$RTC(,XR1),RCXDTR       SET RET CODE TO DATA TRUNCATED M 02540000                
       EJECT                                                            02550000                
*  TYPEWRITER SWITCHES                                                M 02560000                
*    ON (NO JUMP) MOVE CONTROL CHARACTERS TO START/END OF LINE.       M 02570000                
*    OFF (JUMP)  JUMP AROUND ADDING OF CONTROL CHAR.                  M 02580000                
       SPACE                                                            02590000                
*  START OF LINE SWITCH.                                                02600000                
       SPACE                                                            02610000                
CMSLSW EQU   *                         *   LOCAL                      M 02620000                
       JC    CMELSW,X'00'              JUMP IF NO START OF LINE CHARS.M 02630000                
       SPACE                                                            02640000                
*******************************************************************   M 02650000                
*   ADD START-OF-LINE CONTROL CHARACTERS                          *   M 02660000                
*******************************************************************   M 02670000                
       SPACE                                                            02680000                
       L     #CMTRL+TLTOA,XR1          POINT XR1 AT TARGET ADDR       M 02690000                
       B     CMCRID                    MOVE CARRIAGE RETURN AND IDLES.M 02700000                
       SPACE                                                            02710000                
*      DETERINE WHETHER FIRST CHARACTER IS TO BE CARRIAGE RETURN OR   M 02720000                
*      IDLE CHARACTER                                                 M 02730000                
       SPACE                                                            02740000                
       TBN   CMTCHR,TUBNID             ARE IDLES NEEDED               M 02750000                
       JF    CMADDT                    JUMP IF IDLES NOT NEEDED       M 02760000                
       MVI   0(,XR1),CMIDLE            PLUG IDLE INTO FIRST POSITION  M 02770000                
       SPACE                                                            02780000                
CMADDT EQU   *                         *   LOCAL                      M 02790000                
       ALC   #CMTRL+TLTOA(2),CMTYPZ    ADD # CHARS TO TARGET ADDR IN  M 02800000                
*                                      TRANSLATE/MOVE LIST            M 02810000                
       SBF   CMSLSW+1,NOOP             RESET SOL SWITCH.              M 02820000                
       SPACE                                                            02830000                
*  END OF LINE SWITCH.                                                M 02840000                
       SPACE                                                            02850000                
CMELSW EQU   *                         *   LOCAL.                     M 02860000                
       JC    CMTSTR,X'00'              JUMP IF NO END OF LINE CHARS.  M 02870000                
       SPACE                                                            02880000                
*******************************************************************   M 02890000                
*   ADD   END-OF-LINE CONTROL CHARACTERS                          *   M 02900000                
*******************************************************************   M 02910000                
       SPACE                                                            02920000                
       L     #CMTRL+TLTOA,XR1          POINT XR1 AT 'TO' ADDR         M 02930000                
       A     #CMTRL+TLTOL,XR1          ADD LENGTH OF MOVE SO XR1 PTS  M 02940000                
*                                      AT 1ST BYTE PAST DATA IN LINE. M 02950000                
       B     CMCRID                    ADD CARRIAGE RETURN AND IDLES. M 02960000                
       SPACE                                                            02970000                
CMTSTR EQU   *                         *   LOCAL                      M 02980000                
       SBF   CMTCHR,TUBNID             SET OFF INDICATION FOR IDLES   M 02990000                
       SBF   CMELSW+1,NOOP             RESET EOL SWITCH.              M 03000000                
       SPACE                                                            03010000                
*       ADD DATA LENGTH TO DTF LENGTH WHICH NOW SITS AT THE NUMBER    M 03020000                
* OF TYPEWRITER CONTROL CHARACTERS NEEDED.                            M 03030000                
       SPACE                                                            03040000                
       ALC   $MDCRL(,DTF),#CMTRL+TLTOL(1) ADD DATA LENGTH TO DTF      M 03050000                
       L     CMSPL,XR1                 POINT XR1 AT PARM LIST         M 03060000                
       EJECT                                                            03070000                
       AIF   (&NMOVE).M5300                                             03080000                
* TEST FOR DATA TRANSLATION. (SYSTEM ALWAYS TRANSLATES)              VM 03090000                
       SPACE                                                            03100000                
       TBN   SAVTA1,TASTRN             DO WE TRANSLATE               VM 03110000                
       TBF   PLOPM(,XR1),OP$SYS        IS IT USER REQUEST            VM 03120000                
       JT    CMMOVE                    JUMP IF NO TRANSLATE          VM 03130000                
       SPACE                                                            03140000                
.M5300 ANOP                                                             03150000                
*******************************************************************   M 03160000                
*   TRANSLATE DATA FROM REQUESTOR RECORD AREA TO LINE BUFFER      *   M 03170000                
*******************************************************************   M 03180000                
       SPACE                                                            03190000                
       LA    #CMTRL,XR1                POINT XR1 AT TRANSLATE TABLE   M 03200000                
       MVC   CMTWR(1),LCBELC(,DTF)     MOVE TRANS TRANSIENT ID        M 03210000                
       SVC   0                         ##### TRANSIENT CALL #####     M 03220000                
       DC    AL1(CCPRIB)               CCP SVC RIB.                   M 03230000                
CMTWR  DC    AL1(0)                    TRANSLATE TRANSIENT ID         M 03240000                
       SPACE                                                            03250000                
* XR1 NOW POINTS TO TRANSLATE TABLE AND NOT PARAMETER LIST            M 03260000                
* PLUG TRANSLATE RETURN CODE INTO RETURN CODE WORK AREA               M 03270000                
       SPACE                                                            03280000                
       TBN   TLRTC(,XR1),TLERR         WAS THERE ERROR IN TRANSLATION M 03290000                
       L     CMSPL,XR1                 POINT XR1 AT PARM LIST         M 03300000                
       JF    CMDOWR                    JUMP IF NO ERROR               M 03310000                
       SPACE                                                            03320000                
* HAD TRANSLATE ERROR - CALL IN TRANSIENT TO HANDLE                   M 03330000                
       SPACE                                                            03340000                
       SVC   0                         ###### TRANSIENT CALL ######   M 03350000                
       DC    AL1(CCPRIB)               CCP SVC RIB.                   M 03360000                
       DC    AL1(CC4WR)                TRANLSATE ERROR TRANSIENT.     M 03370000                
       SPACE                                                            03380000                
       B     CMPAII                    GO POST PUT NO-WAIT.           M 03390000                
       SPACE                                                            03400000                
       AIF   (&NMOVE).M5400                                             03410000                
*******************************************************************  VM 03420000                
* MOVE DATA WITHOUT TRANSLATE FROM REQUESTER RECORD AREA TO LINE BUF VM 03430000                
*******************************************************************  VM 03440000                
       SPACE                                                            03450000                
CMMOVE EQU   *                         *   LOCAL                     VM 03460000                
       MVI   #CMMVL+MVLTYP,NOBIT       SET TYPE FOR NO ATR SWAP.     VM 03470000                
       B     CMMVRT                    BR TO MOVE ROUTINE            VM 03480000                
       SPACE                                                            03490000                
.M5400 ANOP                                                             03500000                
CMDOWR EQU   *                         *  LOCAL                       M 03510000                
       L     PLTUBA(,XR1),XR2          POINT XR2 AT THE TUB           M 03520000                
       MVC   TUBCHR(1,XR2),CMTCHR      RESET TERMINAL CHARACTERISTICS M 03530000                
       L     CMSDTF,DTF                POINT XR2 AT DTF               M 03540000                
       TITLE '$E087/CMMSCH---START MLTA READ OR WRITE'                  03550000                
********************************************************************  M 03560000                
*      MLTA IOCS START I/O  FOR READ OR WRITE                      *  M 03570000                
********************************************************************  M 03580000                
       SPACE                                                            03590000                
*  THE OP CODE IS PLUGGED IN THE DTF - BEING FORMED BASED ON          M 03600000                
* THE PREVIOUS OPERATIONS ON THE LINE                                 M 03610000                
       SPACE                                                            03620000                
* XR1 POINTS TO THE REQUEST WHICH IS BEING SCHEDULED                  M 03630000                
       SPACE                                                            03640000                
CMMSIO EQU   *                         *   WITHIN CMMSCH.             M 03650000                
       SPACE                                                            03660000                
* AT THIS POINT MAKE SURE NEW OP NOT YET MOVED INTO DTF               M 03670000                
*  ALSO LEAVE TERMINAL ADDR OF DTF ALONE SINCE THE PREVIOUS OP AND    M 03680000                
* TERM ADDR ARE USED IN THIS OP CODE DETERMINATION                    M 03690000                
       SPACE                                                            03700000                
       AIF   (&NSW).A5400                                               03710000                
*------FOR SWITCHED LINES ONLY-----------------------------------*   SM 03720000                
       SPACE                                                            03730000                
       TBN   PLOPM(,XR1),OPDISC        IS THIS PUT DISCONNECT OP     SM 03740000                
       JF    CMFO10                    JUMP IF NOT PUT DISCONNECT    SM 03750000                
       SPACE                                                            03760000                
       SBF   LCBATR(,XR2),LCBNIT       SET BIT TO INDICATE INITAL OP SM 03770000                
*                                      IS NEEDED ON THIS LINE        SM 03780000                
       SPACE                                                            03790000                
* IF THIS IS PUT ONLY - THEN PLUG WRITE DISCONNECT OP CODE           SM 03800000                
* IF THIS IS PUT THEN INVITE - CONTINUE THROUGH THE CODE TO FORM THE SM 03810000                
* PROPER READ INITIAL OP CODE                                        SM 03820000                
       SPACE                                                            03830000                
       TBN   PL$OPM(,XR1),OPINV        IS THIS PUT DISC/INVITE       SM 03840000                
       JT    CMFO10                    JUMP IF PUT DISC/INVITE INPUT SM 03850000                
       SPACE                                                            03860000                
* HAVE PUT DISCONNECT OP                                             SM 03870000                
       SPACE                                                            03880000                
       MVI   CMOPWK+1,$MWTDS           PLUG WITH WRITE DISCONNECT    SM 03890000                
       J     CMOPWK                    JUMP TO PLUG DTF WITH OP      SM 03900000                
       SPACE                                                            03910000                
*------END OF FOR SWITCHED LINES ONLY  --------------------------*   SM 03920000                
.A5400 ANOP                                                             03930000                
       SPACE                                                            03940000                
CMFO10 EQU   *                         *   LOCAL.                     M 03950000                
       MVI   CMOPWK+1,MLREAD           MOVE READ OP TO WORK AREA      M 03960000                
       TBN   PL$OPM(,XR1),OPGET        IS THIS READ OPERATION         M 03970000                
       JT    CMTBFR                    JUMP IF READ OPERATION         M 03980000                
       MVI   CMOPWK+1,MLWRIT           MOVE WRITE OP TO WORK AREA     M 03990000                
       SPACE                                                            04000000                
CMTBFR EQU   *                         *   LOCAL.                     M 04010000                
       MVC   CMPOP+1(1),CMOPWK+1       MOVE CURRENT OP TO TBN INSTR   M 04020000                
       EJECT                                                            04030000                
*********************************************************************** 04040000                
*   DETERMINE IF RESET OPERATION IS NEEDED.                           * 04050000                
*********************************************************************** 04060000                
       SPACE                                                            04070000                
       AIF   (&NBFR).R5400                                              04080000                
* ALWAYS RESET IF BUFFERRED RECEIVE TERMINAL                         BM 04090000                
* IF BUFFERRED RECEIVE - THEN MUST BE STATION CONTROL                BM 04100000                
       SPACE                                                            04110000                
       TBN   $MDTFR(,XR2),$MTBFR       IS THIS BUFFERRED RECV TERM   BM 04120000                
       JT    CMREST                    JUMP IF BUFFERRED RECEIVE     BM 04130000                
.R5400 ANOP                                                             04140000                
       SPACE                                                            04150000                
       AIF   (&NSCTL).S5900                                             04160000                
* IF THIS IS 2740 WITH STATION CONTROL AND NO CHECKING - ISSUE RESET CM 04170000                
       SPACE                                                            04180000                
       TBN   $MDTFT(,XR2),$MTPLT       IS IT STATION CONTROL         CM 04190000                
       TBF   $MDTFT(,XR2),$MTLRC       IS IT NON-CHECKING            CM 04200000                
       JT    CMREST                    JUMP IF STAT CTL AND NON-CHKG CM 04210000                
       SPACE                                                            04220000                
.S5900 ANOP                                                             04230000                
*   IF CHECKING TERMINAL, DON'T RESET. (RESET ALLOWS OPERATOR INPUT). M 04240000                
       SPACE                                                            04250000                
       TBN   $MDTFT(,XR2),$MTLRC       IS IT CHECKING TERMINAL ?      M 04260000                
       JT    CMINIT                    JUMP IF CHECKING TERMINAL.     M 04270000                
CMREST EQU   *                         *   LOCAL.                       04280000                
       SBN   CMOPWK+1,MLRSET           SET RESET BIT IN OP CODE ON    M 04290000                
       EJECT                                                            04300000                
*********************************************************************** 04310000                
*   DETERMINE IF INITIAL OPERATION IS NEEDED.                         * 04320000                
*********************************************************************** 04330000                
       SPACE                                                            04340000                
CMINIT EQU   *                         TEST FOR INITIAL OP            M 04350000                
       TBF   LCBATR(,XR2),LCBNIT       TEST INITIAL OP BIT IN LCB     M 04360000                
       JF    CMTRST                    JUMP IF INITIAL NOT NEEDED     M 04370000                
       SPACE                                                            04380000                
**********************************************************************M 04390000                
*      NEED INITIAL OPERATION ON THIS LINE                            M 04400000                
**********************************************************************M 04410000                
       SPACE                                                            04420000                
       AIF   (&NSW).A5500                                               04430000                
* IF IT IS A SWITCHED LINE AND IT IS A USER OP                       SM 04440000                
* THEN ISSUE MESSAGE TO SYSTEM OPERATOR INFORMING HIM OF THE STATUS  SM 04450000                
* OF THE LINE                                                        SM 04460000                
       SPACE                                                            04470000                
       TBN   $MDTFT(,XR2),$MMDNT       IS IT SWITCHED LINE           SM 04480000                
       TBF   PLOPM(,XR1),OP$SYS        IS IT USER REQUEST            SM 04490000                
       JF    CMNMSO                    JUMP IF NOT USER OP- SWC LINE SM 04500000                
       SPACE                                                            04510000                
* HAVE USER REQUEST TO SWITCHED LINE WHICH REQUIRES CONNECTION       SM 04520000                
* BRING IN TRANSIENT TO ISSUE MESSAGE                                SM 04530000                
       SPACE                                                            04540000                
       SVC   0                         ##### TRANSIENT CALL #####    SM 04550000                
       DC    AL1(CCPRIB)               CCP SVC RIB.                  SM 04560000                
       DC    AL1(CC4WC)                TRANSIENT ID                  SM 04570000                
       SPACE                                                            04580000                
CMNMSO EQU   *                         *   LOCAL.                    SM 04590000                
       SPACE                                                            04600000                
.A5500 ANOP                                                             04610000                
       AIF   (&N2741).B5200                                             04620000                
* DETERMINE IF THIS IS PUT TO 2741                                   4M 04630000                
* IF YES - CANNOT ISSUE WRITE INITIAL TO 2741 SO MUST ISSUE READ INIT4M 04640000                
* AND BIT BUCKET THE DATA FROM THE READ  BEFORE ISSUEING THE WRITE   4M 04650000                
* TO THE 2741                                                        4M 04660000                
       SPACE                                                            04670000                
       TBN   PL$OPM(,XR1),OPPUT        IS IT PUT                     4M 04680000                
       CLI   $MDTTP(,XR2),ML2741       IS IT 2741                    4M 04690000                
       JC    CMOPFM,ANY+LO+HI+FALSE    JUMP IF NOT INITL PUT TO 2741 4M 04700000                
       SPACE                                                            04710000                
* HAVE WRITE INITIAL TO 2741 SO ISSUE READ INITIAL                   4M 04720000                
       SPACE                                                            04730000                
       SBN   LCBATR(,XR2),LCBTBK       SET ON LCB BIT TO BIT         4M 04740000                
*                                      BUCKET DATA FROM DUMMY READ   4M 04750000                
       MVI   CMOPWK+1,MLREAD           PLUG READ INITL INTO OP WORK  4M 04760000                
       J     CMOPWK                    JUMP TO PLUG OP INTO DTF      4M 04770000                
       AGO   .B5250                                                     04780000                
.B5200 ANOP                                                             04790000                
       J     CMOPFM                    JUMP TO PLUG INITL OP INTO DTF M 04800000                
.B5250 ANOP                                                             04810000                
       EJECT                                                            04820000                
*********************************************************************** 04830000                
*   DETERMINE WHETHER TO ISSUE CONVERSATION OR CONTINUE OP CODE.      * 04840000                
*********************************************************************** 04850000                
       SPACE                                                            04860000                
CMTRST EQU   *                         *    LOCAL.                    M 04870000                
       TBN   CMOPWK+1,MLRSET           HAS RESET BEEN SET             M 04880000                
       JT    CMCONV                    JUMP TO ISSUE CONVERSATIONAL   M 04890000                
       SPACE                                                            04900000                
* FOR CONTINUE TO BE USED THE FOLLOWING CONDITIONS MUST BE MET        M 04910000                
* 1/ LAST OP ON LINE WAS OF SAME TYPE                                 M 04920000                
* 2/ LAST TERMINAL SCHEDULED ON LINE WAS SAME                         M 04930000                
* 3/ READ TO STATION CONTROL TERMINAL WILL NEVER BE CONTINUE          M 04940000                
* 4/ READ CONTINUE VALID ONLY FOR A CHECKING TERM. OR A 2741.         M 04950000                
       SPACE                                                            04960000                
CMPOP  TBN   $MDOPC(,XR2),#            DO THE OP CODES MATCH ?        M 04970000                
       JF    CMCONV                    JUMP TO ISSUE CONVERSATIONAL   M 04980000                
       SPACE                                                            04990000                
       AIF   (&NSCTL).S5910                                             05000000                
       CLC   $MDTMA(2,XR2),CMSTMA      OPS TO THE SAME TERMINAL ?    CM 05010000                
       JNE   CMCONV                    IF NO-JUMP TO ISSUE CONVERS.  CM 05020000                
       SPACE                                                            05030000                
.S5910 ANOP                                                             05040000                
* IF OPERATION IS A WRITE ISSUE A CONTINUE OP                         M 05050000                
       SPACE                                                            05060000                
       TBN   $MDOPC(,XR2),MLWRIT       WAS IT WRITE                   M 05070000                
       JT    CMCONT                    IF YES JUMP TO FORM CONTINUE   M 05080000                
       SPACE                                                            05090000                
       AIF   (&NSCTL).S5920                                             05100000                
*   IF STATION CONTROL; THEN ISSUE CONVERSATIONAL OPERATION.         CM 05110000                
       SPACE                                                            05120000                
       TBN   $MDTFT(,XR2),$MTPLT       STATION CONTROL ?             CM 05130000                
       JT    CMCONV                    YES-GO ISSUE CONVERSATIONAL.  CM 05140000                
.S5920 SPACE                                                            05150000                
*    CONTINUE OP VALID TO ALL CHECKING TERMINALS.                       05160000                
       SPACE                                                            05170000                
       TBN   $MDTFT(,XR2),$MTLRC       CHECKING TERMINAL ?            M 05180000                
       JT    CMCONT                    YES-CONTINUE OP IS OK.         M 05190000                
       SPACE                                                            05200000                
       AIF   (&N2741).B5300                                             05210000                
* SINCE OPERATION IS A READ TO NON-STATION CONTROL TERMINAL          4M 05220000                
*  THE TERMINAL MUST BE A 2741 FOR CONTINUE TO BE VALID              4M 05230000                
       SPACE                                                            05240000                
       CLI   $MDTTP(,XR2),ML2741       IS IT 2741 ?                  4M 05250000                
       JE    CMCONT                    JUMP IF 2741                  4M 05260000                
       SPACE                                                            05270000                
.B5300 ANOP                                                             05280000                
*   ISSUE CONVERSATIONAL OPERATION CODE.                              M 05290000                
       SPACE                                                            05300000                
CMCONV EQU   *                         *   LOCAL.                     M 05310000                
       SBN   CMOPWK+1,MLCONV           SET CONVERSATIONAL BIT ON      M 05320000                
       J     CMOPFM                    JUMP TO PLUG DTF               M 05330000                
       SPACE                                                            05340000                
*   ISSUE CONTINUE OPERATION CODE.                                    M 05350000                
       SPACE                                                            05360000                
CMCONT EQU   *                         *   LOCAL.                     M 05370000                
       SBN   CMOPWK+1,MLCONT           SET CONTINUE BIT ON            M 05380000                
       SPACE                                                            05390000                
CMOPFM EQU   *                         *   LOCAL.                     M 05400000                
       AIF   (&NSCTL).S5930                                             05410000                
       MVC   $MDTMA(2,XR2),CMSTMA      MOVE TMA TO DTF               CM 05420000                
.S5930 ANOP                                                             05430000                
CMOPWK MVI   $MDOPC(,XR2),#            MOVE OP CODE TO DTF            M 05440000                
       AIF   (&N1050).C5200                                             05450000                
       B     CMMCT                     BRANCH TO PLUG BYTE 2 OF TMA  1M 05460000                
       SPACE                                                            05470000                
.C5200 ANOP                                                             05480000                
       SPACE 2                                                          05490000                
**********************************************************************M 05492000                
*    GO TO MLTA IOCS, TO START AN OPERATION.                          M 05494000                
**********************************************************************M 05496000                
       SPACE 1                                                          05498000                
       B     MLTIO1                    BR TO IOCS                     M 05500000                
       SPACE                                                            05510000                
       B     CMTRCE                    CALL                           M 05520000                
       DC    AL1(CCPRIB)               *    CCP                       M 05530000                
       DC    AL1(TRRIB)                *        TRACE                 M 05540000                
       DC    AL1(TTMSIO)               *              FOR MLTA SIO.   M 05550000                
       SPACE                                                            05560000                
       CLI   $MDOSC(,DTF),NOBIT        WAS START SUCCESSFUL           M 05570000                
       BE    CMPAII                    BRANCH IF GOOD START           M 05580000                
       SPACE                                                            05590000                
* BRING IN TRANSIENT TO ANALYZE THE NON-ZERO MLTA START CODE          M 05600000                
       SPACE                                                            05610000                
       SVC   0                         ###### TRANSIENT CALL #####    M 05620000                
       DC    AL1(CCPRIB)               CCP SVC RIB.                   M 05630000                
       DC    AL1(CC4SC)                MLTA START CODE ERROR.         M 05640000                
       SPACE                                                            05650000                
       B     CMPAII                    JUMP TO POST REQUESTOR         M 05660000                
.M1400 ANOP                                                             05670000                
       MEND                                                             05680000