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

⟦a5c8caadf⟧ s3xseg

    Length: 74422 (0x122b6)
    Types: s3xseg
    Names: »S$E060«

Derivation

└─⟦d0bc1a931⟧ Bits:30009189 5704-sc1.V08.ccp
    └─⟦64693a1c9⟧ 
        └─⟦this⟧ »S$E060« 

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.*                                                                    * 00030000                
.* NAME: $E060                                                        * 00040000                
.*                                                                    * 00050000                
.* MODIFICATION LEVEL: VERSION 7, MODIFICATION LEVEL 0                * 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  &BSCA                     . 1=BSCA SUPPORTED / 0=NOT       00250000                
       GBLB  &NOB                      . 1=BSCA *NOT* SUPPORTED / 0=IS  00260000                
.*                                                                      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  &NPBY                     . 0=BUSY PRINTER SUPPORTED       00352000                
.*                                     . 1=BUSY PRINTER NOT SUPPORTED   00354000                
.*                                                                      00356000                
       GBLB  &MIN                      . MAKE FUNCTIONS TRANSIENT/0=NO  00360000                
.*                                                                      00370000                
       GBLB  &RAI                      .   1=RESIDENT ACCEPT INPUT      00372000                
       GBLB  &NRAI                     .   0=TRANSIENT ACCEPT INPUT     00374000                
.*                                                                      00376000                
       GBLB  &NCPUM                    . *NO* CPU S MESSAGES            00377000                
.*                                     .   1=*NO* MSGS / 0=SEND MSGS    00378000                
.*                                                                      00379000                
.*---------  LOCAL VARIABLES USED  -----------------------------------* 00380000                
.*                                                                      00390000                
       LCLC  &#                        . USED FOR SINGLE BLANK          00400000                
.*                                                                      00410000                
       TEXT                                                             00420000                
.*                                                                      00430000                
&#     SETC  ' '                       . SINGLE BLANK                   00440000                
.*                                                                      00450000                
       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.                                     * 00640000                
*                                                                     * 00650000                
*      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 INVITE INPUT PARAMETER LIST IS    * 00760000                
*         DEQUEUED FROM THE TCBINQ CHAIN, AND 'CM' IS POSTED TO MOVE  * 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'.      * 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 BY MEANS OF QUEUING IT  * 01120000                
*         ON THE PARM CHAIN AND POSTING HIM.  IF THE OPERATION IS AN  * 01130000                
*         INVITE INPUT, THE PARAMETER LIST IS MOVED TO THE TUB.       * 01140000                
*                                                                     * 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                
*            14 - INVALID OP WITH NO INVITES OUTSTANDING              * 01360000                
*            15 - INPUT AREA NOT LARGE ENOUGH FOR BSCA GET BLOCK      * 01370000                
*            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                
*            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                
*                                                                     * 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                
*    RELEASE 3                                                        * 01720000                
*    @01/INCR/0ES0327 - WAIT OPERATION CODE FROM USER.                * 01730000                
*    @02/INCR/        - PROGRAM REQUEST UNDER FORMAT SUPPORT.         * 01740000                
*    @03/APAR/        - DEADLY EMBRACE FIX.                           * 01750000                
*    @04/INCR/ES0418  - RESIDENT ACCEPT OPTION                        * 01760000                
*    @05/APAR/S306386 - NEXT DOWN SEARCH IF ACQUIRE FAILED            * 01765000                
*    RELEASE 5                                                        * 01765800                
*    @06/APAR/S307603 - CORRECTS AN ABNORMAL TERMINATION OF MLTA.     * 01766600                
*    @07/APAR/S307609 - CORRECTS ID VERIFICATION ON A 3275 SW LINE.   * 01767400                
*    @08/APAR/S307694 - INCORRECT ADDITIONAL INVITES AFTER SHUTDOWN.  * 01768200                
*    @09/INCR/        - IOS PROC CHECK ON ALTERED SAVED Q BYTE.       * 01769000                
*    RELEASE 6                                                        * 01769100                
*    @10/APAR/S309195 - SUPRESS FREEMAIN OF 'S' MSG TO CPU RECORD AREA* 01769200                
*    @11/APAR/S309333 - INCORECT MOVE OF PARM LIST ON RESCHEDUAL      * 01769300                
*    @12/APAR/S309332 - SHUTDOWN AND REINVITE ONLY - INVALID OPCODE.  * 01769400                
*    @13/APAR/S308295 - MRTNEP ACCEPT WITH NO INVITED OWNED TUBS.     * 01769500                
*    @14/APAR/S308397 - GET ATTRIBUTES PC-HALT IF BAD TNT GIVEN.      * 01769600                
*    RELEASE 7                                                        * 01769620                
*    @15/APAR/S310771 - CONVERT TO USE SCP $DLOG MACRO.               * 01769640                
*    @16/INCR/ES0705  - BUSY PRINTER SUPPORT                          * 01769660                
*    @17/INCR/ES0708  - ALLOW S TYPE MESSAGES TO CPU TERMINALS        * 01769680                
*                                                                     * 01769700                
*********************************************************************** 01770000                
       EJECT                                                            01780000                
       SPACE                                                            01790000                
*********************************************************************** 01800000                
* ENTRY POINT FOR I/O INTERFACE FOR USER REUESTS                        01810000                
*********************************************************************** 01820000                
       SPACE                                                            01830000                
* UPON ENTRY FROM USER RELOCATABLE MODULE - XR2 POINTS AT PARM LIST     01840000                
       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                
* XR2 POINTS AT THE PARM LIST                                           01960000                
       MNN   IIMVBY+4,PLOPC(,XR2)      MOVE OP CODE TO DISPLACMENT      01970000                
       LA    IIVTBL,XR1                POINT XR1 AT OP CODE VALID. TBL. 01980000                
IIMVBY MVC   IIVBYT(1),*-*(,XR1)       GET VALIDITY BYTE FROM TABLE     01990000                
       SPACE                                                            02000000                
*                                  ------START----------------------@02 02010000                
       CLI   PLOPC(,XR2),OPPNW+OPRUF   IS THE OP IN THE VALID RANGE?    02020000                
*                                  -------END-----------------------@02 02030000                
       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                
       SPACE                                                            02090000                
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 P. L. 02140000                
       SLC   PL$RTC(4,XR2),PL$RTC(,XR2) CLEAR INTERNAL RETURN CODE      02150000                
*                                      AND INTERNAL OP CODE             02160000                
*                               ---------------------------- START -@01 02170000                
       CLI   PLOPC(,XR2),OPWAIT        IS OP WAIT REQUEST               02180000                
       JE    IIFOND                    JUMP TO ISSUE WAIT               02190000                
*                               ---------------------------- END ---@01 02200000                
       CLI   PLOPC(,XR2),OPSHQ         IS OP SHUTDOWN INQUIRY           02210000                
       JNE   IICKAI                    JUMP IF NOT SHUTDOWN INQUIRY     02220000                
       SPACE                                                            02230000                
*      SHUTDOWN INQURITY OP CODE                                        02240000                
       TBN   $FLGA,CPSHUT              HAS SHUTDOWN BEEN REQUESTED      02250000                
       JF    IIBBCK                    JUMP IF NOT                      02260000                
       SPACE                                                            02270000                
*      SHUTDOWN REQUESTED SO PLUG IN PROPER RETURN CODE                 02280000                
       MVI   PLRTC(,XR2),RCXSHD        PLUG SHUTDOWN REQUESTED RTN CODE 02290000                
IIBBCK EQU   *                         BRACN TO GO BACK                 02300000                
       B     IITEND                    BR TO RETURN TO USER             02310000                
       SPACE                                                            02320000                
*      CHECK OP CODE TO SEE IF IT'S AN ACCEPT INPUT                     02330000                
       SPACE                                                            02340000                
IICKAI EQU   *                         CHECK FOR ACCEPT INPUT           02350000                
       TBN   PLOPC(,XR2),OPACI         IS THIS AN ACCEPT INPUT?         02360000                
       TBF   PLOPC(,XR2),BIT4+BIT6+BIT7  AND NOTHING ELSE?              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 OPERTAION                        02410000                
       EJECT                                                            02420000                
*********************************************************************** 02430000                
* LOCATE SYMBOLIC TERMINAL NAME IN THE TERMINAL NAME TABLE              02440000                
*********************************************************************** 02450000                
       SPACE                                                            02460000                
       L     @TNT,XR1                  POINT XR1 AT FIRST TNT ENTRY     02470000                
* CHECK FOR END OF TNT                                                  02480000                
* XR1 POINTS AT TNT                                                     02490000                
       SPACE                                                            02500000                
       L     PLRECA(,XR2),XR2          POINT XR2 AT RECORD AREA         02510000                
       SPACE                                                            02520000                
IITNTN CLI   TNTCCP(,XR1),STOPER       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                
       SPACE                                                            02570000                
       CLC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1)    COMPARE TNT STN       02580000                
       JH    IILOOK                    JUMP HIGH TO LOOK AGAIN          02590000                
       JE    IIFOND                    JUMP IF FOUND IN TNT             02600000                
       SPACE                                                            02610000                
* NOT FOUND - HAVE PROGRAM ERROR                                        02620000                
       SPACE                                                            02630000                
IINFND EQU   *                         STN NOT FOUND IN TNT             02640000                
       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                
       JE    IIGTA                     SKIP TERMINATION IF YES          02680000                
       B     C4TI2                     BRANCH TO TERMINATION            02690000                
       DC    AL1(TCCNNF)               TERMINAL NAME NOT FOUND          02700000                
       SPACE                                                            02710000                
*  LOOK SOME MORE                                                       02720000                
* DETERMINE HOW MUCH TO BUMP TNT REGITER POINTER                        02730000                
       SPACE                                                            02740000                
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                
       EJECT                                                            02780000                
*********************************************************************** 02790000                
*  SYMBOLIC TERMINAL NAME WAS FOUND IN TNT                            * 02800000                
* DETERMINE IF OPERATION IS VALID FOR THE TYPE TNT ENTRY FOUND        * 02810000                
*********************************************************************** 02820000                
       SPACE                                                            02830000                
* XR1 POINTS AT PROPER TNT ENTRY                                        02840000                
       SPACE                                                            02850000                
IIFOND EQU   *                         STN FOUND IN TNT                 02860000                
       L     II@PRL,XR2                RESTORE PARM LIST POINTER        02870000                
       B     CC4TT                     BRANCH TO TRACE ROUTINE          02880000                
       DC    AL1(TTII)                 TRACE FOR $CC4II                 02890000                
*                               ---------------------------- START -@01 02900000                
       CLI   PLOPC(,XR2),OPWAIT        IS OP WAIT REQUEST               02910000                
       JNE   IICKNM                    JUMP IF NOT WAIT REQUEST         02920000                
       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                
IIWAT1 EQU   *                                                          03000000                
       ALC   PLRECA(2,XR2),CC0006      BUMP POINTER TO DATA AREA        03010000                
       L     PLRECA(,XR2),XR2          LOAD WAIT DATA AREA POINTER      03020000                
       MVI   IIZERO(,XR2),IITIMR       SET TIME INDICATOR FOR HHMMSS    03030000                
       SBN   IIZERO(,XR2),IITMWT       SET THE WAIT FLAG                03040000                
       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                
IICKNM EQU   *                                                          03100000                
*                               ---------------------------- END ---@01 03110000                
       L     PLRECA(,XR2),XR2          RESTORE RECORD AREA POINTER      03120000                
       SPACE                                                            03130000                
       TBN   TNTFLG(,XR1),TNTBLK       IS STN ALL BLANKS                03140000                
       JF    IINBLK                    JUMP IF NOT ALL BLNAKS           03150000                
       SPACE                                                            03160000                
*      HAVE SYMBOLIC TERMINAL NAME OF ALL BLANKS                        03170000                
       SPACE                                                            03180000                
*      THUS THE TERMINAL TO WHICH THE OPERATION IS DIRECTED IS          03190000                
*      THE ONE AND ONLY REQUESTOR OF A SINGLE REQUESTOR PROGRAM         03200000                
       SPACE                                                            03210000                
* DETERMINE IF OPERATION IS VALID FOR STN OF ALL BLANKS                 03220000                
       SPACE                                                            03230000                
       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                
       SPACE                                                            03280000                
       B     C4TI2                     BRANCH TO TERMINATION            03290000                
       DC    AL1(TCCIBL)               INVALID BLANK NAME               03300000                
       EJECT                                                            03310000                
IICKBK EQU   *                         CHECK VALIDITY OF BLANK NAME     03320000                
       SPACE                                                            03330000                
*      FIRST CHECK TO SEE IF PROGRAM IS NON-MRTS PROGRAM                03340000                
       SPACE                                                            03350000                
       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                
       SPACE                                                            03410000                
       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                
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                
       SPACE                                                            03560000                
*      BLANK NAME COMPLETELY VALID                                      03570000                
       SPACE                                                            03580000                
IIKRQ  EQU   *                                                          03590000                
       L     TUBTNT(,XR1),XR1          POINT XR1 AT THIS TUBS TNT ENTRY 03600000                
       MVC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) MOVE STN TO RECORD AREA  03610000                
       J     IINBLK                    JUMP TO HANDLE FURTHER           03620000                
       SPACE                                                            03630000                
*      ERROR  - BLANK NAME TO NON-MRTS WITH REQUESTOR RELEASED ALREADY  03640000                
       SPACE                                                            03650000                
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                
*********************************************************************** 03720000                
       SPACE                                                            03730000                
*      XR1   POINTS TO TNT ENTRY                                        03740000                
*      ASSURE THAT THIS TNT HAS BEEN ASSIGNED TO A TUB                  03750000                
       SPACE                                                            03760000                
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 ASSINGED TO A TUB                          03810000                
       SPACE                                                            03820000                
       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                
       L     II@PRL,XR2                POINT XR2 AT PARM LIST           03870000                
.*                                                                      03880000                
       AIF   (&NOM).NML1               . SKIP IF *NO* MLTA              03890000                
.*                                                                      03900000                
*********************************************************************** 03910000                
*      FOR 1050 ONLY                                                    03920000                
*********************************************************************** 03930000                
       SPACE                                                            03940000                
*      DETERMINE IF THIS IS SUB-TERMINAL NAME                           03950000                
       SPACE                                                            03960000                
       MVC   PL$MCT(1,XR2),TNTMCT(,XR1) MOVE MCT INDICES INTO PARM LIST 03970000                
       CLI   TNTMCT(,XR1),NOBIT        IS THIS SUB-TERMINAL NAME        03980000                
       JE    IISTNT                    JUMP IF NOT SUB-TERMINAL NAME    03990000                
       SPACE                                                            04000000                
*      HAVE SUB-TERMINAL NAME SO MUST GET ADDR OF MASTER TNT FROM       04010000                
*      TNTTNT FIELD                                                     04020000                
       SPACE                                                            04030000                
       L     TNTTNT(,XR1),XR1          POINT XR1 AT  MASTER TNT         04040000                
       SPACE                                                            04050000                
.NML1  ANOP                                                             04060000                
       ENTRY IISTNT                                                     04070000                
IISTNT EQU   *                         SAVE TNT ADDR                    04080000                
*********************************************************************** 04090000                
       ST    IIVTNT,XR1                SAVE TNT ENTRY ADDRESS           04100000                
       MVC   PLTUBA(2,XR2),TNTTUB(,XR1)  MOVE TUB @ TO PARM LIST        04110000                
IIGTA  ALC   PLRECA(2,XR2),CC0006      ADD STN LENGTH TO BUMP RECORD    04120000                
*                                      ADDRESS TO DATA ADDRESS          04130000                
       EJECT                                                            04140000                
       SPACE                                                            04150000                
* CHECK REQUEST TYPE - DETERMINE IF IT IS STATUS REQUEST                04160000                
       SPACE                                                            04170000                
       TBN   PLOPC(,XR2),OPSTAT        IS IT STATUS OPERATION           04180000                
       JF    IITKNS                    JUMP IF NOT NOT STATUS OPERATION 04190000                
       SPACE                                                            04200000                
*      HAVE STATUS OPERATION (RELEASE OR GET ATTRIBUTES)                04210000                
       SPACE                                                            04220000                
       ST    PL$TNT(,XR2),XR1          PLUG TNT ADDR INTO PARM LIST     04230000                
       B     CC4PI                     BRACNH TO BRING IN TRANSIENT     04240000                
       DC    AL1(CC4GA)                GET ATTRIBUTES TRANSIENT ID      04250000                
       SPACE                                                            04260000                
       CCP   DISABL,PMRQ               DISABLE INTERUPTS.               04310000                
       CLI   PLTUBA-1(,XR2),NOBIT      TEST IF TUB WAS FOUND?       @14 04312000                
       BE    IITEND                    NO THEN EXIT II.             @14 04314000                
       SPACE                                                            04316000                
       L     NCTCB@,XR1                POINT XR1 AT CURRENT TCB         04320000                
       CLI   TCBCMP(,XR1),NOBIT        IS TCB COMPLETION CODE ZERO      04330000                
.*                                                                      04340000                
       AIF   (&DFF).MAP1               . SKIP IF DFF SUPPORTED          04350000                
.*                                                                      04360000                
       BE    IISEND                    BRANCHOUT IF ZERO (OK)           04370000                
.*                                                                      04380000                
.MAP1  AIF   (&NDF).NMAP1              . SKIP IF *NO* DFF SUPPORT       04390000                
.*                                                                      04400000                
       JNE   IIBTCB                    BRANCH TO HALT IF NON-ZERO       04410000                
       SPACE                                                            04420000                
*********************************************************************** 04430000                
*  CHECK FOR MAPPING IF GOOD COMPLETION CODE                          * 04440000                
*********************************************************************** 04450000                
       SPACE                                                            04460000                
       TBN   PLOPC(,XR2),OPREL         IS THIS A RELEASE REQUEST?       04470000                
       BT    IIMAPP                    BRANCH TO MAPPING IF YES         04480000                
       B     IISEND                                                     04490000                
.NMAP1 ANOP                                                             04500000                
       EJECT                                                            04510000                
*********************************************************************** 04520000                
* BAD TCB COMPLETION CODE                                             * 04530000                
*********************************************************************** 04540000                
       SPACE                                                            04550000                
       ENTRY IIBTCB                                                     04560000                
IIBTCB EQU   *                                                          04570000                
       MVC   IITCMP(1),TCBCMP(,XR1)    MOVE TCB COMP CODE SUCH THAT ARR 04580000                
*                                      POINTS TO IT                     04590000                
       SPACE                                                            04600000                
       B     C4TI2                     BRANCH TO TERMINATE THIS TASK    04610000                
IITCMP DS    CL1                       TCB COMPLETION CODE              04620000                
       SPACE                                                            04630000                
*********************************************************************** 04640000                
* DETERMINE IF THIS TUB IS THE CONSOLE                                  04650000                
*********************************************************************** 04660000                
       SPACE                                                            04670000                
IITKNS EQU   *                         TEST FOR CONSOLE TUB             04680000                
       TBN   TNTFLG(,XR1),TNTKNS       IS IT CONSOLE                    04690000                
       L     TNTTUB(,XR1),XR1          POINT XR1 AT TUB                 04700000                
       JT    IIKNSL                    JUMP IF CONSOLE TO CONSOLE HNDLR 04710000                
       SPACE                                                            04720000                
* HAVE REQUEST TO TERMINAL - VALIDATE IT                                04730000                
       EJECT                                                            04740000                
*********************************************************************** 04750000                
* PREPARE FOR PHYSICAL TP IO - MUST VALIDATE REQUEST FIRST              04760000                
*********************************************************************** 04770000                
       SPACE                                                            04780000                
* VALIDATE THAT THIS TUB BEONGS TO TCB REQUESTING IT                    04790000                
       SPACE                                                            04800000                
       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                
       SPACE                                                            04870000                
       B     C4TI2                     BRANCH TO TERMINATION            04880000                
       DC    AL1(TCCNAP)               TERMINAL NOT ALLOCATED TO PROG   04890000                
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 CORRECT 04960000                
*                                      TNT ENTRY                        04970000                
       CLC   TUBTNT(2,XR1),IIVTNT      DOES TUB PT TO PROPER TNT        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                
       SPACE                                                            05030000                
       B     C4TI2                     BRANCH TO TERMINATION            05040000                
       DC    AL1(TCCNAN)               NOT ALLOCATED BY THIS NAME       05050000                
       EJECT                                                            05060000                
* ASSURE TERMINAL DOES NOT HAVE OUTSTANDING IMPLICIT INVITE INPUT       05070000                
* ONLY ACCEPT INPUT CAN BE ISSUED TO TERMINAL WITH IMPLICIT INVITE INPT 05080000                
*   WHICH HAS NOT BEEN SATISFIED                                        05090000                
       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 INV. INPUT 05150000                
*  UNSATISFIED                                                          05160000                
* DATA FROM PROGRAM REQUEST OUTSTANDING                                 05170000                
       SPACE                                                            05180000                
       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 INVITE INP 05250000                
       SPACE                                                            05260000                
*      TEST FOR TUB IN COMMAND INTERRUPT MODE                           05270000                
*      IF YES, THEN MUST HAVE INVITE OUTSTANDING TO TERMINAL            05280000                
       SPACE                                                            05290000                
       TBN   TUBAT2(,XR1),TUBDTA+TUBCMD IS TUB IN COM'ND INTERRUPT MODE 05300000                
       JT    IIVSCH                    JUMP IF CMD INT SINCE INV SCHED. 05310000                
       TBN   TUBAT2(,XR1),TUBIIS       IS INVITE INPUT SCHEDULED ON TUB 05320000                
       JF    IINIIS                    JUMP IF NO INVITE SCHEDULED      05330000                
       SPACE                                                            05340000                
       EJECT                                                            05350000                
*      HAVE INVITE INPUT SCHEDULED - THIS OP IS VALID ONLY IF IT IS     05360000                
* A STOP INVITE INPUT                                                   05370000                
       SPACE                                                            05380000                
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                
*      INVALID OPERATION WITH INVITE INPUT OUTSTANDING                  05430000                
       SPACE                                                            05440000                
       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                
       SPACE                                                            05490000                
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                
       SPACE                                                            05550000                
       B     C4TI2                     BRANCH TO TERMINATION            05560000                
       DC    AL1(TCCNIO)               NO INVITES OUTSTANDING           05570000                
       EJECT                                                            05580000                
IIIOCP EQU   *                         CHECK FOR PROPER IO CAPABILITY   05590000                
*********************************************************************** 05600000                
       MNN   IIIOTS+1,PLOPC(,XR2)      MOVE RIGHTMOST 4 BITS OF OP CODE 05610000                
*                                      TO TBN INSTURCTION               05620000                
       SBF   IIIOTS+1,X'FC'            SET OFF ALL BUT RIGHTMOST 2 BITS 05630000                
       SPACE                                                            05640000                
* NOW READY TO TEST TERMINAL CHARACTERISTICS VS REQUEST IO              05650000                
       SPACE                                                            05660000                
IIIOTS TBN   TUBCHR(,XR1),*-*          TEST TUB FOR IO CAPABILITY       05670000                
       JT    IIRQTY                    JUMP IF I/O OKAY                 05680000                
       SPACE                                                            05690000                
*I/O CAPABILTY DOES NOT MATCH REQUEST                                   05700000                
       SPACE                                                            05710000                
       B     C4TI2                     BRANCH TO TERMINATION            05720000                
       DC    AL1(TCCIOC)               I/O CAPABILITY DOES NOT MATCH    05730000                
* DETERMINE REQUEST TYPE                                                05740000                
       SPACE                                                            05750000                
* VALIDATE OP CODE AND MODIFIER TO EXTENT THAT THOSE BITS THAT MUST     05760000                
* BE OFF FOR A USER REQUEST ARE OFF                                     05770000                
       SPACE                                                            05780000                
* CHECK THAT OP CODE IS VALID FOR CONSOLE AS TERMINAL NAME              05790000                
       SPACE                                                            05800000                
IIKNSL EQU   *                         CONSOLE REQUEST HANDLER          05810000                
       TBN   IIVBYT,IIVKNS             IS OP VALID FOR CONSOLE          05820000                
*                                  ------START----------------------@02 05830000                
       CLI   PLOPC(,XR2),OPPUT+OPRUF   AND NOT A RUF PUT MESSAGE ?      05840000                
       JC    IIKLEN,TANDNE             JUMP IF VALID                    05850000                
*                                  ------END------------------------@02 05860000                
       SPACE                                                            05870000                
* ERROR - HAVE OP CODE WHICH IS VALID OP BUT NOT FOR CONSOLE            05880000                
       SPACE                                                            05890000                
       B     C4TI2                     BRANCH TO TERMINATION            05900000                
       DC    AL1(TCCIOK)               INVALID OP FOR CONSOLE           05910000                
       EJECT                                                            05920000                
       SPACE                                                            05930000                
*    CHECK FOR OUTPUT LENGTH TO CONSOLE TOO LARGE                       05940000                
       SPACE                                                            05950000                
IIKLEN EQU   *                         TEST CONSOLE LENGTH FOR > 71/107 05960000                
       TBN   PLOPC(,XR2),OPPUT         IS THIS AN OUTPUT OPERATION?     05970000                
       JF    IIRQTY                    BRANCH IF NOT                    05980000                
       CLC   PLOUTL(2,XR2),IIMAXK      LENGTH GREATER THAN 71?          05990000                
       JNH   IIRQTY                    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                
IITOLG EQU   *                                                          06050000                
       SPACE                                                            06060000                
*  ERROR - OUTPUT LENGTH TO CONSOLE GREATER THAN 71 FOR WTOR OR         06070000                
*          GREATER THAN 117 FOR A WTO.                                  06080000                
       SPACE                                                            06090000                
       B     C4TI2                     BRANCH TO TERMINATION            06100000                
       DC    AL1(TCCIKL)               INVALID CONSOLE LENGTH           06110000                
       SPACE                                                            06120000                
IIRQTY EQU   *                                                          06130000                
       TBF   PLOPM(,XR2),OP$SYS+OPOLT+OPDISC+OPUNAM CHECK OP MOD BITS   06140000                
*                                      TO ASSURE VALIDITY SET           06150000                
       JT    IIVLNO                    JUMP IF OKAY                     06160000                
       SPACE                                                            06170000                
* ERROR - OP MODIFER HAS INVALID BITS FOR USER REQUEST                  06180000                
       SPACE                                                            06190000                
       B     C4TI2                     BRANCH TO TERMINATION            06200000                
       DC    AL1(TCCIOP)               INVALID OP OR MODIFIER           06210000                
       EJECT                                                            06220000                
*      VALIDATE RECORD LENGTHS PASSED IN THE PARM LIST FROM THE USER    06230000                
       SPACE                                                            06240000                
IIVLNO EQU   *                         VALIDATE OUTPUT LENGTH           06250000                
       SPACE                                                            06260000                
.*                                                                      06270000                
       AIF   (&NOM).NML2               . SKIP IF *NO* MLTA SUPPORT      06280000                
.*                                                                      06290000                
       B     IIMCT                     BRN TO SEE IF MCT AND VALID      06300000                
       SPACE                                                            06310000                
.NML2  ANOP                                                             06320000                
       ENTRY IIVLNN                                                     06330000                
IIVLNN EQU   *                                                          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                
       SPACE                                                            06390000                
       CLC   PLOUTL(2,XR2),X$0000      COMPARE LENGTH VS ZERO           06400000                
       JH    IIFUTH                    JUMP IF GREATER THAN ZERO        06410000                
       TBF   TUBAT1(,XR1),TUBKNM         IS THIS THE CONSOLE?           06420000                
       JF    IIIOL                     BRANCH TO ERROR IF YES           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                
       SPACE                                                            06490000                
       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   (&NOB).NBSC1              . SKIP IF *NO* BSCA SUPPORT      06560000                
.*                                                                      06570000                
*   ZERO LENGTH IS OK IF THIS IS PUT-EOT/EOB AND HE OWNS THE BSCA LINE  06580000                
       SPACE                                                            06590000                
       ENTRY IIVLNP                                                     06600000                
IIVLNP EQU   *                                                          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                
*                                  -----START-----------------------@02 06700000                
       TBF   PLOPC(,XR2),OPRUF-OPEAU   AND NOT A RUF PUT ?              06710000                
       JT    IIVLNI                    BRANCH IF YES - LENGTH OK        06720000                
*                                  ------END------------------------@02 06730000                
.BEEP  ANOP                                                             06740000                
.NBSC1 ANOP                                                             06750000                
* ERROR HAVE OUTPUT LENGTH NOT GREATER THAN ZERO                        06760000                
       SPACE                                                            06770000                
       ENTRY IIIOL                                                      06780000                
IIIOL  EQU   *                                                          06790000                
       B     C4TI2                     BRANCH TO TERMINATION            06800000                
       DC    AL1(TCCIOL)               INVALID OUTPUT LENGTH            06810000                
       EJECT                                                            06820000                
       SPACE 2                                                          06830000                
*   CHECK FOR OUTPUT LENGTH GREATER THAN TP BUFFER LENGTH               06840000                
       SPACE                                                            06850000                
IIFUTH EQU   *                                                          06860000                
       AIF   (&NOB).NBTH                                                06870000                
       TBN   TUBTA2(,XR1),TASITB       IS THIS PUT WITH ITB?            06880000                
       JF    IINITB                    BRANCH IF NOT                    06890000                
       CLC   PLOUTL(2,XR2),TUBRCL(,XR1) OUTPUT LENGTH < RECORD LENGTH?  06900000                
       JNL   IINITB                    BRANCH PAST TERMINATION IF NOT   06910000                
       SPACE                                                            06920000                
*     *ERROR*   OUTPUT LENGTH LESS THAT RECORD LENGTH FOR PUT ITB       06930000                
       SPACE                                                            06940000                
       B     C4TI2                     BRANCH TO TERMINATION            06950000                
       DC    AL1(TCCITB)                                                06960000                
IINITB EQU   *                                                          06970000                
       TBN   PLOPC(,XR2),OPBLK         IS THIS PUT EOT/EOB?             06980000                
       TBF   TUBTA1(,XR1),TASDFF       AND NOT MAPPING?                 06990000                
       TBN   TUBCHR(,XR1),TUBLNE       BSCA?                            07000000                
       JF    IIVLNI                    BRANCH OUT IF NOT ALL            07010000                
       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                
*                                  ------START----------------------@03 07070000                
       CLC   IIWORK(2),#TPPUT          IS OUTPUT LENGTH GREATER?        07080000                
*                                  ----END--------------------------@03 07090000                
       JNH   IIVLNI                    BRANCH PAST TERMINATION IF NOT   07100000                
       SPACE                                                            07110000                
*   *ERROR*  OUTPUT LENGTH IS GREATER THAN TP BUFFER LENGTH             07120000                
       SPACE                                                            07130000                
       B     C4TI2                     BRNACH TO TERMINATION            07140000                
       DC    AL1(TCCLRG)                                                07150000                
       EJECT                                                            07160000                
       SPACE                                                            07170000                
* CHECK INPUT LENGTH FOR GREATER THAN ZERO IF APPROPRIATE               07180000                
       SPACE                                                            07190000                
.NBTH  ANOP                                                             07200000                
       ENTRY IIVLNI                                                     07210000                
IIVLNI EQU   *                         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                
*                                      OPERATION IS SCHEDULED ON TERMIN 07270000                
       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                
       SPACE                                                            07320000                
       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   (&NOB).NBS3               . SKIP IF *NO* BSCA SUPPORT      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                
       JF    IIINRT                    BRANCH OUT IF NOT                07460000                
       CLC   PLINL(2,XR2),TUBRCL(,XR1) IS RECORD AREA LARGE ENOUGH?     07470000                
       JNL   IIINRT                    BRANCH OUT IF YES                07480000                
       SPACE                                                            07490000                
*   ERROR - RECORD AREA NOT LARGE ENOUGH FOR BSCA ITB                 * 07500000                
       SPACE                                                            07510000                
       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   (&NOB).NBS31              . SKIP IF *NO* BSCA SUPPORT      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   $BDOPC(,XR1),$BOPUT       WAS LAST OPERATION A PUT?        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                
       SPACE                                                            07860000                
*                                  -----START-----------------------@03 07870000                
       CLC   PLINL(2,XR2),#TPANY        COMPARE INPUT LENGTH VS TP BUF  07880000                
*                                  -----END-------------------------@03 07890000                
       JNH   IIIREQ                    JUMP IF INPUT LENGTH NOT HIGH    07900000                
       SPACE                                                            07910000                
*      ERROR - FOR INVITE INPUT - THE INPUT LENGTH IS GT TP BUFFER SIZE 07920000                
       SPACE                                                            07930000                
       B     C4TI2                     BRANCH TO TERMINATION            07940000                
       DC    AL1(TCCTPB)               TP BUFFER LENGTH PROBLEM         07950000                
       EJECT                                                            07960000                
       SPACE 5                                                          07970000                
*********************************************************************** 07980000                
* POST $CC4CM AND ISSUE WAIT                                          * 07990000                
*            OR ISSUE WTO/WTOR FOR CONSOLE REQUEST                    * 08000000                
*********************************************************************** 08010000                
       SPACE                                                            08020000                
IIOUTR EQU   *                                                          08030000                
       SPACE                                                            08040000                
       ENTRY IIIREQ                                                     08050000                
IIIREQ EQU   *                         I/O INTERFACE REQUEST            08060000                
       SPACE                                                            08070000                
* DETERMINE IF REQUEST IS FOR CONSOLE OR $CC4CM                         08080000                
       SPACE                                                            08090000                
       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                  08130000                
       AIF   (&NPBY).NBSY1             SKIP IF NOT BUSY PRINTER         08132000                
       JT    IIBUSY                    NOT CONSOLE,TEST BUSY PRNT       08134000                
       AGO   .NM2RT                                                     08136000                
.NBSY1 ANOP                                                             08138000                
       JT    IIUPST                    NOT CONSOLE, GO TO POST          08140000                
.NM2RT ANOP                                                             08143000                
       AIF   (&NDF).SK1RT              SKIP IF NOT MAPPING              08146000                
       JT    IICKMP                    NOT CONSOLE, CHECK FOR MAPPING   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    @15 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                
       MVC   $LGOL(1,XR2),PLOUTL(,XR1) MOVE IN OUTPUT LENGTH        @15 08330000                
       MVC   $LGOAA(2,XR2),PLRECA(,XR1)  MOVE IN RECORD AREA ADDRESS@15 08340000                
       MVC   $LGON(1,XR2),PLINL(,XR1)  MOVE IN INPUT LENGTH         @15 08350000                
       MVC   $LGO@@(2,XR2),PLRECA(,XR1)  MOVE IN RECORD AREA ADDRESS@15 08360000                
       MVI   $LGOTY(,XR2),IIWTO        SET OP CODE TO WTO           @15 08370000                
       TBN   PLOPC(,XR1),OPGET         IS THIS A WTOR?                  08380000                
       JF    IIDOIT                    BRANCH IF YES                    08390000                
       MVI   $LGOTY(,XR2),IIWTOR       SET OP CODE TO WTOR          @15 08400000                
       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                
       SLC   PLEFFL(2,XR1),PLEFFL(,XR1)  SET EFFEL TO ZERO              08530000                
       L     PLRECA(,XR1),XR2          POINT TO THE RECORD AREA         08540000                
       CLI   0(,XR2),IINODA            WAS ANY DATA ENTERED?            08550000                
       JE    IICDNE                    BRANCH OUT IF YES-EFFL = 0       08560000                
       MVC   PLEFFL(2,XR1),PLINL(,XR1) SAVE MAXIMUM INPUT LENGTH        08570000                
       A     PLINL(,XR1),XR2           POINT TO THE                     08580000                
IICLOP A     IIMIN1,XR2                            END OF THE AREA      08590000                
       CLI   0(,XR2),IIBLNK            IS THE CHARACTER A BLANK?        08600000                
       JNE   IICDNE                    BRANCH OUT IF YES                08610000                
       SLC   PLEFFL(2,XR1),X$0001      DECREMENT EFFL BY ONE            08620000                
       B     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                
       SPACE                                                            08820000                
       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                
IIAGIN CLI   0(,XR1),STOPER            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                
       SPACE                                                            08930000                
       B     C4TI2                     BRANCH TO TERMINATION            08940000                
       DC    AL1(TCCICN)               INVALID COPY DUE TO NAME NF      08950000                
       SPACE                                                            08960000                
IINSTP CLC   IISTNL-1(IISTNL,XR2),IISTNL-1(,XR1) IS THIS TNT FOR COPY?  08970000                
       JE    IITNT                     BRANCH IF YES                    08980000                
       LA    TNTLN(,XR1),XR1           POINT TO NEXT TNT                08990000                
       B     IIAGIN                    GO CHECK THIS ONE                09000000                
       EJECT                                                            09010000                
IITNT  L     TNTTUB(,XR1),XR1          POINT TO COPY TUB                09020000                
       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                
IIINCP EQU   *                         INVALID DEVICE FOR COPY          09140000                
       SPACE                                                            09150000                
*   ERROR - COPY REQUEST INVALID WITH 3275                            * 09160000                
       SPACE                                                            09170000                
       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                
       SPACE                                                            09280000                
       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   (&NPBY).NBSY2             SKIP IF NO BUSY PRINTER          09332000                
       JF    IIBUSY                    BRANCH IF NOT                    09334000                
       AGO   .BSY1                                                      09336000                
.NBSY2 ANOP                                                             09338000                
       JF    IIUPST                    BRANCH IF NOT                    09340000                
.BSY1  ANOP                                                             09345000                
       SPACE                                                            09350000                
*   ERROR - PUT OVERRIDES REQUESTED BUT NO MAPPING ON TERMINAL        * 09360000                
       SPACE                                                            09370000                
       B     C4TI2                     BRANCH TO TERMINATION            09380000                
       DC    AL1(TCCIPA)               INVALID PUT OVERRIDES            09390000                
       EJECT                                                            09400000                
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                
       SPACE                                                            09500000                
       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                
       SPACE                                                            09560000                
       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      @16 09590300                
       EJECT                                                        @16 09590600                
       SPACE 1                                                      @16 09590900                
******************************************************************  @16 09591200                
*      BUSY PRINTER SUPPORT                                      *  @16 09591500                
*      TEST IF DEVICE IS BUSY, IF IT IS THEN DO A SYSTEM INVITE  *  @16 09591800                
*      TO TEST WHETHER THE DEVICE IS STILL BUSY.                 *  @16 09592100                
******************************************************************  @16 09592400                
       SPACE 1                                                      @16 09592700                
       ENTRY IIBUSY                                                 @16 09593000                
IIBUSY EQU   *                         BUSY PRINTER TEST.           @16 09593300                
       L     II@PRL,XR2                RELOAD USERS PARM LIST.      @16 09593600                
       TBN   TUBAT4(,XR1),TUBBSY       IS DEVICE BUSY?              @16 09593900                
       JF    IIUPST                    NO, GO TO POST               @16 09594200                
       SPACE 1                                                      @16 09594500                
       L     NCTCB@,XR2                POINT TO USERS TCB           @16 09594800                
       SBN   TUBAT2(,XR1),TUBIIS       SET ON INVITE BIT IN TUB     @16 09595100                
       SBN   TUBAT4(,XR1),TUBWAT       INDICATE WAITING FOR STATUS  @16 09595400                
       SLC   TCBPL+PLLEN-1(PLLEN,XR2),TCBPL+PLLEN-1(,XR2) BLANK IT  @16 09595700                
       MVI   TCBPL+PLOPM(,XR2),OP$SYS  INDICATE A SYSTEM OPERATION  @16 09596000                
       MVI   TCBPL+PLOPC(,XR2),OPINV   INDICATE AN INVITE OPERATION @16 09596300                
       ST    TCBPL+PLTUBA(,XR2),XR1    PUT TUB ADDRESS IN PARM LIST @16 09596600                
       LA    TCBPL(,XR2),XR2           POINT TO PARM LIST           @16 09596900                
       J     IIPRBQ                    GO QUEUE REQUEST.            @16 09597200                
.NBSY3 ANOP                                                         @16 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 2                                                          09710000                
**   NOW MOVE THE PARAMETER LIST TO THE TCB FOR CM TO REFERENCE         09720000                
       SPACE 2                                                          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      09790000                
IIPRBQ EQU   *                                                      @16 09795000                
       B     IIQSUB                    GO QUEUE THE LIST ON @PRLQ       09800000                
       L     II@PRL,XR2                POINT TO PARM LIST TO SAVE IT    09810000                
       SBF   $FLGC,#NTRAC              ENABLE TRACE BEFORE CM POST      09820000                
       SPACE 3                                                          09830000                
       CCP   ENABLE,PMRQ               REENABLE INTERRUPTS              09840000                
       SPACE                                                            09850000                
*   NOW POST $CC4CM THAT HE HAS A TP REQUEST TO HANDLE                  09860000                
       SPACE                                                            09870000                
       LA    $CMECB,XR1                POINT TO CM'S ECB                09880000                
       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                
IIDOWT EQU   *                         ISSUE THE WAIT                   09940000                
       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                
       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      @16 10021000                
       SPACE 1                                                      @16 10022000                
       L     PLTUBA(,XR2),XR1          POINT TO TUB                 @16 10023000                
       CLI   PLOPM(,XR2),OP$SYS        IF SYSTEM OPERATION, MUST BE @16 10024000                
       BE    IIBUSY                    FOR BUSY PRINTER, SO LOOP    @16 10025000                
.NBSY4 ANOP                                                         @16 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                                                          10140000                
*********************************************************************** 10150000                
* REENTER $CC4II AT THIS POINT AFTER USER REQUEST SCHEDULED             10160000                
*********************************************************************** 10170000                
       SPACE 5                                                          10180000                
       ENTRY IIREND                                                     10190000                
IIREND EQU   *                         RETURN TO USER PROGRAM           10200000                
       SPACE 2                                                          10210000                
*********************************************************************** 10220000                
*       NOW MOVE THE PARAMETER LIST BACK TO USER PROGRAM AREA         * 10230000                
*********************************************************************** 10240000                
       SPACE 2                                                          10250000                
       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                
IIUT   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                
       EJECT                                                            10340000                
IISEND EQU   *                         RETURN                           10350000                
       SLC   PLRECA(2,XR2),CC0006      RESTORE CORRECT PLRECA           10360000                
IIAEND EQU   *                                                          10370000                
.*                                                                      10380000                
       AIF   (&NDME).NDME1             . SKIP IF *NO* DME SUPPORT       10390000                
.*                                                                      10400000                
       SPACE                                                            10410000                
*********************************************************************** 10420000                
*      CANCEL REQUEST ANALYSIS                                        * 10430000                
*********************************************************************** 10440000                
       SPACE                                                            10450000                
* XR2 WILL POINT XT THE PARM LIST (GET OR INVITE INPUT)                 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                
*********************************************************************** 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)                 '0C' TRACE ID                    10790000                
       SPACE                                                            10800000                
       AIF   (&NRAI).NRES                                               10800080                
*************************************************                       10800160                
*------RESIDENT ACCEPT INPUT IS BEING USED------*                       10800240                
       SPACE 2                                                          10800320                
       L     NCTCB@,XR1                CURRENT TASK                     10800400                
       CLI   PLOPM(,XR2),NOBIT         NO OP-MODIFIER BITS ALLOWED      10800480                
       TBF   PLOPC(,XR2),BIT0+BIT1+BIT2+BIT3  HIGH FOUR BITS OFF        10800560                
       JC    IIVINL,X'16'              OK CONTINUE                      10800640                
****************************************                                10800720                
*OP-CODE ERROR MUST BE X'04' ONLY      *                                10800800                
****************************************                                10800880                
       B     C4TI2                     ERROR IN OP CODE                 10800960                
       DC    AL1(TCCIOP)               TERMINATE USER                   10801040                
*------OP IS VALID CHECK LENGTH--------*                                10801120                
IIVINL 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                
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 2                                                          10801840                
*------NO INVITES TERMINATE------------*                                10801920                
       B     C4TI2                     TERMINATION                      10802000                
       DC    AL1(TCCIAN)               ERROR TYPE                       10802080                
IINEP  CLC   TCBMAX(1,XR1),TCBATR(,XR1)  MAX TERMINAL COUNT         @13 10802160                
       JH    IIOK                        NO. GO WAIT FOR ACCEPT.    @13 10802240                
****************************************                                10802320                
*ALREADY AT MAXIMUM TERMINAL COUNT     *                                10802400                
****************************************                                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                
       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                
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                
       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                
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(TCCIAC)               USER ERROR CODE                  10808080                
IIMORE L     TUBTUB(,XR1),XR1          NEXT TUB                         10808160                
       B     IILOOP                    CHECK NEXT TUB                   10808240                
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 TUB ADDRESS               10808960                
       MVI   TCBECB(,XR1),TCBACW       ACCEPT WAIT INDICATOR FOR C.M.   10809040                
       AGO   .RESA                                                      10809120                
.NRES  ANOP                                                             10809200                
       MVI   PL$OPC(,XR2),NOBIT        SETP OP TO SHOW INITIAL REQUEST  10810000                
IICALL EQU   *                                                          10820000                
       B     CC4PI                     BRANCH TO TRANSIENT HANDLER      10830000                
       DC    AL1(CC4AB)                ID FOR ACCEPT TRANSIENT          10840000                
       B     C4TI2                     BRANCH TO TERMINATION ON ERROR   10850000                
       DC    AL1(*-*)                  ACCEPT IMPOSSIBLE TO SATISFY     10860000                
       SPACE                                                            10870000                
       J     IIGGSF                    JUMP IF ACCEPT SATISFIED         10880000                
       SPACE 5                                                          10890000                
       AGO   .RESA                                                      10893000                
.RESA  ANOP                                                             10896000                
*      DETERMINE NOW WHETHER USER SHOULD BE TOLD ABOUT SHUTDOWN REQUEST 10900000                
       SPACE                                                            10910000                
*********************************************************************** 10920000                
*            CHECK FOR SHUTDOWN                                       * 10930000                
*********************************************************************** 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                
       SPACE                                                            11030000                
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                
*********************************************************************** 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                
       SPACE                                                            11150000                
*   IF A NEP MRT WAITING - DO FILE SHARE DEQUEUE THING                  11160000                
       SPACE                                                            11170000                
       LA    0(,XR2),XR1               POINT XR1 AT PARM LIST           11180000                
       L     NCTCB@,XR2                POINT TO THE TCB                 11190000                
       CLI   TCBIIC(,XR2),NOBIT        ANY INVITES OUTSTANDING?         11200000                
       JNE   IINODG                    BRANCH IF YES                    11210000                
       TBN   TCBDMG(,XR2),TCBNEP+TCBMTS  IS THIS A NEP MRT?             11220000                
       JF    IINODG                    BRANCH IF NOT                    11230000                
       SPACE                                                            11240000                
       B     CC4PI                     CALL TRANSIENT HANDLER FOR CC4DG 11250000                
       DC    AL1(CC4DG)                ID FOR $CC4DG                    11260000                
       SPACE                                                            11270000                
*    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                                                      11480000                
*      OR SHUTDOWN HAS BEEN REQUESTED BY THE SYSTEM OPERATOR          * 11490000                
*********************************************************************** 11500000                
       SPACE 3                                                          11510000                
*      DETERMINE IF POST WAS FOR INVITE INPUT COMPLETE                  11520000                
*      IF NOT MUST HAVE BEEN SHUTDOWN REQUESTED                         11530000                
       SPACE                                                            11540000                
*        GET CORRECT POST AND SET SKIP BITS IN SHUTDOWN ENTRY           11550000                
       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                                                            11580000                
*      HAD POST OF INVITE INPUT COMPLETE                                11590000                
       AIF   (&NRAI).NRS1              RESIDENT ACCEPT                  11601000                
       L     NCTCB@,XR1                SET TO CURRENT TASK              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                                                            11630000                
*      TELL USER SHUTDOWN REQUESTED NOW                                 11640000                
       SPACE                                                            11650000                
IIPGSH EQU   *                         SHUTDOWN HAS BEEN REQUESTED      11660000                
       MVI   PLRTC(,XR2),RCXSHD        PLUG SHUTDOWN REQUESTED RTN CODE 11670000                
       B     IITEND                    BR TO RETURN TO USER             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                
       L     TUBTNT(,XR2),XR2          POINT TO THE TNT                 11870000                
       L     NCTCB@,XR1                POINT TO THE TCB                 11880000                
       MVC   NPJOB-2(6,XR1),TNTNAM(,XR2) MOVE TERM NAME TO TCB          11890000                
       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                
       L     II@PRL,XR2                POINT XR2 AT PARAMETER LIST      11980000                
       MVC   TCBWK(2,XR1),PLRECA(,XR2)  SET PLRECA IN TCBWK             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                
       L     PLTUBA(,XR1),XR2            POINT TO THE TUB               12020000                
       L     TUBTNT(,XR2),XR2            POINT TO THE TNT ENTRY         12030000                
       L     PLRECA(,XR1),XR1            POINT TO THE USER'S REC. AREA  12040000                
       MVC   5(6,XR1),5(,XR2)            MOVE IN  THE SYMB. TERM. NAME  12050000                
       SPACE                                                            12060000                
       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                
       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 ON @PRLQ   12220000                
       L     II@PRL,XR2                 RESTORE PARAMETER LIST POINTER  12230000                
       SBF   $FLGC,#NTRAC               REENABLE TRACE BEFORE CM POST   12240000                
       SPACE 2                                                          12250000                
*   NOW POST THE CM WITH A REQUEST TO PROCESS                           12260000                
       SPACE 2                                                          12270000                
       LA    $CMECB,XR1                POINT XR1 AT CM'S ECB            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                
       B     IIAEND                    BRANCH TO RETURN TO REQUESTOR    12480000                
.*                                                                      12490000                
.NORS  AIF   (&NOM).MAPP               . SKIP IF *NO* MLTA 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 PARM L. 12710000                
       JNE   IIMCTC                    JUMP IF  ALREADY IN PARM L.      12720000                
       MVC   PL$MCT(1,XR2),TUBPCS(,XR1) PLUB MCT INDICES INTO PARM LIST 12730000                
       SPACE                                                            12740000                
IIMCTC EQU   *                         CHECK MCT INDICES                12750000                
*                                  ------START----------------------@06 12752000                
       TBF   PLOPM(,XR2),OP$SYS        SYSTEM OPERATION AND             12754000                
*                                  -------END-----------------------@06 12756000                
       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                
*                                  ------START----------------------@06 12862000                
       TBF   PLOPM(,XR2),OP$SYS        SYSTEM OPERATION AND             12864000                
*                                  -------END-----------------------@06 12866000                
       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                
       EJECT                                                            12980000                
.*                                                                      12990000                
.MAPP  ANOP                                                             13000000                
       AIF   (&NDF).CKIN               . SKIP IF *NO* DFF SUPPORT       13010000                
.*                                                                      13020000                
*********************************************************************** 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 2                                                          13190000                
*----ERROR----DFF TERMINAL REFERENCED BY NON-DFF TASK                   13200000                
       SPACE 2                                                          13210000                
IIDFER EQU   *                                                          13220000                
       B     C4TI2                     BRANCH TO TERMINATION            13230000                
       DC    AL1(TCCNDF)                                                13240000                
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                
       EJECT                                                            13340000                
.CKIN  ANOP                                                             13350000                
       SPACE 2                                                          13360000                
*********************************************************************** 13370000                
*        QUEUE THE REQUEST ON THE @PRLQ IN CCP COMMON AREA            * 13380000                
*********************************************************************** 13390000                
       SPACE 2                                                          13400000                
       ENTRY IIQSUB                                                     13410000                
IIQSUB ST    IIQRET+3,ARR              SAVE RETURN ADDRESS              13420000                
       L     PLTUBA(,XR2),XR1          POINT TO THE TUB                 13430000                
*                                  ------START----------------------@09 13432000                
       TBN   TUBAT1(,XR1),TUBKNM       THIS THE CONSOLE TUB?            13434000                
       JT    IICNCK                    SKIP UPDATING REQUEST COUNTER    13436000                
*                                  -------END-----------------------@09 13438000                
       L     TUBLCB(,XR1),XR1          POINT TO THE LCB                 13440000                
       ALC   LCBNW#(1,XR1),X$0001      UPDATE THE NEW REQUEST COUNTER   13450000                
IICNCK LA    @PRLQ-1,XR1               POINT TO THE QUEUE CHAIN FIELD   13460000                
IIRECK 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     IIRECK                    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                
IIQRET B     *-*                       RETURN                           13560000                
       TITLE 'COMMUNICATIONS&#.I/O&#.INTERFACE&#.--&#.SYSTEM&#.I/O'     13570000                
*********************************************************************** 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                ADD 1 TO ARR TO POINT AT RIGHT   13650000                
*                                      END OF PARM LIST ADDR OF ADDR    13660000                
       ST    MOVE+5,ARR                STORE ADDR OF PARM LIST ADDR IN  13670000                
*                                      MVC INSTRUCTION                  13680000                
       A     X$0001,ARR                BUMP ARR TO NSI                  13690000                
       SPACE                                                            13700000                
* MOVE PARM LIST ADDR TO II@PRL                                         13710000                
       SPACE                                                            13720000                
MOVE   MVC   II@PRL(2),*-*             MOVE PARM LIST ADDR TO II@PRL    13730000                
       SPACE                                                            13740000                
*      SAVE THE REGISTERS                                               13750000                
       SPACE                                                            13760000                
       ST    IICARR,XR2                SAVE XR2                         13770000                
       L     NCTCB@,XR2                POINT TO THE TCB                 13780000                
       ST    IIIX1(,XR2),XR1           SAVE XR1                         13790000                
       ST    IIIIR(,XR2),ARR           SAVE THE ARR                     13800000                
       MVC   IIIX2(2,XR2),IICARR       SAVE XR2                         13810000                
       SPACE                                                            13820000                
*********************************************************************** 13830000                
* POST CM WITH TP IO REQUEST                                            13840000                
* WAIT                                                                  13850000                
* RETURN TO INVOKER                                                     13860000                
*********************************************************************** 13870000                
       SPACE 2                                                          13880000                
       L     II@PRL,XR2                POINT XR2 AT PARM LIST           13890000                
       SPACE                                                            13900000                
       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                
       TBF   PLOPC(,XR2),OPPUT          OPERATION INVOLVE PUT ?         13940000                
       JF    IS0010                     YES, BRANCH                     13950000                
       MVI   PLRECA-1(,XR2),NOBIT       ZERO OUT RECORD ADDRESS         13960000                
IS0010 EQU   *                                                          13970000                
       SPACE                                                            13980000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 13990000                
       B     CC4TT                     BRANCH TO TRACE ROUTINE          14000000                
       DC    AL1(TTIS)                 TRACE FOR $CC4IS                 14010000                
       SPACE                                                            14020000                
*      TAKE A TRACE AT THIS POINT                                       14030000                
       EJECT                                                            14040000                
*********************************************************************** 14050000                
* HAVE TPIO REQUEST FOR A TERMINAL                                      14060000                
* POST $CC4CM AND ISSUE WAIT                                          * 14070000                
*********************************************************************** 14080000                
       SPACE                                                            14090000                
*POST CM FOR TP REQUEST                                                 14100000                
       SPACE                                                            14110000                
ISREQ  EQU   *                         HAVE TP REQUEST FOR $CC4CM       14120000                
       SPACE                                                            14130000                
*    IF THIS IS AN INVITE OPERATION, MOVE PARM LIST TO THE TUB          14140000                
       SPACE                                                            14150000                
       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?    @11 14175000                
       JF    ISWTOP                    BRANCH IF NOT BOTH TRUE          14180000                
*                                  ------START----------------------@08 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    14184000                
       SBF   PLOPC(,XR2),OPINV         DESCHEDULE THE SYSTEM INVITE     14185000                
       TBF   PLOPC(,XR2),OPPUT         TEST IF INVITE ONLY OPERATION@12 14185300                
       JT    ISREGS                    NO-OPP INVITE IF TRUE.       @12 14185600                
       J     ISWTOP                    GO RESTORE TUB  POINTER          14186000                
*                                  -------END-----------------------@08 14187000                
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                
       SPACE                                                            14280000                
       B     IIMCT                     FOR MCT (1050) ONLY              14290000                
.*                                                                      14300000                
.NMCT9 ANOP                            . CONTINUE HERE                  14310000                
.*                                                                      14320000                
       SPACE                                                            14330000                
       ENTRY ISREQ1                                                     14340000                
ISREQ1 EQU   *                                                          14350000                
*                                  ------START----------------------@07 14352000                
       TBF   PLOPC(,XR2),OPJRSH        RESCHEDULE ONLY REQUEST AND      14354000                
*                                  -------END-----------------------@07 14356000                
       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   (&NCPUM EQ '0').MSG1      SKIP IF CPU S MSGS. ALLOWED   @1714445000                
       CLI   TUBPHY(,XR1),TUBCPU       IS THE IO TO A CPU?              14450000                
       JNE   ISPOST                    GO TO POST CM IF NOT             14460000                
       TBF   PLOPM(,XR2),OPSTOP+OPDISC  STOP INVITE OR DISCONNECT?      14470000                
       JF    ISPOST                    JUMP IF EITHER                   14480000                
       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                
       SBF   PLOPC(,XR2),OPPUT         SET TO IGNORE THE PUT            14520000                
       MVI   PLRECA-1(,XR2),NOBIT      DO NOT LET CM FREEMAIN AREA  @10 14525000                
       TBN   PLOPC(,XR2),OPGET         IS A GET TO BE DONE?             14530000                
       JF    ISREGS                    SKIP POST AND WAIT IF YES        14540000                
.MSG1  ANOP                                                         @17 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                
       SPACE 2                                                          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                
       LA    $CMECB,XR1                POINT TO CM'S ECB                14710000                
       SVC   0                         SUPERVISOR CALL                  14720000                
       DC    XL1'05'                   RIB FOR POST                     14730000                
       SPACE 3                                                          14740000                
* ISSUE WAIT                                                            14750000                
       SPACE 3                                                          14760000                
*********************************************************************** 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                                                            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                
       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                
STOPER EQU   X'00'                     STOPPR BYTE-INDICATES END OF TNT 15080000                
IISTNL EQU   6                         LENGHT OF SYMBOLIC TERMINAL NAME 15090000                
CC0006 DC    IL2'6'                    2-BYTE BINARY 6                  15100000                
CC0003 DC    IL2'3'                    2-BYTE BINARY 3                  15110000                
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                
IIMIN1 DC    XL2'FFFF'                 CONSTANT OF MINUS 1              15320000                
DSFLAG EQU   X'002F'                   FLAG BYTE FOR ENVIRONMENT INDS.  15322000                
ENVSAV EQU   X'80'                     SAVE ENVIRONMENT.                15324000                
N2G0   EQU   X'0015'                   DISPATCHER ADDRESS.              15326000                
*                               ---------------------------- START -@01 15330000                
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                
*                               ---------------------------- END ---@01 15380000                
NHIGH  EQU   LO+EQ                     NOT HIGH TEST                @16 15382000                
NLOW   EQU   HI+EQ                     NOT LOW TEST                 @16 15384000                
NEQ    EQU   HI+LO                     NOT EQUAL TEST               @16 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(X'10')                FUNCTION AND OPTIONS             15460000                
       DC    CL2'  '                   MESSAGE ID - PART 2              15470000                
       DC    AL1(0)                    TEXT LENGTH                      15480000                
       DC    AL2(0)                    TEXT ADDRESS                     15490000                
       DC    AL1(0)                    REPLY LENGTH                     15500000                
IICNPM DC    AL2(0)                    REPLY ADDRESS                    15510000                
       SPACE                                                            15520000                
.*                                                                      15530000                
       AIF   (&NDF).C75                . SKIP IF *NO* DFF SUPPORT       15540000                
.*                                                                      15550000                
.*                                                                      15560000                
.C75   AIF   (&NOB).TAB                . SKIP IF *NO* BSCA SUPPORT      15570000                
.*                                                                      15580000                
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