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

⟦d49b16de6⟧ s3xseg

    Length: 95504 (0x17510)
    Types: s3xseg
    Names: »S$E060«

Derivation

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

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.*                                                                    * 00030000                
.* NAME: $E060                                                        * 00040000                
.*                                                                    * 00050000                
.* MODIFICATION LEVEL: RELEASE 04                                     * 00060000                
.*                                                                    * 00070000                
.* FUNCTION:                                                          * 00080000                
.*                                                                    * 00090000                
.*   . CCP GENERATION SECOND PASS MACRO INSTRUCTION -- GENERATE       * 00100000                
.*     COMMUNICATIONS I/O INTERFACE ROUTINE                           * 00110000                
.*                                                                    * 00120000                
.* INPUT OPERANDS:                                                    * 00130000                
.*                                                                    * 00140000                
.*   . NONE                                                           * 00150000                
.*                                                                    * 00160000                
.********************************************************************** 00170000                
       $E060                                                            00180000                
.*                                                                      00190000                
.*---------  GLOBAL VARIABLES REFERENCED  ----------------------------* 00200000                
.*                                                                      00210000                
       GBLB  &MLTA                     . 1=MLTA SUPPORTED / 0=NOT       00220000                
       GBLB  &NOM                      . 1=MLTA *NOT* SUPPORTED / 0=IS  00230000                
.*                                                                      00240000                
       GBLB  &NOB                      . 1=BSCA *NOT* SUPPORTED / 0=IS  00260000                
.*                                                                      00263000                
       GBLA  &C#NL                     . NUMBER OF BSCC LINES / 0=NONE. 00266000                
.*                                                                      00270000                
       GBLB  &DFF                      . 1=DFF SUPPORTED / 0=NOT        00280000                
       GBLB  &NDF                      . 1=DFF *NOT* SUPPORTED / 0=IS   00290000                
.*                                                                      00300000                
       GBLB  &N1050                    . 1=1050 *NOT* SUPPORTED / 0=IS  00310000                
.*                                                                      00320000                
       GBLB  &NDME                     . *NO* DATA MODE ESCAPE          00330000                
.*                                     .   1=*NO* DME / 0=DME SUPPORTED 00340000                
.*                                                                      00350000                
       GBLB  &MIN                      . MAKE FUNCTIONS TRANSIENT/0=NO  00360000                
.*                                                                      00370000                
       GBLB  &RAI                      .   1=RESIDENT ACCEPT INPUT      00372000                
       GBLB  &NRAI                     .   0=TRANSIENT ACCEPT INPUT     00374000                
.*                                                                      00374100                
       GBLB  &CSIO                     .   0=SIOC SUPPORTED.            00374200                
.*                                     .   1=SIOC NOT SUPPORTED.        00374300                
.*                                                                      00374400                
       GBLB  &NAPOR                    .   0=BSCA PORTS SUPPORTED   @21 00374410                
.*                                     .   1=BSCA PORTS NOT SUPPORTD@21 00374420                
.*                                                                  @21 00374430                
       GBLB  &NCPOR                    .   0=BSCC PORTS SUPPORTED   @21 00374440                
.*                                     .   1=BSCC PORTS NOT SUPPORTD@21 00374450                
.*                                                                  @21 00374460                
       GBLB  &NTTSK                    .   0=TASK-TASK PORTS SUPPORT@21 00374470                
.*                                     .   1=TASK-TASK PORTS NOT SPT@21 00374480                
.*                                                                  @21 00374490                
       GBLB  &NPBY                     .   0=BUSY PRINTER SUPPORTED     00374500                
.*                                     .   1=BUSY PRINTER NOT SUPPORTED 00374600                
.*                                                                      00374700                
       GBLB  &MTNT                     .   1=TNT MOVEOUT SUPPORTED      00374800                
.*                                     .   0=TNT MOVEOUT NOT SUPPORTED  00374900                
.*                                                                      00375000                
       GBLB  &NCPUM                    .   0=CPU MESSAGES XMITTED   @21 00375100                
.*                                     .   1=CPU MESSAGES SUPPRESSED    00375200                
.*                                                                      00375300                
.*                                                                      00376000                
.*---------  LOCAL VARIABLES USED  -----------------------------------* 00380000                
.*                                                                      00390000                
       LCLC  &#                        . USED FOR SINGLE BLANK          00400000                
       LCLB  &NBS                      . NO BSCA, TASK-TASK, OR BSCC@21 00401000                
       LCLB  &SIOC                     . 1=SIOC SUPPORTED/ 0=NOT    @O8 00402000                
       LCLA  &NSIDM                    . 2=NOT( PORTS OR DME)       @21 00403000                
       LCLA  &YBCSI                    . 0=NOT( BSCC OR SIOC)       @O8 00404000                
       LCLB  &NSIMS                    . 1=CPU MESSAGES AND NO PORTS@21 00405000                
       LCLB  &PORT                     . 1=NO PORTS SUPPORTED       @21 00406000                
       LCLB  &NNONS                    . 1=NO NON-SIOC PORTS SUPPTD @21 00407000                
.*                                                                      00410000                
       TEXT                                                             00420000                
&#     SETC  ' '                       . SINGLE BLANK                   00440000                
&NBS   SETB  0                         . ASSUME BSCA OR BSCC GEN'D  @14 00440700                
       AIF   (&NTTSK EQ '0').NBS1      . SKIP IF TASK-TASK PORTS    @21 00441000                
       AIF   (&NOB NE '1').NBS1        . SKIP IF BSCA OPTION GIVEN  @14 00441400                
       AIF   (&C#NL NE '0').NBS1       . SKIP IF BSCC OPTION GIVEN  @14 00442100                
&NBS   SETB  1                         . NO BSCA, TASK-TASK, OR BSCC@21 00442800                
.NBS1  ANOP                            .                            @14 00443500                
&PORT  SETB  0                         . ASSUME PORTS SUPPORTED     @21 00443550                
       AIF   (&CSIO EQ '0').YPORT      . JUMP IF SIOC PORTS         @21 00443600                
       AIF   (&NAPOR EQ '0').YPORT     . JUMP IF BSCA PORTS         @21 00443650                
       AIF   (&NCPOR EQ '0').YPORT     . JUMP IF BSCC PORTS         @21 00443700                
       AIF   (&NTTSK EQ '0').YPORT     . JUMP IT TASK-TASK PORTS    @21 00443750                
&PORT  SETB  1                         . SET PORTS NOT SUPPORTED    @21 00443800                
.YPORT ANOP                                                         @21 00443850                
&NNONS SETB  0                         . ASSUME NON-SIOC PORTS SUPPD@21 00443900                
       AIF   (&NAPOR EQ '0').YNSPO     . JUMP IF BSCA PORTS         @21 00443950                
       AIF   (&NCPOR EQ '0').YNSPO     . JUMP IF BSCC PORTS         @21 00444000                
       AIF   (&NTTSK EQ '0').YNSPO     . JUMP IT TASK-TASK PORTS    @21 00444050                
&NNONS SETB  1                         . SET NON-SIOC PORTS NOT SUPP@21 00444100                
.YNSPO ANOP                                                         @21 00444150                
.*                                                                  @O8 00444200                
&SIOC  SETB  0                         . ASSUME SIOC NOT SUPPORTED  @O8 00444900                
       AIF   (&CSIO).NSIXX             . JUMP IF SIOC NOT SUPPORTED @O8 00445600                
&SIOC  SETB  1                         . INDICATE SIOC LINE SUPPORT @O8 00446300                
.NSIXX ANOP                            .                            @O8 00447000                
.*                                                                      00447700                
&NSIDM SETA  &PORT+&NDME               . 2 = NO PORTS OR DME        @21 00448400                
&YBCSI SETA  &SIOC+&C#NL               . 0 = NO BSCC OR SIOC SUPPORT    00449100                
.*                                                                      00450000                
       AIF   (&PORT EQ '0').NSIX1      . SKIP IF PORTS              @21 00451000                
       AIF   (&NCPUM).NSIX1            . SKIP IF CPU MSG SUPPRESSED @18 00452000                
&NSIMS SETB  1                         . CPU MSG. AND NO PORTS      @21 00453000                
.NSIX1 ANOP                            .                            @18 00454000                
.*                                                                      00455000                
       TITLE 'COMMUNICATIONS&#.I/O&#.INTERFACE&#.--&#.USER&#.I/O'       00460000                
*********************************************************************** 00470000                
*                                                                     * 00480000                
*  TITLE:  '$CC4II' - I/O INTERFACE ROUTINE.                          * 00490000                
*                                                                     * 00500000                
*  FUNCTION/OPERATION:  THE FUNCTION OF THIS RESIDENT ROUTINE IS TO   * 00510000                
*   PROCESS BOTH USER AND SYSTEM I/O REQUESTS.  EXTENSIVE DIAGNOSTICS * 00520000                
*   ARE PERFORMED ON EACH REQUEST PRIOR TO SCHEDULING THE REQUEST.    * 00530000                
*   USER REQUESTS ARE PROCESSED IN THE FOLLOWING MANNER:              * 00540000                
*                                                                     * 00550000                
*      1. GET/PUT/PUT-NO-WAIT/INVITE/STOP INVITE - FOLLOWING THE      * 00560000                
*         DIAGNOSTICS, AN INPUT OPERATION CAUSES THE RECORD AREA TO BE* 00570000                
*         BLANKED, AND TUBIIS IS SET ON FOR 'CM'.  THE USER'S PARAME- * 00580000                
*         TER LIST IS MOVED TO THE TCB FOR ADDRESSABILITY BY 'CM'.    * 00590000                
*         THE PARAMETER LIST IS QUEUED ON @PRLQ, AND 'CM' IS POSTED   * 00600000                
*         WITH WORK TO DO AND A WAIT ON THE ECB OCCURS.  WHEN CONTROL * 00610000                
*         RETURNS, THE COPY OF THE PARAMETER LIST IS MOVED BACK TO THE* 00620000                
*         USER'S PARAMETER LIST AREA.  CONTROL NOW RETURNS TO THE USER* 00630000                
*         VIA THE DSM DISPATCHER.  NOTE: IF THE PARAMETER LIST OPER-@21 00640000                
*         ATION IS TO A BSCC LINE TUB THEN THE LIST IS QUEUED ON      * 00643000                
*         @CSNRQ AND $CC4#M IS GIVEN CONTROL INSTEAD OF $CC4CM.       * 00646000                
*                                                                     * 00646400                
*         IF BUSY PRINTER SUPPORTED THEN BEFORE AN OPERATION IS GIVEN * 00646800                
*         TO CM OR CS A TEST IS MADE FOR A POSSIBLE BUSY PRINTER.  IF * 00647200                
*         TUBBSY IS NOT ON THEN THE OPERATION IS EXECUTED.  IF TUBBSY * 00647600                
*         IS ON THEN AN INVITE WITH TUBWAT ON IS ISSUED TO ASK IF     * 00648000                
*         DEVICE IS STILL BUSY.  IF IT IS THEN $CC4II LOOP IN THE     * 00648400                
*         USERS TASK UNTILL THE DEVICE BECOMES NOT BUSY BEFORE        * 00648800                
*         GIVING THE USERS OPERATION TO CM OR CS.                     * 00649200                
*                                                                     * 00649600                
*      2. ACCEPT INPUT - WHEN AN ACCEPT INPUT REQUEST IS ISSUED, TRAN-* 00660000                
*         SIENT $CC4AB IS CALLED TO FIND A COMPLETED INVITE INPUT FOR * 00670000                
*         THIS TASK.  IF NO COMPLETED INVITES ARE FOUND ON THE TCBINQ * 00680000                
*         CHAIN, CONTROL RETURNS TO $CC4II TO ISSUE A WAIT FOR AN IN- * 00690000                
*         VITE TO COMPLETE OR SHUTDOWN TO BE REQUESTED BY THE SYSTEM  * 00700000                
*         OPERATOR. IF CONTROL RETURNS DUE TO A SHUTDOWN REQUEST, THE * 00710000                
*         RETURN CODE OF THE ACCEPT PARAMETER LIST IS SET TO REFLECT  * 00720000                
*         THIS.  IF CONTROL RETURNS BECAUSE OF THE COMPLETION OF AN   * 00730000                
*         INVITE INPUT, $CC4AB IS AGAIN INVOKED TO FIND THE COMPLETED * 00740000                
*         INVITE REQUEST ON THE 'TCBINQ' CHAIN.  WHEN $CC4AB RETURNS  * 00750000                
*         TO THE RESIDENT CODE, THE TUB IS DEQUEUED FROM THE        @21 00760000                
*         TCBINQ CHAIN, AND 'CM/CS' IS POSTED TO MOVE               @21 00770000                
*         THE DATA TO THE USER'S RECORD AREA AND FREEMAIN THE INVITE  * 00780000                
*         INPUT HOLD BUFFER AND THE INVITE PARAMETER LIST COPY.       * 00790000                
*                                                                     * 00800000                
*      3. STATUS REQUESTS (ACQUIRE TERMINAL, RELEASE TERMINAL, OR GET * 00810000                
*         TERMINAL ATTRIBUTES) - AFTER THESE REQUESTS ARE DIAGNOSED,  * 00820000                
*         TRANSIENT $CC4GA IS INVOKED TO EITHER PROCESS THE REQUEST   * 00830000                
*         (GET ATTRIBUTES) OR TO ROUTE THE REQUEST TO THE APPROPRIATE * 00840000                
*         ACQUIRE OR RELEASE TRANSIENT ($CC4AQ OR $CC4RL).            * 00850000                
*                                                                     * 00860000                
*      4. CONSOLE REQUESTS - FOR USER REQUESTS TO THE CONSOLE, A GET- * 00870000                
*         MAIN IS DONE FOR A CONSOLE WRITE TO OPERATOR (WTO) OR WRITE * 00880000                
*         TO OPERATOR WITH REPLY (WTOR) REQUEST.  THE PARAMETER LIST  * 00890000                
*         IS BUILT IN THE GETMAINED AREA FROM THE USER'S PARAMETER    * 00900000                
*         LIST AND THE REQUEST IS ISSUED VIA CONSOLE DATA MANAGEMENT  * 00910000                
*         CONTROL RETURNS TO $CC4II AFTER THE OPERATION IS COMPLETED, * 00920000                
*         AND A FREEMAIN OCCURS TO FREE THE PARAMETER LIST AREA AND   * 00930000                
*         CONTROL RETURNS TO THE USER PROGRAM.                        * 00940000                
*                                                                     * 00950000                
*      5. DFF REQUESTS - IF THE REQUEST IS FOR A DFF TERMINAL, THE    * 00960000                
*         FOLLOWING ACTION TAKES PLACE:                               * 00970000                
*                                                                     * 00980000                
*              - RELEASE TERMINAL - DFF PROCESSING OCCURS FOLLOWING   * 00990000                
*                THE RETURN FROM THE RELEASE TRANSIENTS.              * 01000000                
*                                                                     * 01010000                
*              - GET ATTRIBUTES/ACQUIRE TERMINAL - DFF IS NOT INVOLVED* 01020000                
*                                                                     * 01030000                
*              - ACCEPT INPUT - THE DFF TASK IS INVOKED BY 'CM/CS'  @21 01040000                
*                                                                     * 01050000                
*              - OTHERS - DFF PROCESSING OCCURS IMMEDIATELY PRIOR TO  * 01060000                
*                POSTING 'CM' THAT HE HAS WORK TO DO.  THE DFF TASK IS* 01070000                
*                THEN INVOKED BY COMMUNICATIONS MANAGEMENT DURING HIS * 01080000                
*                PROCESSING.                                          * 01090000                
*                                                                     * 01100000                
*      6. SYSTEM REQUESTS ($CC4IS) - FOR SYSTEM TP REQUESTS, THE RE-  * 01110000                
*         QUEST IS MERELY PASSED ON TO $CC4CM OR $CC4#M, IF BSCC, BY  * 01120000                
*         MEANS OF QUEUING IT ON ITS PARM CHAIN AND POSTING HIM. IF   * 01122000                
*         THE OPERATION IS AN INVITE INPUT, THE PARMETER LIST IS      * 01124000                
*         MOVED TO THE TUB.                                           * 01126000                
*                                                                     * 01150000                
*  INPUT:  INPUT TO $CC4II IS A PARAMETER LIST POINTED TO BY XR2.     * 01160000                
*                                                                     * 01170000                
*  OUTPUT:  OUTPUT FROM $CC4II WILL BE A SCHEDULED PUT OPERATION,     * 01180000                
*   DATA ON AN INPUT OPERATION, OR TERMINATION DUE TO ERROR WITH ONE  * 01190000                
*   OF THE FOLLOWING TERMINATION CODES:                               * 01200000                
*            01 - INVALID OP CODE/MODIFIERS                           * 01210000                
*            02 - INVALID OPERATION FOR CONSOLE                       * 01220000                
*            03 - UNDEFINED SYMBOLIC TERMINAL NAME                    * 01230000                
*            04 - TERMINAL NOT ALLOCATED TO PROGRAM                   * 01240000                
*            05 - TERMINAL REFERENCED BY OTHER THAN ALLOCATED NAME    * 01250000                
*            06 - BLANK TERMINAL NAME FOR MRTS PROGRAM                * 01260000                
*            07 - BLANK STN AND REQUESTOR RELEASED                    * 01270000                
*            08 - BLANK STN INVALID FOR THIS OPERATION                * 01280000                
*            0A - STN NOT ASSIGNED TO TERMINAL                        * 01290000                
*            0C - TERMINAL I/O CAPABILITY DOES NOT MATCH OPERATION    * 01300000                
*            0D - INVALID OUTPUT LENGTH                               * 01310000                
*            0E - INVALID INPUT LENGTH                                * 01320000                
*            0F - INPUT LENGTH GREATER THAN TP BUFFER LIZE            * 01330000                
*            10 - INVALID OP WITH DATA FROM PROG. REQ. OUTSTANDING    * 01340000                
*            11 - INVALID OP WITH INVITE INPUT OUTSTANDING            * 01350000                
*            12 - ACCEPT WITH NO OUTSTANDING INVITES                @21 01353000                
*            13 - ACCEPT BY NEP WITH MAX # OF TERMS AND NO INVITES  @21 01356000                
*            14 - INVALID OP WITH NO INVITES OUTSTANDING              * 01360000                
*            16 - COPY REQUESTED TO TERMINAL WITHOUT MAPPING          * 01380000                
*            17 - COPY TO TERMINAL NAME NOT FOUND                     * 01390000                
*            18 - COPY INVALID WITH 3275                              * 01400000                
*            19 - ERASE REQUESTED TO TERMINAL WITHOUT MAPPING         * 01410000                
*            1A - PUT OVERRIDE TO TERMINAL WITHOUT MAPPING            * 01420000                
*            1B - INVALID PUT WITH MAPPING - NO EOT                   * 01430000                
*            1C - RECORD AREA TOO SMALL FOR BSCA GET WITH ITB         * 01440000                
*            1D - ACCEPT WHILE WAITING ON EOT                       @21 01445000                
*            1E - OUTPUT LENGTH TO CONSOLE TOO LARGE                  * 01450000                
*            1F - OUTPUT LENGTH GREATER THAN TP BUFFER LENGTH         * 01460000                
*            35 - DFF TERMINAL REFERENCED BY NON-DFF TASK             * 01470000                
*            36 - WRONG DATA LENGTH FOR WAIT OPERATION              @21 01471000                
*            37 - REQUIRED PORT NOT DEFINED TO THE CALLING TASK.      * 01473000                
*            38 - INVALID USE OF PORT COMMAND REQUEST OPCODE.         * 01476000                
*            48 - NON-MSG MODE PUT TO BSCA, BSCC, OR TTASK PORT     @21 01478000                
*                                                                     * 01480000                
*  ENTRY POINTS:                                                      * 01490000                
*            $CC4II - ENTRY FOR USER REQUESTS                         * 01500000                
*            $CC4IS - ENTRY POINT FOR SYSTEM REQUESTS                 * 01510000                
*                                                                     * 01520000                
*  EXTERNAL REFERENCES:                                               * 01530000                
*            $CC4TT - TRACE ENTRY                                     * 01540000                
*            $CC4PI - TRANSIENT INTERFACE TO CALL $CC4NC AND $CC4AB   * 01550000                
*            $CC4NC - CANCEL TRANSIENT                                * 01560000                
*            $CC4AB - TRANSIENT TO CHECK ACCEPT INPUT POSSIBILITIES   * 01570000                
*            $CC4GA - GET TERMINAL ATTRIBUTES TRANSIENT               * 01580000                
*            CC4TI2 - TERMINATION ENTRY WITH TCB COMPLETION CODE      * 01590000                
*                                                                     * 01600000                
*  EXITS-NORMAL:  A NORMAL EXIT BACK TO THE USER PROGRAM VIA THE DIS- * 01610000                
*                 PATCHER TAKES PLACE IF NO ERRORS OCCUR.             * 01620000                
*       -ERROR:  AN ERROR EXIT TO TERMINATION WITH THE APPROPRIATE    * 01630000                
*                TCB COMPLETION CODE OCCURS IN CASE OF ERROR.         * 01640000                
*                                                                     * 01650000                
*  TABLES/WORK AREAS:  A TABLE OF OPERATION CODES IS USED TO CHECK    * 01660000                
*   VALIDITY OF OP CODES.                                             * 01670000                
*                                                                     * 01680000                
*  NOTES: RESIDENT CODE, REENTRANT.                                   * 01690000                
*                                                                     * 01700000                
*  CHANGE ACTIVITY - $CC4II                                           * 01710000                
*     @01/INCR/OS.0211  - ACCEPT-NO-WAIT INPUT OPCODE.                * 01716000                
*     @02/APAR/S309335  - INCORRECT MOVE OF PARM-LIST ON RESCHEDUAL.  * 01722000                
*     @03/APAR/S309195  - SUPPRESS 'S' MESSAGE TO CPU FREEMAIN.       * 01728000                
*     @04/APAR/S309336  - SHUTDOWN AND SYSTEM INVITE OPCODE.          * 01734000                
*     @05/APAR/S30X999  - DISABLE INTERUPT AFTER $CC4IS WAIT.         * 01740000                
*     @06/INCR/OS.0206  - BSCA VS BSCC LOGIC.                         * 01746000                
*     @07/INCR/OS.X299  - VAR. INVITE LENGTH ON PRUF SCREENS.         * 01752000                
*     @08/INCR/OS.0321  - SUPPORT SIOC PRPQ OPTION.                   * 01752500                
*     @09/APAR/S311109  - TUBPIL LENGTH FOR NON-DFF PRUF PUT.         * 01753000                
*     @10/INCR/OS.0309  - BUSY PRINTER SUPPORT.                       * 01753500                
*     @11/INCR/OS.0315  - TNT MOVEOUT SUPPORT.                        * 01754000                
*     @12/APAR/S312039  - INVALID RECA RETURNED AFTER WAIT OP.        * 01754500                
*     @13/INCR/OS.0347  - SUPPORT FOR COMMAND RELEASE OPCODE          * 01755000                
*     @14/APAR/S312209  - INCLUDE CODE FOR BSCC CHECKING.             * 01755500                
*     @15/APAR/S312155  - VALIDATE GET LENGTH FOR WROR ON CONSOLE     * 01756000                
*     @16/INCR/OS-0361  - RETURN SHUTDOWN PINDING RETURN CODE         * 01756500                
*     @17/APAR/S311871  - CODE MISSING ON BSCC ONLY GEN (NO BSCA)     * 01757000                
*     @18/INCR/OS-0367  - ALLOW CPU MESSAGES (S TYPE)                 * 01757500                
*     RELEASE 04                                                    @19 01757600                
*     @19/APAR-S313287 - LOOP POSSIBLE IF PUT WITH LARGE RECORD LEN @19 01757700                
*     @20/APAR-S314559 - CHECK FOR TUB ADDR IS ERRONEOUS            @20 01757800                
*     @21/INCR-OS4101 - BSC MULTIPORT                               @21 01757900                
*     RELEASE 05                                                      * 01757930                
*     @22/APAR/S315752 - NON PUT OPERATIONS CHANGED TO SYS INVITES. @22 01757960                
*                                                                     * 01758000                
*********************************************************************** 01770000                
       EJECT                                                            01780000                
       SPACE                                                            01790000                
*********************************************************************** 01800000                
* ENTRY POINT FOR I/O INTERFACE FOR USER REUESTS                      * 01810000                
* UPON ENTRY FROM USER RELOCATABLE MODULE - XR2 POINTS AT PARM LIST   * 01815000                
*********************************************************************** 01820000                
       SPACE                                                            01830000                
       ENTRY $CC4II                                                     01850000                
$CC4II EQU   *                                                          01860000                
       SPACE                                                            01870000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERRUPTS           01880000                
       ST    II@PRL,XR2                SAVE PARAMETER LIST ADDRESS      01890000                
       SPACE                                                            01900000                
*********************************************************************** 01910000                
* VALIDATE THE OPERATION CODE PASSED BY THE USER                      * 01920000                
* OBTAIN VALIDITY BYTE FROM OP CODE VALIDTY TABLE                     * 01930000                
*********************************************************************** 01940000                
       SPACE                                                            01950000                
       LA    IIVTBL,XR1                POINT TO OPCODE VALIDITY TABLE   01980000                
       MNN   IIMVBY+4,PLOPC(,XR2)      MOVE OP CODE TO DISPLACMENT      01985000                
IIMVBY MVC   IIVBYT(1),*-*(,XR1)       GET VALIDITY BYTE FROM TABLE     01990000                
       SPACE                                                            02000000                
       CLI   PLOPC(,XR2),OPAQG+OPSTA   IS THE OP IN THE VALID RANGE @08 02020000                
       JH    IIIVLD                    BRANCH TO TERMINATE IF NOT       02040000                
       CLI   IIVBYT,IIZERO             IS VALIDITY BYTE ZERO            02050000                
       JNE   IIVLD                     JUMP IF NOT                      02060000                
       SPACE                                                            02070000                
* VALIDITY BYTE ZERO SO OPERATION IS INVALID                            02080000                
IIIVLD B     C4TI2                     BRANCH TO TERMINATION            02100000                
       DC    AL1(TCCIOP)               INVALID OP COMPLETION CODE       02110000                
       SPACE                                                            02120000                
IIVLD  EQU   *                         OP CODE IS ONE OF CCP VALID OPS  02130000                
       SLC   PLCHN(2,XR2),PLCHN(,XR2)  CLEAR CHAIN/RETURN CODE IN PL.   02140000                
       SLC   PL$RTC(4,XR2),PL$RTC(,XR2) CLEAR INTERNAL RETURN CODE      02150000                
*                                        AND INTERNAL OP CODE.          02160000                
       SPACE                                                            02161000                
       CLI   PLOPC(,XR2),OPTCHN        THIS A CHAIN TASK REQUEST?       02162000                
       BE    IICTSK                    YES, GO EXIT TO TRANSIENT        02164000                
       SPACE 1                                                          02164500                
       TBN   PLOPC(,XR2),OPAQG         TEST IF GENERIC ACQ OPCODE.  @08 02165000                
       BT    IIGTA                     YES, GO CALL TRANSCIENT.     @08 02165500                
       SPACE                                                            02166000                
       CLI   PLOPC(,XR2),OPWAIT        IS OP WAIT REQUEST               02180000                
       JE    IIFOND                    JUMP TO ISSUE WAIT               02190000                
       SPACE                                                            02200000                
*      SHUTDOWN INQURITY OP CODE                                    @01 02205000                
       CLI   PLOPC(,XR2),OPSHQ         IS OP SHUTDOWN INQUIRY       @01 02210000                
       JNE   IICKAI                    JUMP IF NOT SHUTDOWN INQUIRY @01 02220000                
       TBN   $FLGA,CPSHUT              HAS SHUTDOWN BEEN REQUESTED  @01 02250000                
       BT    IIPGSH                    YES THEN SET RETURN CODE.    @01 02260000                
       TBN   PLOPM(,XR2),OPDLY         TEST IF INQ SHUTDOWN DELAY   @16 02262000                
       TBN   $FLGB,CPSHDP              AND SHUTDOWN DELAY ENTERED?  @16 02264000                
       BF    IINTSH                    NO, THEN JUST RETURN INV CNT @16 02266000                
       MVI   PLRTC(,XR2),RCXSHP        YES, INDICATE SHUTDOWN PEND. @16 02268000                
       B     IINTSH                    THEN SET INVITE CNT IN EFFL. @16 02270000                
       SPACE                                                            02320000                
*      CHECK OP CODE TO SEE IF IT'S AN ACCEPT INPUT                     02330000                
IICKAI EQU   *                         CHECK FOR ACCEPT INPUT           02350000                
       TBN   PLOPC(,XR2),OPACI         IS THIS AN ACCEPT INPUT          02360000                
       TBF   PLOPC(,XR2),BIT4+BIT6+BIT7 AND ONLY ACCEPT INPUT?          02370000                
       BT    IIACI                     .BRANCH IF ACCEPT INPUT          02380000                
       SPACE                                                            02390000                
*      NOT ACCEPT INPUT SO MUST VALIDATE THE SYMBOLIC TERMINAL NAME     02400000                
*      PROVIDED BY USER ALONG WITH THE OPERATION                    @21 02410000                
       EJECT                                                            02420000                
*********************************************************************** 02430000                
* LOCATE SYMBOLIC TERMINAL NAME IN THE TERMINAL NAME TABLE            * 02440000                
*********************************************************************** 02450000                
       SPACE                                                            02460000                
* CHECK FOR END OF TNT                                                  02480000                
* XR1 POINTS AT TNT                                                     02490000                
       SPACE                                                            02500000                
       L     @TNT,XR1                  POINT XR1 AT FIRST TNT ENTRY     02505000                
       L     PLRECA(,XR2),XR2          POINT XR2 AT RECORD AREA         02510000                
.*                                                                  @11 02511000                
       AIF   (&MTNT NE '1').NTNT1      .SKIP IF TNT REMAP NOT SUPP. @11 02512000                
       MVC   IITNAM(IISTNL),IISTNL-1(,XR2) SAVE TERMINAL NAME REFF  @11 02513000                
       B     IIMTNT                    GO MAP TNT MOVEOUT AREA.     @11 02514000                
.NTNT1 ANOP                                                         @11 02515000                
.*                                                                  @11 02516000                
       SPACE                                                            02520000                
IITNTN CLI   TNTCCP(,XR1),TNTSTP       ARE WE AT END OF TNT?            02530000                
       JE    IINFND                    JUMP IF AT END TO NOT FOUND      02540000                
       SPACE                                                            02550000                
* CHECK THIS ENTRY IN THE TNT                                           02560000                
       AIF   (&MTNT EQ '1').ATNT2      .SKIP IF TNT REMAP IS SUPP.  @11 02570000                
       CLC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) COMPARE TNT STN.     @11 02580000                
       AGO   .NTNT2                                                 @11 02582000                
.ATNT2 ANOP                                                         @11 02584000                
       CLC   IITNAM(IISTNL),TNTNAM(,XR1) COMPARE TNT STN.           @11 02586000                
.NTNT2 ANOP                                                         @11 02588000                
       JH    IILOOK                    JUMP HIGH TO LOOK AGAIN          02590000                
       AIF   (&PORT).NSIO1             . SKIP IF NO PORTS SUPPORTED @21 02591000                
       JE    IIPFND                    JUMP IF FOUND IN TNT.        @08 02592000                
       AGO   .NSIO2                                                 @08 02593000                
.NSIO1 ANOP                                                         @08 02594000                
       JE    IIFOND                    JUMP IF FOUND IN TNT.        @08 02595000                
.NSIO2 ANOP                                                         @08 02596000                
       SPACE                                                            02610000                
* NOT FOUND - HAVE PROGRAM ERROR                                        02620000                
IINFND EQU   *                         STN NOT FOUND IN TNT             02640000                
       AIF   (&MTNT NE '1').NTN2A      .SKIP IF TNT REMAP NOT SUPP  @11 02642000                
       B     IIUTNT                    UNMAP THE TNT MOVEOUT AREA.  @11 02644000                
.NTN2A ANOP                                                         @11 02646000                
       L     II@PRL,XR2                POINT TO PARAMETER LIST          02650000                
       SLC   PLTUBA(2,XR2),PLTUBA(,XR2)  CLEAR TUB POINTER TO ZEROS     02660000                
       CLI   PLOPC(,XR2),OPGTA         WAS THIS A GET ATTRIBUTES OP?    02670000                
       BE    IIGTA                     SKIP TERMINATION IF YES          02680000                
       B     C4TI2                     BRANCH TO TERMINATION            02690000                
       DC    AL1(TCCNNF)               TERMINAL NAME NOT FOUND          02700000                
       SPACE                                                            02710000                
* SCAN UNTIL A MATCH IS FOUND IF POSSIBLE.                              02720000                
* DETERMINE HOW MUCH TO BUMP TNT REGITER POINTER.                       02730000                
IILOOK EQU   *                         LOOK AT ANOTHER ENTRY            02750000                
IIBUMP LA    TNTLN(,XR1),XR1           BUMP POINTER BY TNT FIXED SIZE   02760000                
       B     IITNTN                    BRANCH TO COMPARE AGAIN          02770000                
       AIF   (&PORT).NSIO3             . SKIP IF NO PORTS SUPPORTED @21 02770400                
       SPACE 1                                                      @08 02770800                
* FOUND THE TNT ENTRY. TEST IF RESERVED PORT NAME.                  @11 02771200                
* USE THE REQUIRED GENERAL PORT TNT FOUND DURING ALLOCATION.        @11 02771600                
IIPFND EQU   *                         FOUND TNT FOR TERM NAME.     @08 02772000                
       TBN   TNTFLG(,XR1),TNTRPT       TEST IF THIS DUMMY PORT.     @08 02772400                
       JF    IIFOND                    JUMP IF NOT DUMMY PORT.      @08 02772800                
       AIF   (&MTNT NE '1').NTN2B      .SKIP IF TNT REMAP NOT SUPP  @11 02773200                
       B     IIUTNT                    UNMAP THE TNT MOVEOUT AREA.  @11 02773600                
.NTN2B ANOP                                                         @11 02774000                
       L     NCTCB@,XR1                POINT TO TASK'S TCB.         @08 02774400                
       CLI   TCBPCB-1(,XR1),NOBIT      WAS REQUIRED PORT DEFINED    @08 02774800                
       L     TCBPCB(,XR1),XR1          POINT TO REQUIRED PORT       @08 02775200                
       JNZ   IIFOND                    CONTINUE IF FOUND.           @08 02775600                
       CLI   PLOPC(,XR2),OPGTA         WAS THIS A GET ATTRIBUTES OP @08 02776000                
       JE    IIGTA                     SKIP TERMINATION IF YES      @08 02776400                
       SPACE 1                                                      @08 02776800                
*      ERROR - REQUIRED PORT WAS NOT DEFINED OR WAS RELEASED.       @08 02777200                
       B     C4TI2                     IF ZERO THEN ERROR.          @08 02777600                
       DC    AL1(TCCNRP)               REQUIRED PORT NOT DEFINED.   @08 02778000                
.NSIO3 ANOP                                                         @08 02778400                
       EJECT                                                            02780000                
*********************************************************************** 02790000                
* A WAIT OPERATION WAS ISSUED OR A                                  @21 02795000                
* SYMBOLIC TERMINAL NAME WAS FOUND IN TNT.  DETERMINE IF              * 02800000                
* OPERATION IS VALID FOR THE TYPE TNT ENTRY FOUND.                    * 02810000                
* XR1 POINTS AT PROPER TNT ENTRY                                      * 02815000                
*********************************************************************** 02820000                
       SPACE                                                            02830000                
IIFOND EQU   *                         STN FOUND IN TNT                 02860000                
       AIF   (&MTNT NE '1').NTN2C      .SKIP IF TNT REMAP NOT SUPP  @11 02862000                
       B     IIUTNT                    UNMAP THE TNT MOVEOUT AREA.  @11 02864000                
.NTN2C ANOP                                                         @11 02866000                
       L     II@PRL,XR2                RESTORE PARM LIST POINTER        02870000                
       B     CC4TT                     BRANCH TO TRACE ROUTINE          02880000                
       DC    AL1(TTII)                 TRACE FOR $CC4II                 02890000                
       SPACE 1                                                          02900000                
       CLI   PLOPC(,XR2),OPWAIT        IS OP WAIT REQUEST               02910000                
       JNE   IICKNM                    JUMP IF NOT WAIT REQUEST         02920000                
       SPACE 1                                                          02923000                
*********************************************************************** 02926000                
*      HAVE WAIT OPERATION.                                           * 02929000                
*      WAIT DATA AREA MUST BE AT LEAST 10 BYTES LONG.                 * 02932000                
*      BUILD WAIT IOB IN USERS RECORD AREA THEN ISSUE SVC.            * 02935000                
*********************************************************************** 02938000                
       SPACE 1                                                          02941000                
       CLC   PLOUTL(2,XR2),IILN10      WAIT DATA AREA 10 BYTES LONG     02950000                
       JNL   IIWAT1                    JUMP TO ISSUE WAIT               02960000                
*      ERROR - WAIT OPERATION DATA LENGTH IS TOO SHORT                  02970000                
       B     C4TI2                     BRANCH TO TERMINATION            02980000                
       DC    AL1(TCCWAT)               INVALID WAIT DATA LENGTH         02990000                
       SPACE 1                                                          02995000                
IIWAT1 EQU   *                                                          03000000                
       L     PLRECA(,XR2),XR2          LOAD WAIT DATA AREA POINTER  @12 03010000                
       LA    IISTNL(,XR2),XR2          BUMP POINTER TO TIMER IOB.   @12 03020000                
       MVI   IIZERO(,XR2),IITIMR+IITMWT SET TIMER IOB TO WAIT ON HHMMSS 03030000                
       MVI   IIWFLG(,XR2),IIZERO       INITIALIZE THE WAIT FLAG         03050000                
       CCP   ENABLE,PMRQ               ENABLE ALL INTERRUPTS            03060000                
       SVC   0                         SUPERVISOR CALL                  03070000                
       DC    XL1'15'                   RIB FOR TIMER WAIT               03080000                
       B     IITEND                    BR TO RETURN TO USER             03090000                
       SPACE 3                                                      @11 03095000                
*********************************************************************** 03096000                
*      SYMBOLIC TERMINAL NAME FOUND. TEST IF BLANK STN.               * 03097000                
*********************************************************************** 03098000                
       SPACE 1                                                          03099000                
IICKNM EQU   *                                                          03100000                
       L     PLRECA(,XR2),XR2          RESTORE RECORD AREA POINTER      03120000                
       AIF   (&MTNT NE '1').NTN2D      .SKIP IF TNT REMAP NOT SUPP  @11 03124000                
       B     IIMTNT                    MAP   THE TNT MOVEOUT AREA.  @21 03128000                
       MVC   IITNTX+TNTLN-1(TNTLN),TNTLN-1(,XR1) SAVE TNT FOUND.    @11 03132000                
.NTN2D ANOP                                                         @11 03136000                
       TBN   TNTFLG(,XR1),TNTBLK       IS STN ALL BLANKS?               03140000                
       JF    IINBLK                    JUMP IF NOT.                     03150000                
       EJECT                                                            03156000                
       SPACE                                                            03160000                
*********************************************************************** 03165000                
*      HAVE SYMBOLIC TERMINAL NAME OF ALL BLANKS.                     * 03170000                
*      THUS THE TERMINAL TO WHICH THE OPERATION IS DIRECTED IS        * 03190000                
*      THE ONE AND ONLY REQUESTOR OF A SINGLE REQUESTOR PROGRAM.      * 03200000                
*      DETERMINE IF OPERATION IS VALID FOR STN OF ALL BLANKS.         * 03220000                
*********************************************************************** 03225000                
       SPACE                                                            03230000                
IIBLK  EQU   *                         BLANK TERMINAL NAME GIVEN.       03235000                
       TBN   IIVBYT,IIVBLK             IS IT VALID OP FOR STN-BLANKS    03240000                
       JT    IICKBK                    JUMP IF VALID OP                 03250000                
       SPACE                                                            03260000                
* HAVE ERROR** INVALID OPERATION FOR STN OF BLANKS                      03270000                
       B     C4TI2                     BRANCH TO TERMINATION            03290000                
       DC    AL1(TCCIBL)               INVALID BLANK NAME               03300000                
       SPACE                                                            03313000                
*      FIRST CHECK TO SEE IF PROGRAM IS NON-MRTS PROGRAM                03316000                
IICKBK EQU   *                         CHECK VALIDITY OF BLANK NAME     03320000                
       L     NCTCB@,XR1                POINT TO USER'S TCB              03360000                
       TBF   TCBDMG(,XR1),TCBMTS       IS IT NON-MRTS PROGRAM?          03370000                
       JT    IISR                      JUMP IF NON-MRTS PROGRAM         03380000                
       SPACE                                                            03390000                
*      HAVE USE OF BLANK NAME FOR MRTS PROGRAM                          03400000                
       B     C4TI2                     BRANCH TO TERMINATION            03420000                
       DC    AL1(TCCMBL)               BLANK NAME FOR MRTS PROGRAM      03430000                
       SPACE                                                            03440000                
IISR   EQU   *                                                          03450000                
       TBN   TCBDMG(,XR1),TCBKRQ       IS THIS A CONSOLE REQUESTOR TASK 03460000                
       JF    IINKRQ                    BRANCH IF NOT                    03470000                
       L     @KNTUB,XR1                LOAD POINTER TO CONSOLE TUB      03480000                
       J     IIKRQ                     BRANCH TO MOVE IN NAME           03490000                
       SPACE 1                                                          03495000                
IINKRQ EQU   *                                                          03500000                
       CLI   TCBTUB-1(,XR1),NOBIT      IS TUB POINTER NULL              03510000                
       L     TCBTUB(,XR1),XR1          POINT XR1 AT REQUESTOR TUB       03520000                
       TBN   TUBAT1(,XR1),TUBREQ       IS TUB REQUESTING TERMINAL       03530000                
       JC    IIRBL,ANY+FALSE+EQ        JUMP IF NULL TUB POINTER OR      03540000                
*                                      TUB IS NOT REQUESTING            03550000                
*      BLANK NAME COMPLETELY VALID                                      03570000                
IIKRQ  EQU   *                                                          03590000                
       L     TUBTNT(,XR1),XR1          POINT XR1 AT THIS TUBS TNT ENTRY 03600000                
       AIF   (&MTNT EQ '1').ATNT3      .SKIP IF TNT REMAP IS SUPP   @11 03605000                
       MVC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) MOVE STN TO RECORD AREA  03610000                
       AGO   .NTNT3                                                 @11 03611000                
.ATNT3 ANOP                                                         @11 03612000                
       MVC   IITNTX+TNTLN-1(TNTLN),TNTLN-1(,XR1) SAVE TNT FOUND.    @11 03613000                
       B     IIUTNT                    . UNMAP TNT MOVEOUT AREA.    @11 03614000                
       MVC   IISTNL-1(IISTNL,XR2),IITNAM MOVE STN TO RECORD AREA    @11 03615000                
       B     IIMTNT                    . REMAP TNT MOVEOUT AREA.    @11 03616000                
.NTNT3 ANOP                                                         @11 03617000                
       J     IINBLK                    JUMP TO HANDLE FURTHER           03620000                
       SPACE                                                            03630000                
*      ERROR  - BLANK NAME TO NON-MRTS WITH REQUESTOR RELEASED ALREADY  03640000                
IIRBL  EQU   *                                                          03660000                
       B     C4TI2                     BRANCH TO TERMINATION            03670000                
       DC    AL1(TCCRBL)               BLANK NAME WITH REQUESTOR REL.   03680000                
       EJECT                                                            03690000                
*********************************************************************** 03700000                
* HAVE REQUEST TO A SPECIFIC TUB AT THIS POINT.                       * 03710000                
* ASSURE THAT THIS TNT HAS BEEN ASSIGNED TO A TUB.                    * 03713000                
* REGISTER XR1 POINTS TO TNT ENTRY.                                   * 03716000                
*********************************************************************** 03720000                
       SPACE                                                            03730000                
IINBLK EQU   *                         HAVE TERMINAL REQUEWT TO HANDLE  03770000                
       CLI   TNTTUB-1(,XR1),NOBIT      IS TNTTUB POINTER NULL           03780000                
       JNE   IINNUL                    JUMP IF POINTER NOT NULL         03790000                
       SPACE                                                            03800000                
* ERROR - TNT NOT ASSIGNED TO A TUB.                                    03810000                
       B     C4TI2                     BRANCH TO TERMINATION            03830000                
       DC    AL1(TCCNAT)               TNT NOT ASSIGNED TO TUB          03840000                
       SPACE                                                            03850000                
IINNUL EQU   *                         HAVE VALID TNT TUB POINTER       03860000                
       AIF   (&MTNT NE '1').NTNT4      .SKIP IF TNT REMAP NOT SUPP  @11 03862000                
       B     IIUTNT                    UNMAP THE TNT MOVEOUT AREA.  @11 03864000                
.NTNT4 ANOP                                                         @11 03866000                
       L     II@PRL,XR2                POINT XR2 AT PARM LIST           03870000                
       SPACE                                                            03875000                
.*                                                                      03880000                
       AIF   (&N1050).NML1             . SKIP IF *NO* 1050              03890000                
.*                                                                      03900000                
*********************************************************************** 03910000                
*      FOR 1050 ONLY                                                  * 03920000                
*********************************************************************** 03930000                
       SPACE                                                            03940000                
*      DETERMINE IF THIS IS SUB-TERMINAL NAME                           03950000                
       AIF   (&MTNT NE '1').NTN4A      .SKIP IF TNT REMAP NOT SUPP  @11 03954000                
       MVC   PL$MCT(1,XR2),IITNTX+TNTMCT MOVE MCT IND. TO P-LIST.   @11 03958000                
       AGO   .ATN4A                                                 @11 03962000                
.NTN4A ANOP                                                         @11 03966000                
       MVC   PL$MCT(1,XR2),TNTMCT(,XR1) MOVE MCT INDICES TO PL.     @11 03970000                
.ATN4A ANOP                                                         @11 03975000                
       CLI   PL$MCT(,XR2),NOBIT        IS THIS SUB-TERMINAL NAME    @11 03980000                
       JE    IISTNT                    JUMP IF NOT SUB-TERMINAL NAME    03990000                
       SPACE                                                            04000000                
*      HAVE SUB-TERMINAL NAME SO MUST GET ADDRESS OF                    04010000                
*      MASTER TNT FROM TNTTNT FIELD.                                    04020000                
       AIF   (&MTNT NE '1').NTN4B      .SKIP IF TNT REMAP NOT SUPP  @11 04025000                
       B     IIMTNT                    MAP TNT MOVE OUT AREA.       @11 04030000                
.NTN4B ANOP                                                         @11 04035000                
       L     TNTTNT(,XR1),XR1          POINT XR1 AT  MASTER TNT         04040000                
       AIF   (&MTNT NE '1').NTN4C      .SKIP IF TNT REMAP NOT SUPP  @11 04042000                
       MVC   IITNTX+TNTLN-1(TNTLN),TNTLN-1(,XR1) SAVE TNT FOUND.    @11 04044000                
       B     IIUTNT                    UNMAP TNT MOVE OUT AREA.     @11 04046000                
.NTN4C ANOP                                                         @11 04048000                
       SPACE                                                            04050000                
.NML1  ANOP                                                             04060000                
       ENTRY IISTNT                                                     04070000                
IISTNT EQU   *                         SAVE TNT ADDR                    04080000                
       ST    IIVTNT,XR1                SAVE TNT ENTRY ADDRESS           04100000                
       AIF   (&MTNT NE '1').NTN4D      .SKIP IF TNT REMAP NOT SUPP  @11 04102000                
       MVC   PLTUBA(2,XR2),IITNTX+TNTTUB MOVE TUB @ TO PLIST.       @11 04104000                
       AGO   .ATN4D                                                 @11 04106000                
.NTN4D ANOP                                                         @11 04108000                
       MVC   PLTUBA(2,XR2),TNTTUB(,XR1) .MOVE TUB @ TO PARM LIST    @11 04110000                
.ATN4D ANOP                                                         @11 04111000                
       SPACE 3                                                          04113000                
*********************************************************************** 04113400                
* CHECK REQUEST TYPE - DETERMINE IF IT IS STATUS REQUEST.             * 04113800                
* STATUS OPERATION.... RELEASE, ACQUIRE, GET TERMINAL                 * 04114200                
*                      ATTRIBUTES OR TASK CHAINING.                   * 04114600                
*********************************************************************** 04115000                
       SPACE 1                                                          04115400                
IIGTA  EQU   *                         ADD STN LENGTH TO BUMP RECORD    04116000                
       ALC   PLRECA(2,XR2),CC0006      ADDRESS TO DATA ADDRESS.         04120000                
       TBN   PLOPC(,XR2),OPSTAT        IS IT STATUS OPERATION           04180000                
       JF    IITKNS                    JUMP IF NOT NOT STATUS OPERATION 04190000                
       SPACE 1                                                          04210000                
       ST    PL$TNT(,XR2),XR1          PLUG TNT ADDR INTO PARM LIST     04230000                
       AIF   (&PORT).NSIO4             SKIP IF PORTS NOT SUPPORTED  @21 04230600                
       CLI   PLOPC(,XR2),OPPCR         TEST IF PORT COMMAND REQUEST.@08 04231200                
       JNE   IICTSK                    SKIP IF NOT COMMAND REQUEST. @08 04231800                
       L     PLTUBA(,XR2),XR1          POINT TO PORT TUB.           @11 04232400                
       CLI   TUBPHY(,XR1),TUBAPT       TEST IF COMMAND REQUEST PORT.@08 04233000                
       L     PL$TNT(,XR2),XR1          RESTORE XR1 TO TNT ENTRY.    @08 04233600                
       SLC   PL$TNT(2,XR2),PL$TNT(,XR2) ZERO THE TNT FIELD IN PL    @08 04233900                
       JE    IITKNS                    SKIP TRANSIENT CALL IF TRUE. @08 04234200                
       SPACE 1                                                      @08 04234800                
*      ERROR - PORT COMMAND REQUEST ISSUED TO NON-COMMAND PORT.     @21 04235400                
       B     C4TI2                     CALL ERROR ROUTINE WITH      @08 04236000                
       DC    AL1(TCCPNC)               PCR ISSUED TO NON-CMD PORT.  @08 04236600                
.NSIO4 ANOP                                                             04237200                
       SPACE 1                                                          04237800                
IICTSK EQU   *                         .                            @11 04238400                
       B     CC4PI                     BRANCH TO BRING IN TRANSIENT @11 04240000                
       DC    AL1(CC4GA)                GET ATTRIBUTES TRANSIENT ID      04250000                
       SPACE 1                                                          04260000                
       CCP   DISABL,PMRQ               STOP INTERRUPTS                  04310000                
       SPACE 3                                                          04316100                
*********************************************************************** 04316200                
* BAD TCB COMPLETION CODE                                             * 04316300                
*********************************************************************** 04316400                
       SPACE 1                                                          04316500                
       L     NCTCB@,XR1                POINT XR1 AT CURRENT TCB         04316600                
       CLI   TCBCMP(,XR1),NOBIT        IS TCB COMPLETION CODE ZERO      04316700                
       JZ    IINCMP                    JUMP IF ZERO (OKAY)          @08 04316800                
       SPACE 1                                                      @08 04316900                
       ENTRY IIBTCB                    *                            @08 04317000                
IIBTCB EQU   *                         MOVE TCB COMP CODE SUCH      @08 04317100                
       MVC   IITCMP(1),TCBCMP(,XR1)    THAT THE ARR POINTS TO IT.   @08 04317200                
       B     C4TI2                     BRANCH TO TERMINATE THIS TASK@08 04317300                
IITCMP DS    CL1                       TCB COMPLETION CODE          @08 04317400                
IINCMP EQU   *                         *                            @08 04317500                
       SPACE 3                                                      @08 04318000                
*********************************************************************** 04318200                
*  IF CHAIN TASK REQUEST GO STRAIGHT TO EXIT                          * 04318400                
*********************************************************************** 04318600                
       SPACE 1                                                          04318800                
       L     PLTUBA(,XR2),XR1          POINT TO POSSIBLE DUMMY TUB. @08 04319000                
       CLI   PLOPC(,XR2),OPTCHN        THIS A CHAIN TASK REQUEST?   @08 04319200                
       BE    IITEND                    YES SKIP SET-UP AND EXIT.    @08 04319400                
.*                                                                      04380000                
       AIF   (&NDF).NMAP1              . SKIP IF *NO* DFF SUPPORT   @08 04390000                
.*                                                                      04400000                
       SPACE 3                                                          04410000                
*********************************************************************** 04430000                
*  CHECK FOR MAPPING IF GOOD COMPLETION CODE                          * 04440000                
*********************************************************************** 04450000                
       SPACE 1                                                          04460000                
       TBF   PLRTC(,XR2),ALLBIT        WAS RETURN CODE GOOD AND     @13 04465000                
       TBN   PLOPC(,XR2),OPREL         IS THIS A RELEASE REQUEST?   @13 04470000                
       BT    IIMAPP                    BRANCH TO MAPPING IF TRUE    @13 04480000                
.NMAP1 ANOP                                                         @08 04485000                
       B     IISEND                                                     04490000                
       EJECT                                                            04493000                
       SPACE 1                                                          04496000                
*********************************************************************** 04640000                
* DETERMINE IF THIS TUB IS THE CONSOLE                                * 04650000                
*********************************************************************** 04660000                
       SPACE                                                            04670000                
IITKNS EQU   *                         TEST FOR CONSOLE TUB             04680000                
       AIF   (&MTNT NE '1').NTNT5      .SKIP IF TNT REMAP NOT SUPP  @11 04681000                
       TBN   IITNTX+TNTFLG,TNTKNS      TEST IS THIS THE CONSOLE?    @11 04682000                
       L     IITNTX+TNTTUB,XR1         .ADDRESS THE TEMINALS TUB.   @11 04683000                
       AGO   .ATNT5                                                 @11 04684000                
.NTNT5 ANOP                                                         @11 04685000                
       TBN   TNTFLG(,XR1),TNTKNS       TEST IS THIS THE CONSOLE TNT?@11 04690000                
       L     TNTTUB(,XR1),XR1          ADDRESS THE TEMINALS TUB.    @11 04700000                
.ATNT5 ANOP                                                         @11 04705000                
       JT    IIKNSL                    JUMP IF CONSOLE.                 04710000                
       SPACE                                                            04720000                
*********************************************************************** 04750000                
* HAVE REQUEST TO TERMINAL - VALIDATE IT                              * 04755000                
* PREPARE FOR PHYSICAL TP IO - MUST VALIDATE REQUEST FIRST            * 04760000                
* VALIDATE THAT THIS TUB BEONGS TO TCB REQUESTING IT                  * 04765000                
*********************************************************************** 04770000                
       SPACE                                                            04780000                
       CLC   TUBTCB(2,XR1),NCTCB@      DOES CURRENT TCB = TUBTCB?       04810000                
       TBF   TUBAT3(,XR1),TUBALC       IS TUB PHYSICALLY ALLOCATED ?    04820000                
       JC    IIPHYS,NONE+FALSE+HI+LO   JUMP IF OKAY                     04830000                
       SPACE                                                            04840000                
* CURRRENT TCB DOES NOT MATCH TUB TCB SO PROGRAM ERROR                  04850000                
* TERMINAL NOT ALLOCATED TO THIS PROGRAM                                04860000                
       B     C4TI2                     BRANCH TO TERMINATION            04880000                
       DC    AL1(TCCNAP)               TERMINAL NOT ALLOCATED TO PROG   04890000                
       SPACE                                                            04895000                
IIPHYS EQU   *                                                          04900000                
       TBN   TUBAT1(,XR1),TUBONL       IS TUB ONLINE?                   04910000                
       JT    IITCBK                    BRANCH IF YES                    04920000                
       MVI   PLRTC(,XR2),RCXOFF        SET COMPLETION CODE TO OFFLINE   04930000                
       B     IIREND                    BRANCH TO RETURN                 04940000                
       SPACE                                                            04950000                
IITCBK EQU   *                         CHECK THAT TUB POINTS TO         04960000                
       CLC   TUBTNT(2,XR1),IIVTNT      CORRECT TNT ENTRY?               04980000                
       JE    IITNTK                    JUMP IF YES                      04990000                
       SPACE                                                            05000000                
* ERROR TNT POINTS TO TUB BUT TUB DOES NOT POINT TO TNT                 05010000                
* TERMIANL NOT REFERECNED BY NAME BY WHICH IT WAS ALLOCATED             05020000                
       B     C4TI2                     BRANCH TO TERMINATION            05040000                
       DC    AL1(TCCNAN)               NOT ALLOCATED BY THIS NAME       05050000                
       EJECT                                                            05060000                
       SPACE                                                            05063000                
*********************************************************************** 05066000                
* ASSURE TERMINAL DOES NOT HAVE OUTSTANDING IMPLICIT INVITE INPUT     * 05070000                
* ONLY ACCEPT INPUT CAN BE ISSUED TO TERMINAL WITH IMPLICIT INVITE    * 05080000                
* INPUT WHICH HAS NOT BEEN SATISFIED.                                 * 05090000                
*********************************************************************** 05095000                
       SPACE                                                            05100000                
IITNTK EQU   *                                                          05110000                
       TBN   TUBAT2(,XR1),TUBIMI       IS IMPLICIT INVITE UNSATISFIED   05120000                
       JF    IICKIS                    JUMP IF NO IMPLICIT INVITE INPUT 05130000                
       SPACE                                                            05140000                
* ERROR - HAVE NON ACCEPT INPUT REQUEST TO TUB WITH IMPLICIT INVITE     05150000                
* INPUT UNSATISFIED.  DATA FROM PROGRAM REQUEST OUTSTANDING.            05160000                
       B     C4TI2                     BRANCH TO TERMINATION            05190000                
       DC    AL1(TCCIMO)               IMPLICIT INVITE OUTSTANDING      05200000                
       SPACE                                                            05210000                
* DETERMINE IF INVITE INPUT IS OUTSTANIDNG TO THIS TERMINAL             05220000                
* ERROR IF SO UNLESS THIS IS STOP INVITE INPUT                          05230000                
       SPACE                                                            05240000                
IICKIS EQU   *                         CHECK FOR OUTSTANDING INVITES.   05250000                
       TBN   TUBAT2(,XR1),TUBDTA+TUBCMD IS TUB IN COMMAND INTERRUPT     05300000                
       JT    IIVSCH                     MODE? JUMP INVITE SCHEDULED.    05310000                
       TBN   TUBAT2(,XR1),TUBIIS        IS INVITE INPUT SCHEDULED ON    05320000                
       JF    IINIIS                     TUB? NO THEN SKIP BELOW.        05330000                
       SPACE                                                            05340000                
*      HAVE INVITE INPUT SCHEDULED - THIS OP IS VALID                   05360000                
*      ONLY IF IT IS A STOP INVITE INPUT.                               05370000                
IIVSCH EQU   *                         INVITE INPUT SCHEDULED           05390000                
       TBN   PLOPM(,XR2),OPSTOP        IS THIS STOP INVITE INPUT        05400000                
       JT    IIIOCP                    JUMP IF STOP SINCE OPERATION OK  05410000                
       SPACE                                                            05420000                
* ERROR - INVALID OPERATION WITH INVITE INPUT OUTSTANDING.              05430000                
       B     C4TI2                     BRANCH TO TERMINATION            05450000                
       DC    AL1(TCCIIO)               INVITE INPUT OUTSTANDING         05460000                
       SPACE                                                            05470000                
*      NO INVITE SCHEDULED SO THIS MUST NOT BE A STOP INVITE INPUT      05480000                
IINIIS EQU   *                         NO INVITE SCHEDULED              05500000                
       TBN   PLOPM(,XR2),OPSTOP        IS THIS STOP INVITE INPUT        05510000                
       JF    IIIOCP                    JUMP IF NOT STOP INVITE          05520000                
       SPACE                                                            05530000                
* ERROR  - HAVE STOP INVITE WITH NO INVITE OUTSTANDING.                 05540000                
       B     C4TI2                     BRANCH TO TERMINATION            05560000                
       DC    AL1(TCCNIO)               NO INVITES OUTSTANDING           05570000                
       EJECT                                                            05580000                
       SPACE                                                            05581000                
*********************************************************************** 05582000                
*      TEST TERMINAL CHARACTERISTICS VS REQUESTED IO.                 * 05583000                
*********************************************************************** 05584000                
       SPACE                                                            05585000                
IIIOCP EQU   *                         CHECK FOR PROPER IO CAPABILITY   05590000                
       MNN   IIIOTS+1,PLOPC(,XR2)      MOVE RIGHTMOST 4 BITS OF OP CODE 05610000                
       SBF   IIIOTS+1,X'FC'            SET OFF ALL BUT RIGHTMOST 2 BITS 05630000                
       SPACE                                                            05640000                
IIIOTS TBN   TUBCHR(,XR1),*-*          TEST TUB FOR PROPER I/O.         05670000                
       JT    IIRQTY                    JUMP IF I/O OKAY                 05680000                
       SPACE                                                            05690000                
*I/O CAPABILTY DOES NOT MATCH REQUEST                                   05700000                
       B     C4TI2                     BRANCH TO TERMINATION            05720000                
       DC    AL1(TCCIOC)               I/O CAPABILITY DOES NOT MATCH    05730000                
       SPACE 3                                                          05742000                
*********************************************************************** 05744000                
* CONSOLE IS USED AS THE TERMINAL.                                    * 05746000                
* CHECK THAT OP CODE IS VALID FOR CONSOLE AS TERMINAL NAME            * 05748000                
* DETERMINE REQUEST TYPE.  VALIDATE OP CODE AND MODIFIER TO EXTENT    * 05750000                
* THAT THOSE BITS MUST BE OFF FOR A USER REQUEST ARE OFF.             * 05760000                
*********************************************************************** 05765000                
       SPACE                                                            05800000                
IIKNSL EQU   *                         CONSOLE REQUEST HANDLER          05810000                
       TBN   IIVBYT,IIVKNS             IS OP VALID FOR CONSOLE          05820000                
       CLI   PLOPC(,XR2),OPPUT+OPRUF   AND NOT A RUF PUT MESSAGE ?      05840000                
       JC    IIKLEN,TANDNE             JUMP IF VALID                    05850000                
       SPACE                                                            05870000                
* ERROR - HAVE OP CODE WHICH IS VALID OP BUT NOT FOR CONSOLE            05880000                
       B     C4TI2                     BRANCH TO TERMINATION            05900000                
       DC    AL1(TCCIOK)               INVALID OP FOR CONSOLE           05910000                
       SPACE                                                            05930000                
*    CHECK FOR OUTPUT LENGTH TO CONSOLE TOO LARGE                       05940000                
IIKLEN EQU   *                         TEST CONSOLE LENGTH FOR > 71/107 05960000                
       TBN   PLOPC(,XR2),OPPUT         IS THIS AN OUTPUT OPERATION?     05970000                
       CLC   PLOUTL(2,XR2),IIMAXK      LENGTH GREATER THAN 71?          05990000                
       JC    IIRQTY,ANY+FALSE+NHIGH    BRANCH IF NOT                    06000000                
       TBN   PLOPC(,XR2),OPGET         IS THIS A WTOR?                  06010000                
       JT    IITOLG                    BRANCH TO ERROR IF YES           06020000                
       CLC   PLOUTL(2,XR2),IIMAXC      IS LENGTH GREATER THAN 107?      06030000                
       JNH   IIRQTY                    BRANCH OUT IF NOT                06040000                
       SPACE                                                            06045000                
IITOLG EQU   *                                                          06050000                
*  ERROR - OUTPUT LENGTH TO CONSOLE GREATER THAN 71 FOR                 06070000                
*  WTOR OR IS GREATER THAN 117 FOR WTO.                                 06080000                
       B     C4TI2                     BRANCH TO TERMINATION            06100000                
       DC    AL1(TCCIKL)               INVALID CONSOLE LENGTH           06110000                
       EJECT                                                            06120000                
**********************************************************************  06122000                
*      CONTINUE TO VALIDATE PARM LIST.                               *  06124000                
**********************************************************************  06126000                
       SPACE 1                                                          06128000                
IIRQTY EQU   *                         CHECK OP MOD BITS TO ASSURE      06130000                
       TBF   PLOPM(,XR2),OP$SYS+OPOLT+OPDISC        VALIDITY SET.   @21 06140000                
       JT    IIVLNO                    JUMP IF OKAY                     06160000                
       SPACE                                                            06170000                
* ERROR - OP MODIFER HAS INVALID BITS FOR USER REQUEST                  06180000                
       B     C4TI2                     BRANCH TO TERMINATION            06200000                
       DC    AL1(TCCIOP)               INVALID OP OR MODIFIER           06210000                
       SPACE                                                            06220000                
*      VALIDATE RECORD LENGTHS PASSED IN THE PARM LIST FROM THE USER    06230000                
IIVLNO EQU   *                         VALIDATE OUTPUT LENGTH           06250000                
.*                                                                      06270000                
       AIF   (&N1050).NML2             . SKIP IF *NO* 1050 SUPPORT      06280000                
.*                                                                      06290000                
       B     IIMCT                     BRN TO SEE IF MCT AND VALID      06300000                
       SPACE 1                                                          06320000                
.NML2  ANOP                                                             06325000                
IIVLNN EQU   *                                                          06330000                
       ENTRY IIVLNN                                                     06340000                
       TBN   PLOPC(,XR2),OPPUT         DOES OP INVOLVE OUTPUT           06350000                
       JF    IIVLNI                    JUMP IF NO OUTPUT                06360000                
       SPACE                                                            06370000                
* CHECK OUTPUT LENGTH FOR GREATER THAN ZERO                             06380000                
       CLC   PLOUTL(2,XR2),X$0000      COMPARE LENGTH VS ZERO           06400000                
       JH    IIFUTH                    JUMP IF GREATER THAN ZERO        06410000                
       TBN   TUBAT1(,XR1),TUBKNM       IS THIS THE CONSOLE?             06420000                
       JT    IIIOL                     YES. THEN ERROR.                 06430000                
       SPACE                                                            06440000                
.*                                                                      06450000                
       AIF   (&NOM).NYET               . SKIP IF *NO* MLTA SUPPORT      06460000                
.*                                                                      06470000                
*   ZERO LENGTH IS OK IF THIS IS MLTA PUT EOT/EOB                       06480000                
       TBF   TUBCHR(,XR1),TUBLNE       IS THIS AN MLTA REEQUEST?        06500000                
       TBN   PLOPC(,XR2),OPBLK         IS IT PUT EOT/EOB?               06510000                
       BT    IIREND                    BRNACH IF YES TO RETURN          06520000                
       SPACE                                                            06530000                
.NYET  ANOP                                                             06540000                
.*                                                                      06550000                
       AIF   (&NBS).NBSC1              . SKIP IF NO BSC OR TASK-TASK@21 06560000                
.*                                                                      06570000                
*   ZERO LENGTH IS OK IF THIS IS PUT-EOT/EOB AND HE OWNS THE BSCA LINE  06580000                
IIVLNP EQU   *                                                          06600000                
       ENTRY IIVLNP                                                     06610000                
       TBN   PLOPC(,XR2),OPBLK         IS THIS PUT EOT/EOB?             06620000                
       TBN   TUBAT2(,XR1),TUBOWN       DOES HE OWN THE BSCA LINE?       06630000                
       JT    IIVLNI                    BRANCH PAST ERROR IF YES         06640000                
       SPACE                                                            06650000                
.*                                                                      06660000                
       AIF   (&NDF).BEEP               . SKIP IF *NO* DFF SUPPORT       06670000                
.*                                                                      06680000                
       TBN   PLOPC(,XR2),OPEAU         IS THIS AN ERASE OPERATION?      06690000                
       TBF   PLOPC(,XR2),OPRUF-OPEAU   AND NOT A RUF PUT ?              06710000                
       JT    IIVLNI                    BRANCH IF YES - LENGTH OK        06720000                
       SPACE                                                            06730000                
.BEEP  ANOP                                                             06740000                
.NBSC1 ANOP                                                             06750000                
* ERROR HAVE OUTPUT LENGTH NOT GREATER THAN ZERO                        06760000                
IIIOL  EQU   *                                                          06780000                
       ENTRY IIIOL                                                      06790000                
       B     C4TI2                     BRANCH TO TERMINATION            06800000                
       DC    AL1(TCCIOL)               INVALID OUTPUT LENGTH            06810000                
       EJECT                                                            06820000                
       SPACE 1                                                          06830000                
**********************************************************************  06835000                
*   CHECK FOR OUTPUT LENGTH GREATER THAN TP BUFFER LENGTH            *  06840000                
**********************************************************************  06845000                
       SPACE                                                            06850000                
IIFUTH EQU   *                                                          06860000                
       AIF   (&NBS).NBTH               . SKIP IF NO BSC OR TASK-TASK@21 06870000                
       TBN   TUBTA2(,XR1),TASITB       IS THIS PUT WITH ITB?            06880000                
       CLC   PLOUTL(2,XR2),TUBRCL(,XR1) OUTPUT LENGTH < RECORD LENGTH?  06900000                
       JC    IINITB,ANY+FALSE+NLOW     BRANCH PAST TERMINATION IF NOT   06910000                
       SPACE                                                            06920000                
* ERROR - OUTPUT LENGTH LESS THAT RECORD LENGTH FOR PUT ITB             06930000                
       B     C4TI2                     BRANCH TO TERMINATION            06950000                
       DC    AL1(TCCITB)                                                06960000                
       SPACE                                                            06965000                
IINITB EQU   *                                                          06970000                
       AIF   (&PORT).NSIO5             . SKIP IF NO PORTS SUPPORTED @21 06982000                
       TBN   TUBPHY(,XR1),TUBAPT       PORT TUB?                    @21 06984000                
       JT    IIVLNI                    YES-BRANCH OUT               @21 06985000                
.NSIO5 ANOP                                                         @08 06986000                
       TBF   TUBTA1(,XR1),TASDFF       AND NOT MAPPING?                 06990000                
       TBN   TUBCHR(,XR1),TUBLNE       BSCA?                            07000000                
       JF    IIVLNI                    BRANCH OUT IF NOT ALL            07010000                
* BSC, NON DFF, AND NOT A PORT                                      @21 07012000                
       MVC   TUBPIL(2,XR1),#RUFCL      MOVE NON-DFF PRUF INPUT LNG. @09 07015000                
       MVC   IIWORK,PLOUTL(2,XR2)      MOVE LENGTH TO WORK AREA         07020000                
       TBN   PLOPC(,XR2),OPNOW         IS THIS A PUT-NO-WAIT?           07030000                
       JF    IILTER                    BRANCH OUT IF NOT                07040000                
       ALC   IIWORK(2),II19            ADD LENGTH OF PARAMETER LIST     07050000                
IILTER EQU   *                                                          07060000                
       CLC   IIWORK(2),#TPPUT          IS OUTPUT LENGTH GREATER?        07080000                
       JNH   IIVLNI                    BRANCH PAST TERMINATION IF NOT   07100000                
       SPACE                                                            07110000                
* ERROR - OUTPUT LENGTH IS GREATER THAN TP BUFFER LENGTH                07120000                
       B     C4TI2                     BRNACH TO TERMINATION            07140000                
       DC    AL1(TCCLRG)                                                07150000                
       EJECT                                                            07160000                
.NBTH  ANOP                                                             07200000                
       SPACE                                                            07201000                
**********************************************************************  07202000                
* CHECK INPUT LENGTH FOR GREATER THAN ZERO IF APPROPRIATE            *  07203000                
**********************************************************************  07204000                
       SPACE                                                            07205000                
IIVLNI EQU   *                                                          07210000                
       ENTRY IIVLNI                    CHECK INPUT LENGTH IF NECESSARY  07220000                
       TBN   PLOPC(,XR2),OPGET         DOES OP INVOLVE GET              07230000                
       JF    IIIREQ                    JUMP IF NOT                      07240000                
       SPACE                                                            07250000                
IISETS EQU   *                         CHECK INPUT LENGTH               07260000                
       CLC   PLINL(2,XR2),X$0000       COMPARE INPUT LENGTH VS ZERO     07280000                
       JH    II#TPB                    JUMP IF GREATER THAN ZERO        07290000                
       SPACE                                                            07300000                
*ERROR  - INPUT LENGTH NOT GREATER THAN ZERO                            07310000                
       B     C4TI2                     BRANCH TO TERMINATION            07330000                
       DC    AL1(TCCIIL)               INVALID INPUT LENGTH             07340000                
       EJECT                                                            07350000                
II#TPB EQU   *                         IF INVITE-CHECK INPUT LENGTH VS  07360000                
.*                                                                      07370000                
       AIF   (&NBS).NBS3               . SKIP IF NO BSC OR TASK-TASK@21 07380000                
.*                                                                      07390000                
*********************************************************************** 07400000                
*   IF BSCA TERMINAL - CHECK IF RECORD AREA LARGE ENOUGN IF ITB       * 07410000                
*********************************************************************** 07420000                
       SPACE                                                            07430000                
       TBN   TUBCHR(,XR1),TUBLNE       IS THIS A BSCA LINE?             07440000                
       TBN   TUBTA2(,XR1),TASITB       IS ITB SPECIFIED?                07450000                
       CLC   PLINL(2,XR2),TUBRCL(,XR1) IS RECORD AREA LARGE ENOUGH?     07470000                
       JC    IIINRT,ANY+FALSE+NLOW     BRANCH OUT IF YES                07480000                
       SPACE                                                            07490000                
* ERROR - RECORD AREA NOT LARGE ENOUGH FOR BSCA ITB                     07500000                
       B     C4TI2                     BRANCH TO TERMINATION            07520000                
       DC    AL1(TCCITB)               RECORD AREA TOO SMALL FOR ITB    07530000                
       SPACE                                                            07540000                
*   CHECK FOR DATA PENDING ON A BSCA LINE                               07550000                
       SPACE                                                            07560000                
.NBS3  ANOP                                                             07570000                
       ENTRY IIINRT                                                     07580000                
IIINRT EQU   *                                                          07590000                
       TBN   PLOPC(,XR2),OPINV         DOES OP INVOLVE INVITE INPUT     07600000                
       JF    IIOUTR                    JUMP IF NOT INVITE INPUT         07610000                
.*                                                                      07620000                
       AIF   (&NBS).NBS31              . SKIP IF NO BSC OR TASK-TASK@21 07630000                
.*                                                                      07640000                
       SPACE                                                            07650000                
*    CHECK FOR DATA PENDING ON THE BSCA LINE                            07660000                
       SPACE                                                            07670000                
       TBN   TUBAT2(,XR1),TUBOWN       DOES HE OWN A BSCA LINE?         07680000                
       L     TUBLCB(,XR1),XR1          POINT TO HIS DTF                 07690000                
       TBN   IIBOPC(,XR1),IIBPUT       WAS LAST OPERATION A PUT?    @14 07700000                
       TBN   LCBAT1(,XR1),LCBNTQ       WAS LAST OPERATION PUT-MESSAGE?  07710000                
       JF    IINDPD                    BRANCH IF NEITHER - INVITE OK    07720000                
       MVI   PLRTC(,XR2),RCXDPD        SET DATA PENDING RETURN CODE     07730000                
       B     IIREND                    GO RETURN TO USER                07740000                
.*                                                                      07750000                
.NBS31 ANOP                                                             07760000                
.*                                                                      07770000                
       ENTRY IINDPD                                                     07780000                
IINDPD EQU   *                                                          07790000                
       SPACE                                                            07800000                
*      HAVE INVITE INPUT SO INPUT LENGTH MUST NOT BE LARGER THAN THE    07810000                
*      SIZE FOR THE ENTIRE TP BUFFER                                    07820000                
       SPACE                                                            07830000                
       L     NCTCB@,XR1                POINT XR1 AT CURRENT TCB         07840000                
       ALC   TCBIIC(1,XR1),X$0001      ADD 1 TO TCB INVITE INPUT COUNT  07850000                
       L     PLTUBA(,XR2),XR1          --> TUB                      @19 07857000                
       TBN   TUBTA1(,XR1),TASDFF       TUB SUPPORT DFF?             @19 07864000                
       JT    IIIREQ                    YES-SKIP LENGTH CHECK        @19 07871000                
       CLC   PLINL(2,XR2),#TPANY       COMPARE INPUT LENGTH VS TP BUFF  07880000                
       JNH   IIIREQ                    JUMP IF INPUT LENGTH NOT HIGH    07900000                
       SPACE                                                            07910000                
*      ERROR - FOR INVITE INPUT - THE INPUT LENGTH IS GT TP BUFFER SIZE 07920000                
       B     C4TI2                     BRANCH TO TERMINATION            07940000                
       DC    AL1(TCCTPB)               TP BUFFER LENGTH PROBLEM         07950000                
       EJECT                                                            07960000                
       SPACE 5                                                          07970000                
IIOUTR EQU   *                                                          07973000                
       SPACE                                                            07976000                
*********************************************************************** 07980000                
* DETERMINE WHETHER TUB IS CONSOLE OR NOT.  IF NOT, POST CM/CS AND  @21 07990000                
* ISSUE WAIT.  FOR CONSOLE REQUEST, ISSUE WTO/WTOR.                 @21 08000000                
*********************************************************************** 08010000                
       SPACE                                                            08040000                
       ENTRY IIIREQ                                                     08050000                
IIIREQ EQU   *                         I/O INTERFACE REQUEST            08060000                
* DETERMINE IF REQUEST IS FOR CONSOLE OR $CC4CM                         08080000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 08100000                
       TBF   TUBAT1(,XR1),TUBKNM       IS THIS CONSOLE TUB?             08110000                
.*                                                                      08120000                
       AIF   (&DFF).NM2RT              SKIP IF MAPPING              @10 08130000                
       AIF   (&NPBY).NBSY1             SKIP IF NOT BUSY PRINTER     @10 08132000                
       JT    IIBUSY                    NOT CONSOLE, TEST BUSY PRNT. @10 08134000                
       AGO   .NM2RT                                                 @1O 08136000                
.NBSY1 ANOP                                                         @10 08138000                
       JT    IIUPST                    NOT CONSOLE, GO TO POST          08140000                
.NM2RT ANOP                            .                            @1O 08153000                
       AIF   (&NDF).SK1RT              . SKIP IF NOT MAPPING        @1O 08156000                
       JT    IICKMP                    NOT CONSOLE, CHECK FOR MAPPIN    08160000                
.SK1RT ANOP                            SET UP CONSOLE STUFF             08170000                
       EJECT                                                            08180000                
       SPACE 2                                                          08190000                
*********************************************************************** 08200000                
***  HAVE A CONSOLE REQUEST - ISSUE THE WTO OR WTOR AS APPROPRIATE  *** 08210000                
*********************************************************************** 08220000                
       SPACE 3                                                          08230000                
*   FIRST MUST BUILD A CONSOLE PARAMETER LIST IN THE TCB                08240000                
       SPACE                                                            08250000                
       L     NCTCB@,XR2                POINT TO THE TCB                 08260000                
       LA    TCBPL(,XR2),XR2           POINT XR2 AT PARM LIST AREA      08270000                
       MVC   $LGO@@(15,XR2),IICNPM     MOVE PARM LIST TO THE ECB        08280000                
       L     II@PRL,XR1                POINT XR1 AT PARAMETER LIST      08290000                
       SPACE                                                            08300000                
*    NOW FILL IN THE NECESSARY LENGTHS AND ADDRESSES IN PARM LIST       08310000                
       SPACE                                                            08320000                
       TBN   PLOPC(,XR1),OPGET         IS THIS A WTOR?              @15 08320900                
       JF    IINWTR                    SKIP IF NOT.                 @15 08321800                
       MVI   $LGOTY(,XR2),IIWTOR       INDICATE WTOR MODE.          @15 08322700                
       CLI   PLOUTL(,XR1),36           IF THE PUT LENGTH IS LESS    @15 08323600                
       JL    IIMX80                    THAN 36 THEN MAX INPUT 80,   @15 08324500                
IIMX40 MVI   $LGON(,XR2),40            ELSE THE MAX INPUT IS 40.    @15 08325400                
IIMX80 CLC   $LGON(,XR2),PLINL(2,XR1)  TEST IF PLINL LESS THAN      @15 08326300                
       JNH   IINWTR                    MAX INPUT? IF IT IT THE      @15 08327200                
       MVC   $LGON(,XR2),PLINL(1,XR1)  SET INPUT ON WTOR TO PLINL.  @15 08328100                
       SPACE 1                                                      @15 08329000                
IINWTR MVC   $LGOL(1,XR2),PLOUTL(,XR1) .MOVE IN OUTPUT LENGTH       @15 08330000                
       MVC   $LGOAA(2,XR2),PLRECA(,XR1) MOVE IN RECORD AREA ADDRESS     08340000                
       MVC   $LGO@@(2,XR2),PLRECA(,XR1) MOVE IN RECORD AREA ADDRESS     08360000                
       SPACE                                                            08410000                
*   PARAMETER LIST IS NOW BUILT - ISSUE SVC TO DO WTO OR WTOR           08420000                
       SPACE                                                            08430000                
IIDOIT EQU   *                                                          08440000                
       CCP   ENABLE,PMRQ               ENABLE ALL INTERRUPTS            08450000                
       SVC   0                         ISSUE THE SVC                    08460000                
       DC    XL1'85'                   RIB FOR LOG                      08470000                
       SPACE                                                            08480000                
*   MESSAGE IS SENT OUT - RETURN TO THE USER                            08490000                
       SPACE                                                            08500000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERRUPTS           08510000                
       ST    II@PRL,XR1                RESTORE PARAMETER LIST POINTER   08520000                
       TBN   PLOPC(,XR1),OPGET         WAS THIS A PUT-THEN-GET OP   @15 08523000                
       JF    IICDNE                    NO THEN PARM-LIST IS ALL SET @15 08526000                
       SLC   PLEFFL(2,XR1),PLEFFL(,XR1) ZERO THE EFFL IN PARM-LIST  @15 08530000                
       CLI   0(,XR2),IINODA            WAS ANY DATA ENTERED? (X20)  @15 08550000                
       JE    IICDNE                    BRANCH OUT IF YES, EFFL=0    @15 08560000                
       MVC   PLEFFL(1,XR1),$LGON(,XR2) SAVE MAXIMUM INPUT LENGTH    @15 08570000                
       L     PLRECA(,XR1),XR2          POINT TO THE RECORD AREA     @15 08575000                
       A     PLEFFL(,XR1),XR2          POINT TO THE END-OF-DATA     @15 08580000                
IICLOP A     X$FFFF,XR2                DECREMENT DATA POINTER.      @21 08590000                
       CLI   0(,XR2),IIBLNK            IS THE CHARACTER A BLANK?        08600000                
       JNE   IICDNE                    BRANCH OUT IF NOT A BLANK    @15 08610000                
       SLC   PLEFFL(2,XR1),X$0001      DECREMENT EFFL BY ONE            08620000                
       BH    IICLOP                    LOOP TO KEEP TESTING             08630000                
IICDNE LA    0(,XR1),XR2               RESTORE PARAMETER LIST POINTER   08640000                
       B     IIFINI                    GO TO EXIT TO USER               08650000                
       EJECT                                                            08660000                
       AIF   (&NDF).NMAP2              SKIP IF *NO* DFF                 08670000                
       SPACE 2                                                          08680000                
*********************************************************************** 08690000                
* CHECK VALIDITY OF MAPPING REQUESTS                                  * 08700000                
*********************************************************************** 08710000                
       SPACE                                                            08720000                
       ENTRY IICKMP                                                     08730000                
IICKMP EQU   *                                                          08740000                
       TBN   PLOPC(,XR2),OPCOPY        IS THIS A COPY COMMAND?          08750000                
       TBF   PLOPC(,XR2),OPKPL         AND NOT AN ERASE OR RUF PUT ?    08760000                
       JF    IINCPY                    BRANCH IF NOT                    08770000                
       TBN   TUBTA1(,XR1),TASDFF       IS MAPPING SPECIFIED FOR TERM?   08780000                
       JT    IICKTN                    BRANCH IF YES                    08790000                
       SPACE                                                            08800000                
*   ERROR - COPY TO 3270 REQUESTED BUT NO MAPPING FOR THIS TERMINAL   * 08810000                
       B     C4TI2                     BRANCH TO TERMINATION            08830000                
       DC    AL1(TCCICA)               INVALID COPY - ATTRIBUTES        08840000                
       SPACE                                                            08850000                
IICKTN EQU   *                                                          08860000                
       L     @TNT,XR1                  POINT TO FIRST TNT               08870000                
       L     PLRECA(,XR2),XR2          POINT TO RECORD AREA             08880000                
.*                                                                  @11 08881000                
       AIF   (&MTNT NE '1').NTNT6      .SKIP IF TNT REMAP NOT SUPP  @11 08882000                
       MVC   IITNAM(IISTNL),IISTNL-1(,XR2) MOVE STN TO HOLD AREA.   @11 08883000                
       B     IIMTNT                    GO MAP IN TNT MOVEOUT AREA   @11 08884000                
       SPACE 1                                                      @11 08885000                
.NTNT6 ANOP                                                         @11 08886000                
.*                                                                  @11 08887000                
IIAGIN CLI   0(,XR1),TNTSTP            IS THIS END OF TNT'S?            08890000                
       JNE   IINSTP                    BRANCH IF NOT                    08900000                
       SPACE                                                            08910000                
*   ERROR - SYMBOLIC TERMINAL NAME FOR COPY NOT FOUND IN TNT'S        * 08920000                
       B     C4TI2                     BRANCH TO TERMINATION            08940000                
       DC    AL1(TCCICN)               INVALID COPY DUE TO NAME NF      08950000                
       SPACE                                                            08960000                
.*                                                                  @11 08963000                
       AIF   (&MTNT EQ '1').ATNT7      .SKIP IF TNT REMAP IS SUPP.  @11 08966000                
IINSTP CLC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) IS THIS TNT FOR COPY?@11 08970000                
       AGO   .NTNT7                                                 @11 08971000                
.ATNT7 ANOP                            .TNT REMAP IS SUPPORTED HERE @11 08972000                
IINSTP CLC   IITNAM(IISTNL),TNTNAM(,XR1) IS THIS TNT FOR COPY?      @11 08973000                
.NTNT7 ANOP                                                         @11 08974000                
.*                                                                  @11 08975000                
       JE    IITNT                     BRANCH IF YES                    08980000                
       LA    TNTLN(,XR1),XR1           POINT TO NEXT TNT                08990000                
       B     IIAGIN                    GO CHECK THIS ONE                09000000                
       SPACE 1                                                          09010000                
IITNT  CLI   TNTTUB-1(,XR1),NOBIT      DOES TERMINAL HAVE A TUB?    @20 09013000                
       L     TNTTUB(,XR1),XR1          POINT TO COPY TUB.               09016000                
       JE    IIINCP                    ERROR NO TUB.                    09020000                
.*                                                                  @11 09021000                
       AIF   (&MTNT NE '1').NTNT8      .SKIP IF TNT REMAP NOT SUPP  @11 09022000                
       B     IIUTNT                    UNMAP TNT MOVEOUT AREA.      @11 09023000                
.NTNT8 ANOP                                                         @11 09024000                
.*                                                                  @11 09025000                
       L     II@PRL,XR2                POINT TO PARAMETER LIST          09030000                
       ST    PL$RTC(,XR2),XR1          PUT SECOND TUB @ IN PARM LIST    09040000                
       CLI   TUBPHY(,XR1),TUB5M1       IS THIE A 3275 MODEL 1?          09050000                
       JE    IIINCP                    BRANCH IF YES                    09060000                
       CLI   TUBPHY(,XR1),TUB5M2       IS THIS A 3275 MODEL 2?          09070000                
       JE    IIINCP                    BRANCH TO HALT IF YES            09080000                
       L     PLTUBA(,XR2),XR1          POINT TO OTHER TUB               09090000                
       CLI   TUBPHY(,XR1),TUB5M1       IS THIE A 3275 MODEL 1?          09100000                
       JE    IIINCP                    BRANCH IF YES                    09110000                
       CLI   TUBPHY(,XR1),TUB5M2       IS THIS A 3275 MODEL 2?          09120000                
       JNE   IICMAP                    BRANCH IF YES                    09130000                
       SPACE                                                            09135000                
IIINCP EQU   *                         INVALID DEVICE FOR COPY          09140000                
*   ERROR - COPY REQUEST INVALID WITH 3275                            * 09160000                
       B     C4TI2                     BRANCH TO TERMINALTION           09180000                
       DC    AL1(TCCICT)               COPY INVALID TO TERMINAL TYPE    09190000                
       SPACE                                                            09200000                
IINCPY EQU   *                                                          09210000                
       TBN   TUBTA1(,XR1),TASDFF       IS MAPPING SPECIFIED?            09220000                
       JT    IICMAP                    BRANCH IF YES                    09230000                
       CLI   PLOPC(,XR2),OPPUT+OPEAU   IS THIS AN ERASE                 09240000                
       JNE   IINEAU                    BRANCH IF NOT                    09250000                
       SPACE                                                            09260000                
*   ERROR - EAU REQUESTED BUT NO MAPPING SPECIFIED FOR THIS TERMINAL    09270000                
       B     C4TI2                     BRANCH TO TERMINATION            09290000                
       DC    AL1(TCCIEA)               INVALID ERASE REQUEST            09300000                
       SPACE                                                            09310000                
IINEAU TBN   PLOPC(,XR2),OPPUT+OPMSG   IS THIS A PUT EOT?               09320000                
       TBN   PLOPM(,XR2),OPLIST        IS THIS PUT OVERRIDES?           09330000                
       AIF   (&NNONS).NPOR1            SKIP IF NO NON-SIOC PORTS    @21 09330400                
       JF    IINPOV                    BRANCH IF NOT                @21 09330800                
       AGO   .BSY1                                                  @21 09331200                
.NPOR1 ANOP                                                         @21 09331600                
       AIF   (&NPBY).NBSY2             SKIP IF NO BUSY PRINTER      @10 09332000                
       JF    IIBUSY                    BRANCH IF NOT.               @10 09334000                
       AGO   .BSY1                                                  @10 09336000                
.NBSY2 ANOP                                                         @10 09338000                
       JF    IIUPST                    BRANCH IF NOT                    09340000                
.BSY1  ANOP                                                         @10 09345000                
       SPACE                                                            09350000                
*   ERROR - PUT OVERRIDES REQUESTED BUT NO MAPPING ON TERMINAL        * 09360000                
       B     C4TI2                     BRANCH TO TERMINATION            09380000                
       DC    AL1(TCCIPA)               INVALID PUT OVERRIDES            09390000                
       SPACE 2                                                          09400000                
       AIF   (&NNONS).NPOR2            SKIP IF NO NON-SIOC PORTS    @21 09400400                
IINPOV TBN   PLOPC(,XR2),OPPUT         IS THIS A PUT TO A           @21 09400800                
       TBN   TUBPHY(,XR1),TUBAPT       *BSCA, BSCC, OR TTASK        @21 09401200                
       TBF   TUBAT4(,XR1),TUBPCB       *PORT?                       @21 09401600                
       CLI   PLOPC(,XR2),OPPCR         IS OP A PORT COMMAND REQUEST?@21 09402000                
       AIF   (&NPBY).NBSYA             SKIP IF NO BUSY PRINTER SUPPO@21 09402400                
       JC    IIBUSY,ANY+FALSE+EQ       BRANCH-FALSE OR EQUAL        @21 09402800                
       TBN   PLOPC(,XR2),OPPUT+OPMSG   IS PUT MESSAGE MODE?         @21 09403200                
       JT    IIBUSY                    YES-BRANCH                   @21 09403600                
       AGO   .BSYA                                                  @21 09404000                
.NBSYA ANOP                                                         @21 09404400                
       JC    IIUPST,ANY+FALSE+EQ       BRANCH-FALSE OR EQUAL        @21 09404800                
       TBN   PLOPC(,XR2),OPPUT+OPMSG   IS PUT MESSAGE MODE?         @21 09405200                
       JT    IIUPST                    YES-BRANCH                   @21 09405600                
.BSYA  ANOP                                                         @21 09406000                
* ERROR - NON-MSG MODE PUT TO A BSCA, BSCC, OR TTASK PORT           @21 09406400                
       B     C4TI2                     BRANCH TO TERMINATION        @21 09406800                
       DC    AL2(TCCNMM)               NON-MESSAGE MODE PUT         @21 09407200                
       SPACE 2                                                      @21 09407600                
.NPOR2 ANOP                                                         @21 09408000                
IICMAP EQU   *                                                          09410000                
       TBN   PLOPC(,XR2),OPPUT         IS THE OP A PUT?                 09420000                
       JF    IICLMP                    BRANCH IF NOT                    09430000                
       TBN   PLOPC(,XR2),OPMSG         IS IT A PUT-EOT?                 09440000                
       JT    IICLMP                    BRANCH IF YES                    09450000                
       TBF   PLOPC(,XR2),OPCOPY        IS THIS A COPY OR ERASE?         09460000                
       JF    IICLMP                    BRANCH PAST ERROR IF YES         09470000                
       SPACE                                                            09480000                
*  ERROR - PUT REQUESTED TO MAPPING WITHOUT THE EOT MODIFIER            09490000                
       B     C4TI2                     BRANCH TO TERMINATION            09510000                
       DC    AL1(TCCIPM)               INVALID PUT TO MAPPING           09520000                
       SPACE                                                            09530000                
IICLMP EQU   *                                                          09540000                
       B     IIMAPP                    BRANCH TO MAPPING INTERFACE      09550000                
       CLI   PLRTC(,XR2),RCOK          WAS MAPPING SUCCESSFUL?          09570000                
       BNE   IISEND                    BRANCH PAST CM CALL IF NOT       09580000                
.NMAP2 ANOP                                                             09590000                
       AIF   (&NPBY).NBSY3             SKIP IF NO BUSY PRINTER.     @10 09590300                
       EJECT                                                        @10 09590600                
       SPACE 1                                                      @10 09590900                
******************************************************************* @10 09591200                
*      BUSY PRINTER SUPPORT.                                      * @10 09591500                
*      TEST IF DEVICE IS BUSY, IF IT IS THEN DO A SYSTEM INVITE   * @10 09591800                
*      TO TEST WETHER THE DEVICE IS STILL BUSY.                   * @10 09592100                
******************************************************************* @10 09592400                
       SPACE 1                                                      @10 09592700                
       ENTRY IIBUSY                                                 @10 09593000                
IIBUSY EQU   *                         BUSY PRINTER TEST.           @10 09593300                
       L     II@PRL,XR2                RELOAD USERS PARM-LIST.      @10 09593600                
       TBN   TUBAT4(,XR1),TUBBSY       IS DEVICE BUSY?              @10 09593900                
       TBN   PLOPC(,XR2),OPPUT         AND OP A PUT ?               @22 09594000                
       JF    IIUPST                    NO. GO TO POST.              @10 09594200                
       SPACE 1                                                      @10 09594500                
       L     NCTCB@,XR2                POINT TO USERS TCB           @10 09594800                
       SBN   TUBAT2(,XR1),TUBIIS       SET ON INVITE BIT IN TUB.    @10 09595100                
       SBN   TUBAT4(,XR1),TUBWAT       INDICATE WAITING FOR STATUS  @10 09595400                
       SLC   TCBPL+PLLEN-1(PLLEN,XR2),TCBPL+PLLEN-1(,XR2)  BLANK IT @10 09595700                
       MVI   TCBPL+PLOPM(,XR2),OP$SYS  INDICATE A SYSTEM OPERATION. @10 09596000                
       MVI   TCBPL+PLOPC(,XR2),OPINV   INDICATE AN INVITE OPERATION @10 09596300                
       ST    TCBPL+PLTUBA(,XR2),XR1    PUT TUB ADDRESS IN PARM-LIST @10 09596600                
       LA    TCBPL(,XR2),XR2           POINT TO PARM-LIST           @10 09596900                
       J     IIPRBQ                    GO QUEUE REQUEST.            @10 09597200                
.NBSY3 ANOP                                                         @10 09597500                
       SPACE                                                            09600000                
       ENTRY IIUPST                                                     09610000                
IIUPST EQU   *                         PERFORM POST FOR USER TCB        09620000                
       TBN   PLOPC(,XR2),OPGET         DID OP INVOLVE A GET OPERATION?  09630000                
       JF    IINOI1                    BRANCH OUT IF NOT                09640000                
       SBN   TUBAT2(,XR1),TUBIIS       SET ON READ BIT SCHEDULED        09650000                
       TBN   PLOPC(,XR2),OPPUT         DOES OPERATION INVOLVE PUT?      09660000                
       JT    IINOI1                    BRANCH IF YES                    09670000                
       SLC   PLEFFL(2,XR2),PLEFFL(,XR2)  CLEAR INPUT LENGTH FIELD       09680000                
IINOI1 EQU   *                                                          09690000                
       EJECT                                                            09700000                
       SPACE 1                                                          09710000                
*********************************************************************** 09715000                
*    NOW MOVE THE PARAMETER LIST TO THE TCB FOR CM TO REFERENCE       * 09720000                
*********************************************************************** 09725000                
       SPACE 1                                                          09730000                
       L     NCTCB@,XR1                POINT TO THE TCB                 09740000                
       MVC   TCBPL+PL$RTC(16,XR1),PL$RTC(,XR2)  MOVE THE PARM LIST IN   09750000                
       SLC   TCBPL+PLECB+2(3,XR1),TCBPL+PLECB+2(,XR1)  CLEAR THE ECB    09760000                
       MVC   TCBWK(2,XR1),PLRECA(,XR2) SAVE RECORD AREA ADDRESS IN TCB  09770000                
       SLC   TCBPL+PLRECA(2,XR1),TCBPL+PLRECA(,XR1)  CLEAR RECA POINTER 09780000                
       LA    TCBPL(,XR1),XR2           POINT XR2 AT PARAMETER LIST      09781000                
       SPACE 2                                                          09782000                
*********************************************************************** 09783000                
*  QUEUE THE REQUEST ON CM'S OR CS'S QUEUE WHICHEVER IS APPROPRIATE.@21 09784000                
*  THEN POST $CC4CM OR $CC4CS THAT HE HAS WORK TO DO.                 * 09786000                
*********************************************************************** 09787000                
       SPACE 1                                                          09788000                
IIPRBQ EQU   *                         XR2 POINTS TO PARM-LIST          09790000                
       B     IIQSUB                    GO QUEUE THE LIST.(XR1=ECB)      09800000                
       L     II@PRL,XR2                POINT TO PARM LIST TO SAVE IT    09810000                
       SBF   $FLGC,#NTRAC              ENABLE TRACE BEFORE CM POST      09820000                
       CCP   ENABLE,PMRQ               REENABLE INTERRUPTS              09840000                
       SPACE                                                            09870000                
       SVC   0                         SUPERVISOR CALL                  09890000                
       DC    XL1'05'                   POST                             09900000                
       SPACE                                                            09910000                
*    NOW ISSUE A WAIT FOR COMPLETION OF THE TP REQUEST                  09920000                
       SPACE                                                            09930000                
       L     NCTCB@,XR1                POINT TO THE TCB                 09950000                
       LA    TCBPL+PLECB(,XR1),XR1     LOAD POINTER TO THE ECB          09960000                
       SVC   0                         SUPERVISOR CALL                  09970000                
       DC    XL1'03'                   WAIT FOR CM'S POST               09980000                
       SPACE                                                            09985000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERRUPTS           09990000                
       ST    II@PRL,XR2                RESTORE PARAMETER LIST POINTER   10000000                
       L     NCTCB@,XR2                POINT TO THE TCB                 10010000                
       LA    TCBPL(,XR2),XR2           POINT TO THE PARAMETER LIST      10020000                
       AIF   (&NPBY).NBSY4             SKIP IF NO BUSY PRINTER      @10 10021000                
       SPACE 1                                                      @10 10022000                
       L     PLTUBA(,XR2),XR1          POINT TO TUB.                @10 10023000                
       CLI   PLOPM(,XR2),OP$SYS        IF SYSTEM OPERATION MUST BE  @10 10024000                
       BE    IIBUSY                    FOR BUSY PRINTER SO LOOP.    @10 10025000                
.NBSY4 ANOP                                                         @10 10026000                
       SPACE                                                            10030000                
.*                                                                      10040000                
       AIF   (&NDF).REND               . SKIP IF *NO* DFF SUPPORT       10050000                
.*                                                                      10060000                
       LA    DFQ030,XR1                POINT TO ACCEPT MAPPING ENTRY    10070000                
       ST    IIIIII+3,XR1              SET IN BRANCH ADDRESS            10080000                
       B     IIMAPP                    GO TO MAPPING INTERFACE          10090000                
       LA    DFA000,XR1                POINT TO NORMAL ENTRY POINT      10100000                
       ST    IIIIII+3,XR1              RESET MAPPING BRANCH ADDRESS     10110000                
.REND  ANOP                                                             10120000                
       EJECT                                                            10130000                
       SPACE 5                                                          10210000                
*********************************************************************** 10220000                
*       REENTER $CC4II AT THIS POINT AFTER USER REQUEST SCHEDULED     * 10225000                
*       NOW MOVE THE PARAMETER LIST BACK TO USER PROGRAM AREA         * 10230000                
*********************************************************************** 10240000                
       SPACE 2                                                          10242000                
       ENTRY IIREND                                                     10244000                
IIREND EQU   *                         RETURN TO USER PROGRAM           10246000                
       L     II@PRL,XR1                POINT TO USER'S PARAMETER LIST   10260000                
       MVC   PL$RTC(6,XR1),PL$RTC(,XR2) MOVE THE PARAMETER LIST         10270000                
       MVC   PLINL(8,XR1),PLINL(,XR2)  BACK TO THE USER PROGRAM         10280000                
       LA    0(,XR1),XR2               RESTORE PARM LIST IN XR2         10290000                
       SPACE 2                                                          10300000                
IIFINI L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 10310000                
       SBF   TUBAT3(,XR1),TUBSPF+TUBSWL ASSURE STOP FAILED AND SWALLOW  10320000                
*                                      BITS IN TUB ARE OFF              10330000                
       SPACE 5                                                          10341000                
*********************************************************************** 10342000                
*       PREPARE TO EXIT $CC4II TO USER.                               * 10343000                
*********************************************************************** 10344000                
       SPACE 2                                                          10345000                
IISEND EQU   *                         RETURN                           10350000                
       SLC   PLRECA(2,XR2),CC0006      RESTORE CORRECT PLRECA           10360000                
       SPACE 3                                                          10365000                
IIAEND EQU   *                                                          10370000                
.*                                                                      10380000                
       AIF   (&PORT).NSIO6             . SKIP IF NO PORTS SUPPORTED @21 10380700                
       SPACE 1                                                          10381400                
*********************************************************************** 10382100                
*       TERMINATE TASK IF TERMINATION WAS GIVEN IN RETURN CODE        * 10382800                
*********************************************************************** 10383500                
       SPACE 1                                                          10384200                
       CLI   PLRTC-1(,XR2),RCRTRM      DID SIOC TERMINATE TASK?     @08 10384900                
       JNE   IIANTR                    NO THEN SKIP TERMINATION     @08 10385600                
       MVC   IIATRM,PLRTC(1,XR2)       MOVE TERMINATION CODE.       @08 10386300                
       B     C4TI2                     CALL TERMINATION.            @08 10387000                
IIATRM DC    XL1'00'                   TERM CODE.                   @08 10387700                
IIANTR EQU   *                         *NEXT*                       @08 10388400                
.NSIO6 ANOP                                                         @08 10389100                
       AIF   (&NSIDM EQ '2').NDME1     . SKIP IF NO PORTS OR DME    @21 10390000                
       SPACE 1                                                          10410000                
*********************************************************************** 10420000                
*      CANCEL REQUEST ANALYSIS                                        * 10430000                
*********************************************************************** 10440000                
       SPACE 1                                                          10450000                
* XR2 WILL POINT AT THE PARM LIST (GET OR INVITE INPUT)             @21 10460000                
* IF CANCEL HAS BEEN REQUESTED BY THE TERMINAL OPERATOR - CALL IN       10470000                
* TRANSIENT TO DO HIS THING                                             10480000                
       SPACE                                                            10490000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT THE TUB             10500000                
       TBN   TUBAT3(,XR1),TUBCNC       HAS CANCEL BEEN REQUESTED        10510000                
       JF    IITEND                    JUMP IF NO CANCEL                10520000                
       SPACE                                                            10530000                
* CANCEL HAS BEEN REQUESTED - BRING IN TRANSIENT                        10540000                
       SPACE                                                            10550000                
       B     CC4PI                                                      10560000                
       DC    AL1(CC4NC)                CANCEL TRANSIENT FOR $CC4II      10570000                
.*                                                                      10580000                
.NDME1 ANOP                                                             10590000                
.*                                                                      10600000                
       SPACE 6                                                          10610000                
       ENTRY IITEND                                                     10620000                
IITEND EQU   *                         LEAVING SOON                     10630000                
       B     CC4TT                     BRANCH TO TRACE RETURN TO USER   10640000                
       DC    AL1(TTIIRT)               TRACE ID - 'EE'                  10650000                
       CCP   ENABLE,PMRQ               REENABLE ALL INTERRUPTS          10660000                
       SPACE                                                            10670000                
*   NOW RETURN TO THE USER PROGRAM VIA A SUPERVISOR EXIT                10680000                
       SPACE                                                            10690000                
       SVC   0                         SUPERVISOR CALL                  10700000                
       DC    XL1'08'                   RIB TO EXIT                      10710000                
       EJECT                                                            10720000                
       SPACE 2                                                          10725000                
*********************************************************************** 10730000                
*      HAVE ACCEPT INPUT REQUEST                                      * 10740000                
*********************************************************************** 10750000                
       SPACE                                                            10760000                
IIACI  EQU   *                         HAVE ACCEPT INPUT                10770000                
       B     CC4TT                     BRANCH TO TRACE THE ACCEPT INPUT 10780000                
       DC    AL1(TTII)                 'EC' TRACE ID                @21 10790000                
       SPACE 2                                                          10800000                
       AIF   (&NRAI).NRES                                               10800080                
*********************************************************************** 10800160                
*      RESIDENT ACCEPT INPUT IS BEING USED                            * 10800240                
*********************************************************************** 10800280                
       SPACE 1                                                          10800320                
       L     NCTCB@,XR1                CURRENT TASK                     10800400                
       CLI   PLOPM(,XR2),NOBIT          NO OP-MODIFIER BITS ALLOWED     10800480                
       TBF   PLOPC(,XR2),BIT0+BIT2+BIT3 AND ONLY ACCEPT OPCODES         10800560                
       JC    IIAC01,NONE+FALSE+HI+LO    OK CONTINUE                     10800640                
       SPACE                                                            10800720                
* ERROR - INVALID ACCEPT OP CODE.  MUST BE X'04' OR X'44'               10800800                
       B     C4TI2                     ERROR IN OP CODE                 10800960                
       DC    AL1(TCCIOP)               TERMINATE USER                   10801040                
       SPACE                                                            10801045                
*------ACCEPT-NO-WAIT OPCODE CHECK ----*                            @01 10801050                
IIAC01 CLI   PLOPC(,XR2),OPANW         TEST IF ACCEPT-NO-WAIT OPCOD @01 10801055                
       JNE   IIVINL                    NO! PREFORM ACCEPT INPUT     @01 10801060                
       CLI   TCBINQ-1(,XR1),NOBIT      ANY TUB WITH INVITE DATA     @01 10801065                
       JNE   IIVINL                    YES. GO PROSSESS DATA.       @01 10801070                
IIAC02 TBN   $FLGA,CPSHUT              HAS SHUTDOWN BEEN REQUESTED? @01 10801075                
       MVI   PLRTC(,XR2),RCXNAC        SET RETURN CODE FOR NO DATA  @01 10801080                
       JF    IIAC03                    NO THEN SET EFFL AND RETURN. @01 10801085                
       TBN   TCBDMG(,XR1),TCBSHQ       DOES USER KNOW ABOUT SHD?    @01 10801090                
       SBN   TCBDMG(,XR1),TCBSHQ       MARK THAT HE WILL KNOW.      @01 10801095                
       BF    IIPGSH                    THEN GO TELL HIM. ELSE       @01 10801100                
IIAC03 B     IINTSH                    SET EFFL AND RETURN.         @01 10801105                
       SPACE                                                            10801110                
*------ACCEPT (WAIT) LOGIC ------------*                                10801120                
IIVINL EQU   *                         TEST INPUT LENGTH                10801160                
       CLC   PLINL(2,XR2),X$0000       INPUT LENGTH > 0                 10801200                
       JH    IITSCT                    YES CONTINUE                     10801280                
       B     C4TI2                     NO                               10801360                
       DC    AL1(TCCIIL)               TERMINATION CODE                 10801440                
       SPACE                                                            10801480                
IITSCT CLI   TCBIIC(,XR1),0            ANY INVITES                      10801520                
       JH    IICTOK                    YES CONTINUE                     10801600                
       TBN   TCBDMG(,XR1),TCBNEP       ELSE MUST BE A NEP PROGRAM       10801680                
       JT    IINEP                     OK                               10801760                
       SPACE 1                                                          10801840                
*------NO INVITES TERMINATE------------*                                10801920                
       B     C4TI2                     TERMINATION                      10802000                
       DC    AL1(TCCIAN)               ERROR TYPE                       10802080                
       SPACE 1                                                          10802120                
IINEP  CLC   TCBMAX(1,XR1),TCBATR(,XR1)  MAX TERMINAL COUNT             10802160                
       JH    IIOK                      GT CURRENTLY ACTIVE COUNT        10802240                
       SPACE 1                                                          10802320                
*--ALREADY AT MAXIMUM TERMINALS -------*                                10802480                
       B     C4TI2                     TERMINATION                      10802560                
       DC    AL1(TCCIAC)               ERROR TYPE                       10802640                
       SPACE 3                                                          10802960                
*------RE-ENTRY POINT AFTER ACCEPT COMPLETE -------*                    10803040                
*------HAS BEEN POSTED CHECK FOR TUBS ON QUEUE-----*                    10803120                
       SPACE 2                                                          10803200                
IICTOK LA    TCBINQ(,XR1),XR2          START OF TERMINAL CHAIN          10803280                
       ST    IITPRV,XR2                SAVE TERMINAL ADDR FOR DEQUE     10803360                
       CLI   TCBINQ-1(,XR1),0          ANY TUBS OP-ENDED YET            10803440                
       JE    IIGGWT                    NO GO WAIT ON ACCEPT             10803520                
       L     TCBINQ(,XR1),XR2          FIRST TUB                        10803600                
IITSTG TBN   TUBAT2(,XR2),TUBIMI       IMPLICIT INVITE                  10803680                
       JF    IIHERD                    CHECK DFF ON ACCEPT INPUT        10803760                
       TBF   TCBDMG(,XR1),TCBMTS       MULTIPLE REQUESTOR               10803840                
       JT    IIHERE                    NO USE TUB                       10803920                
       CLC   TCBMAX(1,XR1),TCBATR(,XR1)  YES CAN WE USE IT              10804000                
       JNH   IINXTB                    ONLY IF MAX GREATER              10804080                
       TBN   TUBAT1(,XR2),TUBKNM       CONSOLE REQUEST                  10804160                
       JT    IIHERE                    YES                              10804240                
       TBN   TUBAT4(,XR2),TUBCHN       CHAIN REQUEST DUMMY TUB?         10804260                
       JT    IIHERE                    YES, SKIP COUNT INCREMENT        10804280                
       ALC   TCBATR(1,XR1),X$0001      NO BUMP ACTIVE TERMINAL COUNT    10804320                
       SPACE 2                                                          10804400                
*------HAVE A TUB CHECK DFF AND RUF USE------*                          10804480                
IIHERE TBN   TUBSCS(,XR2),TUBRUF       RUF ACTIVE ON REQUEST            10804560                
IIHERD CLI   TCB@AS-1(,XR1),0          DFF ACTIVE FOR REQUEST           10804640                
       L     II@PRL,XR1                PARM LIST ADDRESS                10804720                
       MVI   PL$OPC(,XR1),BRNOP        NO-OP BRANCH TO MAPPING          10804800                
       JC    IIGISF,X'91'              NO DFF OR RUF INPUT              10804880                
       MVI   PL$OPC(,XR1),BR97         SET FOR DFF MAPPING              10804960                
       J     IIGISF                    GO EXIT ACCEPT                   10805040                
       SPACE 1                                                          10805080                
IINXTB CLI   TUBINQ-1(,XR2),0          MORE TUBS                        10805120                
       JE    IIGGWT                    NO GO WAIT ON ACCEPT             10805200                
       LA    TUBINQ(,XR2),XR1          TUB POINTER                      10805280                
       ST    IITPRV,XR1                SAVE FOR DEQUE                   10805360                
       L     TUBINQ(,XR2),XR2          NEXT TUB                         10805440                
       L     NCTCB@,XR1                OUR USER                         10805520                
       B     IITSTG                    TRY NEXT TUB                     10805600                
       SPACE 2                                                          10805680                
*------SET UP FOR ACCEPT INPUT WAIT-------*                             10805760                
IIGGWT L     II@PRL,XR2                RESTORE PARM LIST ADDRESS        10805840                
       MVC   PL$RTC(2,XR2),IITPRV      PRIOR TUB ADDRESS                10805920                
IITUBS L     TCBTUB(,XR1),XR1          FIRST USER TUB                   10806000                
IILOOP TBN   TUBAT2(,XR1),TUBIIS       INVITE                           10806080                
       JF    IINSAV                    NO SKIP IT                       10806160                
       TBN   TUBCHR(,XR1),TUBLNE       BSCA TUB                         10806240                
       JF    IIOK                      NO IT'S OK                       10806320                
       TBN   TUBAT2(,XR1),TUBOWN       DOES IT OWN A LLINE              10806400                
       JT    IIOK                      YES OK                           10806480                
       L     TUBDTF(,XR1),XR2          DTF ADDRESS                      10806560                
       MVC   IILINE,0(1,XR2)           SAVE LINE NUMBER                 10806640                
       ST    IISAVE+3,XR1              SAVE TUB POINTER                 10806720                
       L     NCTCB@,XR1                CURRENT TCB                      10806800                
       L     TCBTUB(,XR1),XR1          FIRST TUB                        10806880                
IIIGIN TBN   TUBAT2(,XR1),TUBOWN       OWN A LINE                       10806960                
       JF    IIANTH                    NO DO NEXT                       10807040                
       TBN   TUBAT2(,XR1),TUBCMD+TUBDTA TEST IF TUB IN DATA MODE    @99 10807060                
       JT    IIANTH                     ESCAPE? YES THEN OKAY.      @99 10807080                
       L     TUBDTF(,XR1),XR2          DTF                              10807120                
       CLC   0(1,XR2),IILINE           OWN OUR LINE                     10807200                
       JE    IINEXT                    YES                              10807280                
IIANTH CLI   TUBTUB-1(,XR1),0          MORE TUBS                        10807360                
       JE    IIOK                      NO                               10807440                
       L     TUBTUB(,XR1),XR1          NEXT TUB POINTER                 10807520                
       B     IIIGIN                    GO CHECK IT                      10807600                
       SPACE 1                                                          10807640                
IINEXT EQU   *                         CHECK OTHER TUBS                 10807680                
IISAVE LA    *-*,XR1                   RELOAD TUB POINTER               10807760                
IINSAV CLI   TUBTUB-1(,XR1),0          MORE TUBS                        10807840                
       JNE   IIMORE                    YES CHECK THEM                   10807920                
       B     C4TI2                     TERMINATION                      10808000                
       DC    AL1(TCCIAI)               USER ERROR CODE              @01 10808080                
       SPACE 1                                                          10808120                
IIMORE L     TUBTUB(,XR1),XR1          NEXT TUB                         10808160                
       B     IILOOP                    CHECK NEXT TUB                   10808240                
       SPACE 1                                                          10808260                
*------ACCEPT INPUT IS SATISFIED.                                       10808280                
IIGISF L     II@PRL,XR1                RESTORE PARM LIST ADDRESS        10808320                
       MVC   PL$RTC(2,XR1),IITPRV      SET TO DEQUE TUB                 10808400                
       ST    PLTUBA(,XR1),XR2          SET TUB ADDRESS IN PARM LIST     10808480                
       LA    0(,XR1),XR2               SET PARM LIST ADDRESS            10808560                
       J     IIGGSF                    ACCEPT SATISFIED                 10808640                
       SPACE 2                                                          10808720                
*------SET UP FOR ACCEPT INPUT WAIT FOR USER-------*                    10808800                
IIOK   L     NCTCB@,XR1                CURR USER                        10808880                
       L     II@PRL,XR2                RELOAD PARM LIST ADDRESS.        10808960                
       CLI   PLOPC(,XR2),OPANW         WAS THIS AN ACCEPT-NO-WAIT?  @01 10808980                
       BE    IIAC02                    YES THE RESPOND WITH NO-DATA @01 10809000                
       MVI   TCBECB(,XR1),TCBACW       ELSE SET ACCEPT WAIT FOR C.M.    10809040                
       AGO   .RESA                                                      10809120                
.NRES  ANOP                                                             10809200                
       MVI   PL$OPC(,XR2),NOBIT        SETP OP TO SHOW INITIAL REQUEST  10810000                
       SPACE                                                            10812000                
*********************************************************************** 10814000                
*   CALL ACCEPT TRANSIENT - RETURN IS TO ANY (RETURN) BELOW           * 10816000                
*********************************************************************** 10818000                
IICALL EQU   *                                                          10820000                
       B     CC4PI                     BRANCH TO TRANSIENT HANDLER      10830000                
       DC    AL1(CC4AB)                ID FOR ACCEPT TRANSIENT          10840000                
       B     C4TI2         +0 (RETURN) BRANCH TO TERMINATION ON ERROR   10850000                
       DC    AL1(*-*)                  ACCEPT IMPOSSIBLE TO SATISFY     10860000                
       B     IINTSH        +5 (RETURN) ACCEPT-NO-WAIT NOT SATISFIED @01 10875000                
       J     IIGGSF        +9 (RETURN) JUMP IF ACCEPT SATISFIED         10880000                
*                         +12 (RETURN) CONTINUE IF TO PREFORM WAIT      10885000                
       SPACE 5                                                          10890000                
.RESA  ANOP                                                             10896000                
       EJECT                                                            10897000                
       SPACE 1                                                          10898000                
*********************************************************************** 10920000                
*                 ---  CHECK FOR SHUTDOWN ---                         * 10930000                
*   DETERMINE NOW WHETHER USER SHOULD BE TOLD ABOUT SHUTDOWN REQUEST  * 10935000                
*********************************************************************** 10940000                
       SPACE                                                            10950000                
*      DETERMINE IF SYSTEM OPERATOR REQUESTED SHUTDOWN AND              10960000                
*      ALSO WHETHER USER HAS BEEN TOLD YET WITH NON-SHUTDOWN INQUIRY OP 10970000                
       SPACE                                                            10980000                
       TBN   $FLGA,CPSHUT              HAS SHUTDOWN BEEN REQUESTED      10990000                
       JF    IIAIWT                    JUMP IF NOT                      11000000                
       SPACE                                                            11010000                
*      SHUTDOWN HAS BEEN REQUESTED - DETERMINE IF USER TOLD ALREADY     11020000                
IITELL L     NCTCB@,XR1                POINT XR1 AT CURRENT TCB         11040000                
       TBN   TCBDMG(,XR1),TCBSHQ       HAS USER BEEN TOLD               11050000                
       SBN   TCBDMG(,XR1),TCBSHQ       SET BIT THAT USER TOLD           11060000                
       JF    IIPGSH                    JUMP IF SHUTDOWN REQUESTED       11070000                
       EJECT                                                            11080000                
       SPACE                                                            11085000                
*********************************************************************** 11090000                
*       WAIT FOR AN INVITE COMPLETION OR A SHUTDOWN REQUEST           * 11100000                
*********************************************************************** 11110000                
       SPACE 3                                                          11120000                
IIAIWT EQU   *                         ISSUE WAIT                       11130000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERRUPTS           11140000                
       LA    0(,XR2),XR1               POINT XR1 AT PARMLIST            11145000                
       SPACE                                                            11150000                
*    MUST DO A WAIT FOR AN INVITE OR A SHUTDOWN REQUEST                 11280000                
       SPACE                                                            11290000                
IINODG LA    0(,XR1),XR2               POINT XR2 AT PARM LIST           11300000                
       L     NCTCB@,XR1                POINT TO THE TCB                 11310000                
       LA    TCBECB(,XR1),XR1          POINT TO THE ECB                 11320000                
       SPACE                                                            11330000                
       CCP   ENABLE,PMRQ               REENABLE ALL INTERRUPTS          11340000                
       SVC   0                         ISSUE WAIT FOR INVITE COMPLETE   11350000                
*                                      OR SHUTDOWN REQUEST              11360000                
       DC    XL1'03'                   RIB TO WAIT ON ECB LIST          11370000                
       SPACE                                                            11380000                
*    WAIT HAS COMPLETED - TEST IF SHUTDOWN OR INVITE COMPLETE           11390000                
       SPACE                                                            11400000                
       CCP   DISABL,PMRQ               DISABLE INTERRUPTS               11410000                
       ST    II@PRL,XR2                SAVE PARAMETER LIST  POINTER     11430000                
       EJECT                                                            11440000                
       SPACE 3                                                          11450000                
*********************************************************************** 11460000                
* RETURN AFTER BEING POSTED THAT A TUB HAS BEEN PUT IN THE TCB INVITE * 11470000                
*  INPUT TUB QUEUE OR SHUTDOWN HAS BEEN REQUESTED BY SYSTEM OPERATOR  * 11480000                
*********************************************************************** 11500000                
       SPACE 3                                                          11510000                
*      DETERMINE IF POST WAS FOR INVITE INPUT COMPLETE                  11520000                
*      IF NOT MUST HAVE BEEN SHUTDOWN REQUESTED                         11530000                
*      XR1 POINT TO TCBECB.                                             11535000                
       SPACE                                                            11540000                
       SBF   0(,XR1),TCBACW            RESET ACCEPT WAIT BIT            11555000                
       CLI   2(,XR1),IIPOST            WAS POST FOR INVITE COMPLETE?    11560000                
       BNE   IITELL                    JUMP IF NOT INVITE POST          11570000                
       SPACE 1                                                          11571000                
*      HAD POST OF INVITE INPUT COMPLETE                                11590000                
       AIF   (&NRAI).NRS1              RESIDENT ACCEPT                  11601000                
       L     NCTCB@,XR1                LOCATE THE TCB.                  11602000                
       B     IICTOK                    GO HANDLE OP-ENDED TUB           11603000                
IITPRV DC    XL2'00'                   PRIOR TUB SAVE AREA              11604000                
IILINE DC    XL1'00'                   BSCA LINE NUMBER SAVE AREA       11605000                
       AGO   .NRS2                                                      11606000                
.NRS1  ANOP                                                             11607000                
       MVI   PL$OPC(,XR2),ALLBIT       SET OP TO SHOW SECONDARY ENTRY   11610000                
       B     IICALL                    BRANCH TO RECALL TRANSIENT       11620000                
.NRS2  ANOP                                                             11625000                
       SPACE 3                                                          11630000                
*********************************************************************** 11635000                
*      TELL USER ABOUT SHUTDOWN REQUEST AND                           * 11640000                
*      SET PLEFFL IN PARMATER LIST TO OUTSTANDING INVITES.            * 11643000                
*********************************************************************** 11646000                
       SPACE                                                            11650000                
IIPGSH EQU   *                         TELL USER ABOUT SHUTDOWN.    @01 11655000                
       MVI   PLRTC(,XR2),RCXSHD        PLUG SHUTDOWN RETURN CODE.   @01 11670000                
       SPACE                                                            11671000                
IINTSH EQU   *                         SET PLEFFL TO OUTSTANDING    @01 11672000                
       L     NCTCB@,XR1                INVITES. XR1 POINTS TO TCB.  @01 11673000                
       MVI   PLEFFL-1(,XR2),NOBIT      HIGH ORDER BYTE IS ZERO AND  @01 11674000                
       MVC   PLEFFL-0(,XR2),TCBIIC(1,XR1) MOVE OUTSTANDING INVITES. @01 11675000                
       B     IITEND                       BRANCH TO RETURN TO USER. @01 11680000                
       EJECT                                                            11690000                
       SPACE 2                                                          11700000                
*********************************************************************** 11710000                
*            ACCEPT INPUT SATISFIED                                   * 11720000                
*********************************************************************** 11730000                
       SPACE 2                                                          11740000                
IIGGSF EQU   *                         GET GENERAL SATIFIED             11750000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERRUPTS           11760000                
       ST    II@PRL,XR2                STORE PARAMETER LIST ADDRESS     11770000                
       L     PLTUBA(,XR2),XR2          POINT AT TUB                     11780000                
       L     NCTCB@,XR1                POINT XR1 AT CURRENT TCB         11790000                
       SLC   TCBIIC(1,XR1),X$0001      SUBTRACT 1 FROM INVITE COUNT     11800000                
       SBF   TUBAT2(,XR2),TUBIIS+TUBIIQ SET OFF TUB INVITE STATUS BITS  11810000                
       SPACE 2                                                          11820000                
*  DEQUEUE THE TUB FROM INVITE INPUTE TUB QUEUE                         11830000                
       L     II@PRL,XR1                POINT TO PARAMETER LIST          11840000                
       L     PL$RTC(,XR1),XR1          POINT TO PREVIOUS TUB            11850000                
       MVC   0(2,XR1),TUBINQ(,XR2)     DEQUEUE THE TUB                  11860000                
       SPACE 1                                                      @11 11870000                
       L     NCTCB@,XR1                POINT TO THE TCB                 11880000                
       TBN   TCBOFG(,XR1),TCBCHN       TASK CHAIN REQUEST?              11884000                
       JT    IIYTC                     YES, DONT CHANGE THE NAME        11886000                
.*                                                                  @11 11886500                
       AIF   (&MTNT NE '1').NTNT9      .SKIP IF TNT REMAP NOT SUPP  @11 11887000                
       B     IIMTNT                    . MAP IN TNT MOVEOUT AREA    @11 11887500                
.NTNT9 ANOP                                                         @11 11888000                
.*                                                                  @11 11888500                
       L     TUBTNT(,XR2),XR2          . POINT TO THE TUB'S TNT         11889000                
       MVC   NPJOB-2(6,XR1),TNTNAM(,XR2) MOVE TERM NAME TO TCB          11890000                
.*                                                                  @11 11891000                
       AIF   (&MTNT NE '1').NTN9A      .SKIP IF TNT REMAP NOT SUPP  @11 11892000                
       B     IIUTNT                    . UNMAP TNT MOVEOUT AREA     @11 11893000                
.NTN9A ANOP                                                         @11 11894000                
.*                                                                  @11 11895000                
       EJECT                                                            11900000                
       SPACE 2                                                          11910000                
*********************************************************************** 11920000                
* NOW POST CM  TASK TO PROCESS THE ACCEPT INPUT DATA                  * 11930000                
*********************************************************************** 11940000                
       SPACE 2                                                          11950000                
*  MOVE THE PARAMETER LIST TO THE TCB                                   11960000                
       SPACE                                                            11970000                
IIYTC  L     II@PRL,XR2                POINT XR2 AT PARAMETER LIST      11980000                
       AIF   (&PORT).NSIO7             . SKIP IF NO PORTS SUPPORTED @21 11981000                
       L     PLTUBA(,XR2),XR1          POINT XR1 TO THE TUB.        @08 11982000                
       TBN   TUBPHY(,XR1),TUBAPT       TEST IF PORT                 @21 11983000                
       TBF   TUBAT4(,XR1),TUBCHN       TUB AND                      @21 11983500                
       TBN   TUBAT3(,XR1),TUBCNC       IF TUB WAS CANCELED.         @08 11984000                
       JT    IINTCN                    YES, SKIP POST OF CM.        @08 11985000                
       SPACE 1                                                      @08 11986000                
       L     NCTCB@,XR1                POINT XR1 TO USERS TCB.      @08 11987000                
.NSIO7 ANOP                                                         @08 11988000                
       MVC   TCBWK(2,XR1),PLRECA(,XR2) SAVE PLRECA IN TCBWK THEN        11990000                
       LA    TCBPL(,XR1),XR1           POINT TO PARM LIST AREA IN TCB   12000000                
       MVC   PL$RTC(16,XR1),PL$RTC(,XR2) MOVE THE PARM LIST TO THE TCB  12010000                
       SBF   PLOPC(,XR1),BIT1          . CHANCE ANW TO ACI OPCODE.  @01 12015000                
       L     PLTUBA(,XR1),XR2          . POINT TO THE TUB SELECTED.     12020000                
       L     PLRECA(,XR1),XR1          . POINT TO THE USER'S REC. AREA  12021000                
       TBN   TUBAT4(,XR2),TUBCHN       . CHAIN TASK TUB ON ACCEPT?      12022000                
       JF    IINTCH                    . NO, GO INSERT SYMB TERM NAME.  12023000                
       MVC   5(6,XR1),TUBPNM(,XR2)     . MOVE NAME OF REQUESTING TASK   12024000                
       J     IITCHH                    . SKIP TNT NAME INSERT.          12025000                
       SPACE 1                                                          12026000                
IINTCH EQU   *                                                          12027000                
.*                                                                  @11 12027500                
       AIF   (&MTNT NE '1').NTNTA      .SKIP IF TNT REMAP NOT SUPP  @11 12028000                
       B     IIMTNT                    . MAP IN TNT MOVEOUT AREA    @11 12028500                
.NTNTA ANOP                                                         @11 12029000                
.*                                                                  @11 12029500                
       L     TUBTNT(,XR2),XR2            POINT TO THE TNT ENTRY         12030000                
       AIF   (&MTNT EQ '1').ATNAA      .SKIP IF TNT REMAP IS SUPPP  @11 12040000                
       MVC   IISTNL-1(IISTNL,XR1),TNTNAM(,XR2) MOVE STN TO RECORD AREA  12050000                
       AGO   .NTNAA                                                 @11 12051000                
.ATNAA ANOP                            .BELOW INCLUDEDED IF TNTMOVE @11 12052000                
       MVC   IITNAM(IISTNL),TNTNAM(,XR2) SAVE TERMINAL NAME FOR MOVE@11 12053000                
       B     IIUTNT                    . UNMAP THE TNT MOVEOUT AREA @11 12054000                
       MVC   IISTNL-1(IISTNL,XR1),IITNAM MOVE IN SYMB TERMINAL NAME @11 12055000                
.NTNAA ANOP                                                         @11 12056000                
.*                                                                  @11 12057000                
       SPACE                                                            12060000                
IITCHH EQU   *                                                          12065000                
       L     II@PRL,XR2                 RESTORE PARAMETER LIST POINTER  12070000                
       AIF   (&NDF).PONK               SKIP IF MAPPING *NOT* SUPPORTED  12080000                
       MVC   IIDFF,PL$OPC(1,XR2)       MOVE IN BRANCH CONDITION CODE    12090000                
IIDFF  EQU   *+1                                                        12100000                
       BC    IIMAPP,BR97               BRANCH TO MAPPING                12110000                
.PONK  ANOP                                                             12120000                
       SPACE                                                            12125000                
       ENTRY IINDFF                                                     12130000                
IINDFF EQU   *                                                          12140000                
       L     NCTCB@,XR2                  POINT TO THE TCB               12150000                
       SLC   TCBPL+PLECB+2(3,XR2),TCBPL+PLECB+2(,XR2) CLEAR THE ECB     12160000                
       LA    TCBPL(,XR2),XR2             POINT TO THE PARAMETER LIST    12170000                
       SLC   PLRECA(2,XR2),PLRECA(,XR2)  CLEAR PLRECA                   12180000                
       SPACE                                                            12190000                
*    QUEUE THE ACCEPT INPUT REQUEST ON CM'S REQUEST QUEUE               12200000                
       SPACE                                                            12210000                
       B     IIQSUB                     GO QUEUE THE REQUEST.           12220000                
       L     II@PRL,XR2                 RESTORE PARAMETER LIST POINTER  12230000                
       SBF   $FLGC,#NTRAC               REENABLE TRACE BEFORE CM POST   12240000                
       SPACE                                                            12250000                
*   NOW POST THE CM WITH A REQUEST TO PROCESS                           12260000                
*   XR1 SET TO CM'S ECB IN IIQSUB ABOVE.                            @06 12270000                
       SPACE 1                                                          12280000                
       CCP   ENABLE,PMRQ               REENABLE ALL INTERRUPTS          12290000                
       SVC   0                         POST DFF WITH THE REQUEST        12300000                
       DC    XL1'05'                   RIB FOR POST                     12310000                
       SPACE 2                                                          12320000                
*     CM IS NOW POSTED - WAIT ON COMPLETION OF THE ACCEPT INPUT         12330000                
       SPACE                                                            12340000                
       L     NCTCB@,XR1                POINT TO THE TCB                 12350000                
       LA    TCBPL+PLECB(,XR1),XR1     POINT AT THE ECB IN THE TCB PL   12360000                
       SVC   0                         NOW WAIT ON THE POST OF THE ECB  12370000                
       DC    XL1'03'                   RIB FOR EXPLICIT WAIT            12380000                
       EJECT                                                            12390000                
       SPACE 2                                                          12400000                
*    WE ARE POSTED COMPLETE - MOVE THE PARM LIST BACK AND RETURN        12410000                
       SPACE 2                                                          12420000                
       CCP   DISABL,PMRQ               DISABLE INTERRUPTS               12430000                
       L     NCTCB@,XR1                POINT XR1 AT THE TCB             12440000                
       MVC   PL$RTC(6,XR2),TCBPL+PL$RTC(,XR1) MOVE THE PARM LIST        12450000                
       MVC   PLINL(8,XR2),TCBPL+PLINL(,XR1)      BACK TO THE UPA        12460000                
       SPACE                                                            12470000                
       L     PLTUBA(,XR2),XR1          LOCATE TUB AGAIN                 12470700                
       TBN   TUBAT4(,XR1),TUBCHN       THIS A CHAIN REQUEST TUB?        12471400                
       JF    IINTCN                    NO, SKIP DEQUEUEING IT           12472100                
       CLC   PLRTC(2,XR2),X$0001       RETURN CODE=00 OR 01?            12472800                
       JH    IITCNG                    NO,DONT SET CHAIN RETURN CODE    12473500                
       SBN   PLRTC(,XR2),X'0E'         INDICATE CHAIN REQUEST           12474200                
       SPACE                                                            12474500                
IITCNG EQU   *                                                          12474900                
       MVC   TUBTUB(2,XR1),@DTUBQ      INSERT THIS TUB INTO DUMMY       12475600                
       ST    @DTUBQ,XR1                 TUB FREE CHAIN.                 12476300                
       SBF   TUBAT2(,XR1),TUBIMI+TUBDTA RESET FOR NEXT CHAIN REQUEST    12477000                
       SBN   TUBAT2(,XR1),TUBCMD       RESET FOR NEXT CHAIN REQUEST     12477700                
IINTCN EQU   *                                                          12478400                
       B     IIAEND                    BRANCH TO RETURN TO REQUESTOR    12480000                
.*                                                                      12490000                
.NORS  AIF   (&N1050).MAPP             . SKIP IF *NO* 1050 SUPPORT      12500000                
.*                                                                      12510000                
       EJECT                                                            12520000                
*********************************************************************** 12530000                
*      MCT CHECK FOR INPUT AND OUTPUT CAPABILITY                      * 12540000                
*********************************************************************** 12550000                
       SPACE                                                            12560000                
*      XR1   POINTS AT TUB                                              12570000                
*      XR2 POINTS AT PARM LIST                                          12580000                
       SPACE                                                            12590000                
       ENTRY IIMCT                                                      12600000                
IIMCT  EQU   *                         1050 CHECK                       12610000                
       ST    IIMCTR+3,ARR              SAVE ARR                         12620000                
       SPACE                                                            12630000                
*      DOES THIS OP INVOLVE MULTI-COMPONENT TERMINAL                    12640000                
       SPACE                                                            12650000                
       TBN   TUBCHR(,XR1),TUBMCT       IS THIS MCT                      12660000                
       JF    IIMCTR                    JUMP IF NOT TO RETURN NOW        12670000                
       SPACE                                                            12680000                
*      HAVE MCT - SO CHECK COMPONENT INDICES                            12690000                
       SPACE                                                            12700000                
       CLI   PL$MCT(,XR2),NOBIT        ARE COMPONENT INDICES IN PL?     12710000                
       JNE   IIMCTC                    JUMP IF INDICES ALREADY THERE.   12720000                
       MVC   PL$MCT(1,XR2),TUBPCS(,XR1) PLUB MCT INDICES INTO PARM LIST 12730000                
       SPACE                                                            12740000                
IIMCTC EQU   *                         CHECK MCT INDICES                12750000                
       TBF   PLOPM(,XR2),OP$SYS        SYSTEM OPERATION AND             12754000                
       TBN   PLOPC(,XR2),OPPUT         DOES OP INVOLVE PUT              12760000                
       TBF   PL$MCT(,XR2),MCTOUT       IS MCT OUTPUT CAPABLE            12770000                
       JF    IIMCTG                    JUMP IF OUTPUT CAPABLE OR NO PUT 12780000                
       SPACE                                                            12790000                
*      ERROR - SUB TERMINAL NAME SPECIFIED FOR OUTPUT BUT NO            12800000                
*      OUTPUT DEVICES ASSOCIATED WITH THIS NAME                         12810000                
       SPACE                                                            12820000                
       B     C4TI2                     BRANCH TO TERMINATION            12830000                
       DC    AL1(TCCIOC)               I/O CAPABILITY - NO MATCH        12840000                
       SPACE                                                            12850000                
IIMCTG EQU   *                         CHECK INPUT                      12860000                
       TBF   PLOPM(,XR2),OP$SYS        SYSTEM OPERATION AND             12864000                
       TBN   PLOPC(,XR2),OPGET         DOES OP INVOLVE GET              12870000                
       TBF   PL$MCT(,XR2),MCTIN        IS MCT INPUT CAPABLE             12880000                
       JF    IIMCTR                    JUMP IF INPUT CAPABLE OR NO GET  12890000                
       SPACE                                                            12900000                
*      ERROR - SUB TERMINAL NAME SPECIFIED FOR INPUT OPERATION BUT NO   12910000                
*      INPUT DEVICE ASSOCIATED WITH THIS NAME                           12920000                
       SPACE                                                            12930000                
       B     C4TI2                     BRANCH TO TERMINATION            12940000                
       DC    AL1(TCCIOC)               I/O CAPABILITY - NO MATCH        12950000                
       SPACE                                                            12960000                
IIMCTR B     ####                      RETURN                           12970000                
.*                                                                      12990000                
.MAPP  ANOP                                                             13000000                
       AIF   (&NDF).CKIN               . SKIP IF *NO* DFF SUPPORT       13010000                
.*                                                                      13020000                
       EJECT                                                            13023000                
       SPACE                                                            13026000                
*********************************************************************** 13030000                
* INTERFACE TO MAPPING MODULE - XR2 POINTS AT PARAMETER LIST          * 13040000                
*********************************************************************** 13050000                
       SPACE                                                            13060000                
       ENTRY IIMAPP                                                     13070000                
IIMAPP EQU   *                         INTERFACE TO MAPPING             13080000                
       ST    IIRTRN+3,ARR              SAVE RETURN ADDRESS              13090000                
       L     PLTUBA(,XR2),XR1          POINT TO TUB                     13100000                
       TBN   TUBTA1(,XR1),TASDFF       IS MAPPING FOR THIS TERMINAL     13110000                
       JF    IIRTRN                    BRANCH IF NOT MAPPING            13120000                
       L     NCTCB@,XR1                POINT TO CURRENT TCB             13130000                
       CLI   TCB@AS-1(,XR1),NOBIT      IS MAPPING FOR THIS TASK?        13140000                
       L     PLTUBA(,XR2),XR1          RESTORE TUB POINTER              13150000                
       JNE   IIXXXX                    BRANCH IF YES                    13160000                
       TBN   PLOPC(,XR2),OPSTAT        IS THIS A STATUS REQUEST?        13170000                
       JT    IIRTRN                    BRANCH TO RETURN IF YES          13180000                
       SPACE 1                                                          13190000                
*----ERROR----DFF TERMINAL REFERENCED BY NON-DFF TASK                   13200000                
IIDFER EQU   *                                                          13220000                
       B     C4TI2                     BRANCH TO TERMINATION            13230000                
       DC    AL1(TCCNDF)                                                13240000                
       SPACE 2                                                          13245000                
IIXXXX EQU   *                                                          13250000                
       L     IIRTRN+3,XR1              SAVE ARR IN XR1                  13260000                
IIIIII B     DFA000                    BRANCH TO MAPPING MODULE         13270000                
       ST    IIRTRN+3,XR1              STORE RETURN ADDRESS IN BRANCH   13280000                
       L     NCTCB@,XR1                POINT TO THE TCB                 13290000                
       L     TCB@AS(,XR1),XR1          POINT TO THE PAS                 13300000                
       MVC   II@PRL,PASPL@(2,XR1)      RESTORE PARM LIST SAVE AREA      13310000                
       L     PLTUBA(,XR2),XR1          RESTORE TUB POINTER              13320000                
IIRTRN B     *-*                                                        13330000                
.CKIN  ANOP                                                             13350000                
       AIF   (&MTNT NE '1').NTNTX      .SKIP IF NO TNT MOVEOUT SUPP     13350200                
       EJECT                                                            13350400                
       SPACE 2                                                          13350600                
*********************************************************************** 13350800                
*      MAP/UNMAP TNT MOVEOUT AREA.                                    * 13351000                
*      IIMTNT - MAPES THE TNT MOVEOUT AREA INTO X'E000' SLOT.         * 13351200                
*      IIUTNT - UNMAPS WHAT IIMTNT MAPPED.                            * 13351400                
*********************************************************************** 13351600                
       SPACE 2                                                          13351800                
       ENTRY IIMTNT                                                 @11 13352000                
IIMTNT EQU   *                         MAP TNT MOVEOUT AREA.        @11 13352200                
       MVI   IIMJMP+1,BRNOP            SET INDICATOR FOR MAPPING    @11 13352400                
       J     IIMENT                    GO PROCESS REQUEST.          @11 13352600                
       SPACE 1                                                      @11 13352800                
       ENTRY IIUTNT                                                 @11 13353000                
IIUTNT EQU   *                         UNMAP TNT MOVEOUT AREA       @11 13353200                
       MVI   IIMJMP+1,BR               SET INDICATOR FOR UNMAPPING  @11 13353400                
       SPACE 1                                                      @11 13353600                
IIMENT ST    IIMRTN+3,ARR              SAVE RETURN ADDRESS          @11 13353800                
       ST    IIMXR2+3,XR2              SAVE INDEX REGISTER TWO      @11 13354000                
       L     NCTCB@,XR2                POINT TO USERS TCB.          @11 13354200                
       CLC   TCBATT-28(,XR2),TNTATT(2) ARE TNT ALREADY MAPED?       @11 13354400                
       SPACE 1                                                      @11 13354600                
IIMJMP JC    IIUMPT,#                  MAP/UNMAP INDICATOR.         @11 13354800                
       SPACE 1                                                      @11 13355000                
IIMMPT JE    IIMXR2                    RETURN ALREADY MAPPED.       @11 13355200                
       MVC   IIMSAV(2),TCBATT-28(,XR2) SAVE ORIGINAL USERS ATRS     @11 13355400                
       MVC   TCBATT-28(,XR2),TNTATT(2) MOVE TNT ATRS TO USERS TCB   @11 13355600                
       J     IIMLCP                    LOAD THE ATRS MOVED.         @11 13355800                
       SPACE 1                                                      @11 13356000                
IIUMPT JNE   IIMXR2                    RETUNED TNT ARE NOT MAPPED.  @11 13356200                
       MVC   TCBATT-28(,XR2),IIMSAV(2) RESTORE ORIGINAL USERS ATRS  @11 13356400                
       SPACE 1                                                      @11 13356600                
IIMLCP LCP   TCBATT-28(,XR2),AT1C1D    LOAD WHAT EVER TCB ATRS      @11 13356800                
IIMXR2 LA    #,XR2                     RESTORE CALLERS XR2          @11 13357000                
IIMRTN B     #                         RETURN TO CALLER             @11 13357200                
       SPACE 2                                                      @11 13357400                
AT1C1D EQU   X'5E'                     1C/1D ATR SLOTS (E000-E800)  @11 13357600                
IIMSAV DC    XL2'0000'                 SAVE AREA FOR USERS ATRS     @11 13357800                
       SPACE 1                                                      @11 13358000                
IITNTX EQU   *                         SAVE AREA FOR TNT ENTRY FOUND@11 13358200                
IITNAM DC    CL6'TRMNAL'               TERMINAL NAME SAVE AREA.     @11 13358400                
       ORG   IITNTX+TNTLN              ROOM FOR TNT.                @11 13358600                
.NTNTX ANOP                                                         @11 13358800                
       EJECT                                                        @11 13359000                
       SPACE 2                                                          13360000                
*********************************************************************** 13370000                
*        QUEUE THE REQUEST ON THE @PRLQ OR @CSNRQ IN CCP COMMON       * 13380000                
*        AREA WHICHEVER OWNS THE TUB.  POINT XR1 TO CM'S OR CS'S      * 13390000                
*        ECB BEFORE RETURNING TO CALLER.                              * 13393000                
*********************************************************************** 13396000                
       SPACE 2                                                          13400000                
       ENTRY IIQSUB                                                     13410000                
IIQSUB ST    IIQRET+3,ARR              SAVE RETURN ADDRESS              13420000                
       L     PLTUBA(,XR2),XR1          POINT TO THE TUB                 13430000                
       TBF   TUBAT1(,XR1),TUBKNM       THIS THE CONSOLE TUB OR          13432000                
       TBF   TUBAT4(,XR1),TUBCHN       * A DUMMY TASKCHAIN TUB ?        13433000                
       JF    IIQBSC                    SKIP UPDATING REQUEST COUNTER    13434000                
.*                                                                      13434100                
       AIF   (&YBCSI EQ '0').NYUK0     . SKIP IF NO BSCC LINES.     @O8 13434200                
       TBN   PLOPC(,XR2),OPACI         IS THIS AN ACCEPT OPCODE     @06 13434300                
       TBF   PLOPC(,XR2),ALLBIT-OPANW  AND ONLY AN ACCEPT OPCODE?   @06 13434400                
       JF    IIQNRC                    NO, GO POST WHO EVER.        @06 13434500                
       TBN   TUBAT4(,XR1),TUBYUK       IS THIS A BSCC TUB?          @06 13434600                
       JT    IIQBSC                    GO QUEUE AND POST $CC4CM.    @06 13434700                
       L     TUBLCB(,XR1),XR1          POINT TO THE LCB             @06 13440000                
       ALC   LCBNW#(1,XR1),X$0001      UPDATE THE NEW REQUEST COUNT @06 13450000                
       J     IIQBSC                    GO QUEUE AND POST $CC4CM.    @06 13450600                
.NYUK0 ANOP                                                             13451200                
       SPACE 1                                                          13451800                
IIQNRC L     TUBLCB(,XR1),XR1          POINT TO THE LCB                 13452400                
       ALC   LCBNW#(1,XR1),X$0001      UPDATE THE NEW REQUEST COUNTER   13453000                
.*                                                                      13453600                
       AIF   (&YBCSI EQ '0').NYUK1     . SKIP IF NO BSCC LINES.     @O8 13454200                
       L     PLTUBA(,XR2),XR1          POINT TO THE TUB.            @06 13454800                
       TBN   TUBAT4(,XR1),TUBYUK       IS THIS A BSCC TUB?          @06 13455400                
       MVI   IIQTST+1,BRNOP            ASSUME IT TO BE BSCC TUB     @06 13456000                
       LA    @CSNRQ-PLCHN,XR1          AND QUEUE FOR $CC4CS.        @06 13456600                
       JT    IIQLOP                    GO QUEUE IF YES.             @06 13457200                
.NYUK1 ANOP                                                             13457800                
       SPACE 1                                                          13458400                
IIQBSC LA    @PRLQ-PLCHN,XR1           POINT $CC4CM'S QUEUE FIELD.      13460000                
       AIF   (&YBCSI EQ '0').NYUK2     . SKIP IF NO BSCC LINES.     @O8 13462000                
       MVI   IIQTST+1,BR               SET TO POST CM'S ECB.        @06 13464000                
       SPACE 1                                                      @06 13466000                
.NYUK2 ANOP                                                             13468000                
IIQLOP CLI   PLCHN-1(,XR1),NOBIT       IS THIS THE END OF THE CHAIN?    13470000                
       JE    IIQIT                     BRANCH TO QUEUE IF YES           13480000                
       L     PLCHN(,XR1),XR1           POINT TO THE NEXT LIST IN CHAIN  13490000                
       B     IIQLOP                    LOOP TO LOOK FOR LAST ONE        13500000                
       SPACE                                                            13510000                
*   HAVE FOUND THE END OF THE CHAIN - QUEUE THIS REQUEST ON THE END     13520000                
       SPACE                                                            13530000                
IIQIT  ST    PLCHN(,XR1),XR2           ADD THE REQUEST ON THE END       13540000                
       SLC   PLCHN(2,XR2),PLCHN(,XR2)  CLEAR THE CHAIN POINTER          13550000                
       LA    $CMECB,XR1                POINT TO $CC4CM'S ECB.           13551000                
       SPACE 1                                                      @08 13552000                
.*                                                                  @08 13553000                
       AIF   (&YBCSI EQ '0').NYUK3     . SKIP IF NO BSCC LINES.     @O8 13554000                
IIQTST JC    IIQRET,#+BR               BSCC/BSCA SWITCH.            @06 13555000                
       LA    $CSECB,XR1                POINT TO $CC4CS'S ECB.       @06 13556000                
       SPACE 1                                                      @06 13557000                
.NYUK3 ANOP                                                             13558000                
IIQRET B     *-*                       RETURN                           13560000                
       TITLE 'COMMUNICATIONS&#.I/O&#.INTERFACE&#.--&#.SYSTEM&#.I/O'     13570000                
       SPACE                                                            13575000                
*********************************************************************** 13580000                
*      ENTRY POINT FOR I/O INTERFACE FOR THE SYSTEM                   * 13590000                
*********************************************************************** 13600000                
       SPACE                                                            13610000                
       ENTRY $CC4IS                                                     13620000                
$CC4IS EQU   *                         I/O INTERFACE FOR SYSTEM         13630000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERRUPTS           13640000                
       A     X$0001,ARR                POINT TO RIGHT END OF PARM LIST@ 13650000                
       ST    MOVE+5,ARR                STORE ADDR OF PARM LIST ADDR     13670000                
       A     X$0001,ARR                BUMP ARR TO NSI                  13690000                
       SPACE                                                            13700000                
* MOVE PARM LIST ADDR TO II@PRL                                         13710000                
MOVE   MVC   II@PRL(2),*-*             MOVE PARM LIST ADDR TO II@PRL    13730000                
       SPACE                                                            13740000                
*      SAVE THE REGISTERS                                               13750000                
       ST    IICARR,XR2                SAVE XR2                         13770000                
       L     NCTCB@,XR2                POINT TO THE TCB                 13780000                
       ST    IIIX1(,XR2),XR1           SAVE XR1 IN THE TCB.             13790000                
       ST    IIIIR(,XR2),ARR           SAVE ARR IN THE TCB.             13800000                
       MVC   IIIX2(2,XR2),IICARR       SAVE XR2 THERE ALSO.             13810000                
       SPACE                                                            13820000                
*********************************************************************** 13830000                
* POST CM/CS WITH TP IO REQUEST                                     @21 13840000                
* WAIT ON RESPONSE FROM CM/CS                                       @21 13850000                
* RETURN TO INVOKER                                                   * 13860000                
*********************************************************************** 13870000                
       SPACE 2                                                          13880000                
       L     II@PRL,XR2                POINT XR2 AT PARM LIST           13890000                
       SLC   PLCHN(2,XR2),PLCHN(,XR2)  CLEAR CHAIN POINTER IN PARM LIST 13910000                
       SLC   PL$RTC(4,XR2),PL$RTC(,XR2) ZERO INTERNAL RETURN CODE       13920000                
*                                      .AND INTERNAL OP-CODE            13930000                
       TBN   PLOPC(,XR2),OPPUT         .OPERATION INVOLVE PUT ?     @08 13940000                
       JT    IS0010                    .YES, BRANCH                 @08 13950000                
       MVI   PLRECA-1(,XR2),NOBIT      .ZERO OUT RECORD ADDRESS         13960000                
       SPACE                                                            13963000                
*      TAKE A TRACE AT THIS POINT                                       13966000                
IS0010 EQU   *                                                          13970000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 13990000                
       B     CC4TT                     BRANCH TO TRACE ROUTINE          14000000                
       DC    AL1(TTIS)                 TRACE FOR $CC4IS                 14010000                
       EJECT                                                            14020000                
       SPACE                                                            14040000                
*********************************************************************** 14050000                
* HAVE TPIO REQUEST FOR A TERMINAL                                    * 14060000                
* POST CM/CS  AND ISSUE WAIT                                        @21 14070000                
*********************************************************************** 14080000                
       SPACE                                                            14090000                
*POST CM FOR TP REQUEST                                                 14100000                
ISREQ  EQU   *                         HAVE TP REQUEST FOR $CC4CM       14120000                
       SPACE                                                            14130000                
*    IF THIS IS AN INVITE OPERATION, MOVE PARM LIST TO THE TUB          14140000                
       TBN   PLOPM(,XR2),OP$SYS        IS THIS A SYSTEM REQUEST, AND    14160000                
       TBN   PLOPC(,XR2),OPINV         IS THIS AN INVITE OPERATION?     14170000                
       TBF   PLOPC(,XR2),OPJRSH        AND NOT JUST RESCHEDULED?    @02 14175000                
       JF    ISWTOP                    BRANCH IF NOT ALL TRUE.      @02 14180000                
       SPACE                                                            14181000                
       TBF   TUBAT2(,XR1),TUBDTA       TERMINAL IN DME?                 14182000                
       TBN   $FLGA,CPSHUT              AND IS SHUTDOWN PENDING?         14183000                
       JF    ISNDQI                    IF BOTH ARN'T TRUE SKIP RESET    14185000                
       SBF   PLOPC(,XR2),OPINV         DESCHEDULE THE SYSTEM INVITE     14186000                
       TBF   PLOPC(,XR2),OPPUT         TEST IF NOT A SYSTEM PUT     @04 14186300                
       JT    ISREGS                    EGNORE REQUEST ALL TOGETHER. @04 14186600                
       J     ISWTOP                    GO RESTORE TUB  POINTER          14187000                
       SPACE                                                            14188000                
ISNDQI MVC   TUBPL+PL$RTC(16,XR1),PL$RTC(,XR2)  MOVE PARM LIST TO TUB   14190000                
       LA    TUBPL(,XR1),XR2           POINT XR2 AT TUB PARM LIST       14200000                
       SPACE                                                            14210000                
ISWTOP L     PLTUBA(,XR2),XR1          RESTORE TUB POINTER IN XR1       14220000                
.*                                                                      14230000                
       AIF   (&N1050).NMCT9            . SKIP IF *NO* 1050 SUPPORT      14240000                
.*                                                                      14250000                
       SPACE                                                            14260000                
*      FIRST PLUG PL$MCT IS THIS IS MULTI-COMPONENT TERMINAL            14270000                
       B     IIMCT                     FOR MCT (1050) ONLY              14290000                
.*                                                                      14300000                
.NMCT9 ANOP                            . CONTINUE HERE                  14310000                
.*                                                                      14320000                
       SPACE                                                            14330000                
       ENTRY ISREQ1                                                     14340000                
ISREQ1 EQU   *                                                          14350000                
       TBF   PLOPC(,XR2),OPJRSH        RESCHEDULE ONLY REQUEST AND      14354000                
       TBN   PLOPC(,XR2),OPGET         DOES OP INVOLVE GET              14360000                
       TBF   PLOPM(,XR2),OPSTOP        BUT NOT STOP OP                  14370000                
       JF    ISMVPS                    JUMP IF GET NOT INVOLVED         14380000                
       SPACE                                                            14390000                
*      OPERATION TO TERMINAL INVOLVES GET SO SET ON TUBIIS BIT          14400000                
       SPACE                                                            14410000                
       SBN   TUBAT2(,XR1),TUBIIS       SET ON READ SCHEDULED BIT        14420000                
       SPACE                                                            14430000                
ISMVPS EQU   *                         SET UP POST FIELD                14440000                
       AIF   (&NSIMS).NMSG3            . SKIP IF CPU MSG & NO PORTS @21 14440700                
       TBF   PLOPM(,XR2),OPSTOP+OPDISC STOP INVITE OR DISCONNECT?   @08 14441400                
       TBN   PLOPC(,XR2),OPPUT         OR NOT A PUT OPERATION.      @08 14442100                
       JF    ISPOST                    JUMP IF EITHER.              @08 14442800                
       AIF   (&PORT).NSIO9             . SKIP IF NO PORTS SUPPORTED @21 14443500                
       TBN   TUBPHY(,XR1),TUBAPT       IS THIS A PORT TUB?          @21 14444200                
       JT    ISCNPT                    YES, THEN GO CANCEL THE PUT. @08 14444900                
.NSIO9 ANOP                                                         @08 14445600                
       AIF   (&NCPUM).NMSG1            . SKIP IF CPU MSG SUPPRESSED @18 14446300                
       J     ISPOST                    SKIP TO POST                 @18 14447000                
       AGO   .NMSG2                    . SKIP TO SUPPRESS CODE      @18 14447700                
.NMSG1 ANOP                                                         @18 14448400                
       CLI   TUBPHY(,XR1),TUBCPU       IS THE IO TO A CPU?              14450000                
       JNE   ISPOST                    GO TO POST CM IF NOT             14460000                
       L     PLRECA(,XR2),XR1          POINT TO RECORD AREA             14490000                
       CLI   0(,XR1),SMESG             IS THIS AN 'S' MESSAGE TO A CPU? 14500000                
       JNE   ISPOST                    BRANCH TO POST IF NOT            14510000                
.NMSG2 ANOP                                                         @18 14512000                
ISCNPT MVI   PLRECA-1(,XR2),NOBIT      ZERO RECORD ADDRESS          @08 14515000                
       SBF   PLOPC(,XR2),OPPUT         SET TO IGNORE THE PUT            14520000                
       TBN   PLOPC(,XR2),OPGET         IS A GET TO BE DONE?             14530000                
       JF    ISREGS                    SKIP POST AND WAIT IF YES        14540000                
.NMSG3 ANOP                                                         @18 14545000                
       EJECT                                                            14550000                
       SPACE 2                                                          14560000                
*********************************************************************** 14570000                
*   QUEUE THE PARAMETER LIST ON THE APPROPRIATE LCB CHAIN             * 14580000                
*********************************************************************** 14590000                
       SPACE 2                                                          14600000                
ISPOST EQU   *                                                          14610000                
       B     IIQSUB                    BRANCH TO QUEUE THE LCB          14620000                
*                                      XR1 POINTS TO CM OR CS ECB.      14625000                
       SPACE 1                                                          14630000                
*********************************************************************** 14640000                
*  BRANCH TO POST ROUTINE                                             * 14650000                
*********************************************************************** 14660000                
       SPACE                                                            14670000                
       MVI   PLECB(,XR2),NOBIT         CLEAR ECB FLAG BYTE              14680000                
       CCP   ENABLE,PMRQ               REENABLE INTERRUPTS              14690000                
       SBF   $FLGC,#NTRAC              ALLOW TRACE                      14700000                
       SVC   0                         SUPERVISOR CALL                  14720000                
       DC    XL1'05'                   RIB FOR POST                     14730000                
       SPACE 3                                                          14740000                
*********************************************************************** 14770000                
*            W A I T                                                  * 14780000                
*********************************************************************** 14790000                
       SPACE 2                                                          14800000                
       TBN   PLOPM(,XR2),OP$SYS        IS THIS REQUST TO BE WAITED ON?  14810000                
       JF    ISREGS                    BRANCH IF NOT                    14820000                
       LA    PLECB(,XR2),XR1           POINT TO THE ECB                 14830000                
ISWAIT SVC   0                         SUPERVISOR CALL                  14840000                
       DC    XL1'03'                   RIB FOR WAIT                     14850000                
       TBN   0(,XR1),IIPOST            WAS MY ECB POSTED?               14860000                
       BF    ISWAIT                    LOOP BACK TO WAIT IF NOT         14870000                
       SPACE 3                                                          14880000                
*********************************************************************** 14890000                
* RETURN HERE AFTER WAIT SATISFIED WITH POST                          * 14900000                
*********************************************************************** 14910000                
       SPACE                                                            14920000                
ISREGS EQU   *                         RESTORE THE REGISTERS            14930000                
       B     CC4TT                     BRANCH TO TRACE                  14940000                
       DC    AL1(TTIIRT)               TRACE ID                         14950000                
       L     NCTCB@,XR1                POINT TO THE TCB                 14960000                
       CCP   DISABL,PMRQ               DISABLE ALL INTERUPTS.       @05 14965000                
       MVC   IICARR,IIIIR(2,XR1)       SAVE THE RETURN ADDRESS          14970000                
       L     IIIX2(,XR1),XR2           RESTORE XR2                      14980000                
       L     IIIX1(,XR1),XR1           RESTORE XR1                      14990000                
       L     IICARR,IAR                RETURN TO CALLER                 15000000                
       EJECT                                                            15010000                
*********************************************************************** 15020000                
*                     CONSTANTS AND WORK AREAS                        * 15030000                
*********************************************************************** 15040000                
       SPACE                                                            15050000                
IIVTNT DS    AL2                       SAVE AREA FOR TNT ENTRY ADDRESS  15060000                
SMESG  EQU   C'S'                      IDENTIFIER FOR AN 'S' MESSAGE    15070000                
IISTNL EQU   6                         LENGHT OF SYMBOLIC TERMINAL NAME 15090000                
CC0006 DC    IL2'6'                    2-BYTE BINARY 6                  15100000                
IIZERO EQU   0                                                          15120000                
MCTIN  EQU   X'F0'                     INPUT COMPONENT BITS             15130000                
MCTOUT EQU   X'0F'                     OUTPUT COMPONENT BITS            15140000                
IIMAXK DC    AL2(0071)                 MAX OUTPUT LENGTH FOR CONSOLE    15150000                
IIMAXC DC    AL2(0107)                 MAX LENGTH FOR WTO               15160000                
ENABLE EQU   X'78'                     INTERRUPTS ENABLED               15170000                
DISABL EQU   X'79'                     INTERRUPTS DISABLED              15180000                
PMRQ   EQU   X'30'                     Q-CODE TO LOAD PMR               15190000                
IIWTO  EQU   X'10'                     FUNCTION CODE FOR WTO            15200000                
IIWTOR EQU   X'20'                     FUNCTION CODE FOR WTOR           15210000                
II@PRL DC    XL2'00'                   SAVE AREA FOR PARAMETER LIST @   15220000                
IIPOST EQU   X'40'                     ECB POST BIT                     15230000                
IIWAIT EQU   X'80'                     ECB WAIT BIT                     15240000                
IISKIP EQU   X'20'                     ECB SKIP BIT                     15250000                
IICARR DC    XL2'00'                   ARR SAVE AREA                    15260000                
IIIIR  EQU   TCBPL+1                   ARR SAVE AREA IN TCB             15270000                
IIIX1  EQU   TCBPL+3                   XR1 SAVE AREA IN TCB             15280000                
IIIX2  EQU   TCBPL+5                   XR2 SAVE AREA IN TCB             15290000                
IINODA EQU   X'20'                     CHARACTER FOR ZERO DATA - WTOR   15300000                
IIBLNK EQU   X'40'                     CHARACTER BLANK                  15310000                
DSFLAG EQU   X'002F'                   FLAG BYTE FOR ENVIRONMENT INDS.  15322000                
ENVSAV EQU   X'80'                     SAVE ENVIRONMENT.                15324000                
N2G0   EQU   X'0015'                   DISPATCHER ADDRESS.              15326000                
IITIMR EQU   X'00'                     TIMER HOURS/MINUTES/SECONDS      15340000                
IITMWT EQU   X'10'                     TIMER WAIT FLAG                  15350000                
IIWFLG EQU   X'07'                     WAIT FLAG DISPLACEMENT           15360000                
IILN10 DC    XL2'000A'                 WAIT DATA AREA LENGTH            15370000                
       SPACE 1                                                          15374000                
NHIGH  EQU   LO+EQ                     NOT HIGH TEST                @10 15378000                
NLOW   EQU   HI+EQ                     NOT LOW TEST                 @10 15382000                
NEQ    EQU   HI+LO                     NOT EQUAL TEST.              @10 15386000                
       EJECT                                                            15390000                
*   WTO OR WTOR PARAMETER LIST                                          15400000                
       SPACE                                                            15410000                
       DC    XL1'FF'                   TYPE AND FORMAT OF WTO           15420000                
       DC    AL1(X'00')                SYSTEM OPTIONS                   15430000                
       DC    CL2'CP'                   COMPONENT IDENTIFICATION (CCP)   15440000                
       DC    CL2'U-'                   MESSAGE ID - PART 1              15450000                
       DC    AL1(IIWTO)                FUNCTION AND OPTIONS         @15 15460000                
       DC    CL2'  '                   MESSAGE ID - PART 2              15470000                
       DC    AL1(00)                   TEXT LENGTH                  @15 15480000                
       DC    AL2(##)                   TEXT ADDRESS                 @15 15490000                
       DC    AL1(80)                   REPLY LENGTH                 @15 15500000                
IICNPM DC    AL2(##)                   REPLY ADDRESS                @15 15510000                
       SPACE                                                            15520000                
.*                                                                      15530000                
       AIF   (&NBS).TAB                . SKIP IF NO BSC OR PORTS    @21 15570000                
.*                                                                      15580000                
IIBOPC EQU   X'0F'                     DISPLACEMENT TO DTFOPC       @14 15583000                
IIBPUT EQU   X'40'                     DTFOPC BYTE FOR A PUT        @14 15586000                
IIWORK DC    XL2'00'                   WORK AREA FOR BLOCK LENGTH       15590000                
II19   DC    IL2'19'                   ADD LENGTH OF PARM LIST GETMAIN  15600000                
.TAB   ANOP                                                             15610000                
       EJECT                                                            15620000                
*********************************************************************** 15630000                
*  OP CODE VALIDITY TABLE                                             * 15640000                
*********************************************************************** 15650000                
       SPACE                                                            15660000                
IIINVD EQU   0                         INVALID OPERATION                15670000                
IIVKNS EQU   BIT5                      BIT IN VALIDITY BYTE FOR VALID   15680000                
*                                      OPERATION WITH CONSOLE           15690000                
IIVBLK EQU   BIT6                      BIT IN VALIDITY BYTE FOR VALID   15700000                
*                                      OPERATION WITH BLANK STN         15710000                
IIVSTN EQU   BIT7                      BIT IN VALIDITY BYTE FOR VALID   15720000                
*                                      OPERATION WITH STN               15730000                
TANDNE EQU   X'11'                     TRUE AND NOT EQUAL CONDITION     15740000                
       SPACE 3                                                          15750000                
* OP CODE VALIDITY TABLE                                                15760000                
       SPACE                                                            15770000                
       ENTRY IIVTBL                                                     15780000                
IIVTBL EQU   *                         USER OP  STN   BLANKS  CONSOLE   15790000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 00        X       X       X      15800000                
       DC    AL1(IIVSTN+IIVBLK)        01        X       X              15810000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 02        X       X       X      15820000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 03        X       X       X      15830000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 04        X       X       X      15840000                
       DC    AL1(IIVSTN+IIVBLK)        05        X       X              15850000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 06        X       X       X      15860000                
       DC    AL1(IIINVD)               07                               15870000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 08        X       X       X      15880000                
       DC    AL1(IIVSTN)               09        X                      15890000                
       DC    AL1(IIVSTN+IIVBLK)        10        X       X              15900000                
       DC    AL1(IIINVD)               11                               15910000                
       DC    AL1(IIINVD)               12                               15920000                
       DC    AL1(IIINVD)               13                               15930000                
       DC    AL1(IIINVD)               14                               15940000                
       DC    AL1(IIINVD)               15                               15950000                
       SPACE 2                                                          15960000                
*                                      BIT 5 ON - VALID OP FOR CONSOLE  15970000                
*                                      BIT 6 ON - VALID OP FOR BLANKS   15980000                
*                                      BIT 7 ON - VALID OP FOR SYMBOLIC 15990000                
*                                        TERMINAL NAME                  16000000                
       SPACE 4                                                          16010000                
IIVBYT DS    CL1                       VALIDITY BYTE - BIT SIGNIFICANT  16020000                
*                                      *** END OF MACRO '$E060 ******** 16030000                
       MEND                                                             16040000