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

⟦b73a31e63⟧ s3xseg

    Length: 64262 (0xfb06)
    Types: s3xseg
    Names: »S$E060«

Derivation

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

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.*                                                                    * 00030000                
.* NAME: $E060                                                        * 00040000                
.*                                                                    * 00050000                
.* MODIFICATION LEVEL: VERSION 15, MODIFICATION LEVEL 0 OF 5702-SC1   * 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  &MIN                      . MAKE FUNCTIONS TRANSIENT/0=NO  00360000                
.*                                                                      00370000                
       GBLB  &NRUF                     .   1=*NO* PRUF / 0=PRUF SUPPTD  00373000                
.*                                                                      00374000                
       GBLB  &BPRT                     .   1= BUSY PRINTER / 0 = NO   *L00375000                
.*                                                                      00376000                
.*---------  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 TP OPERATION* 00530000                
*                                                                     * 00540000                
*  INPUT:  INPUT TO $CC4II IS A PARAMETER LIST POINTED TO BY XR2.     * 00550000                
*                                                                     * 00560000                
*  OUTPUT:  OUTPUT FROM $CC4II WILL BE A SCHEDULED PUT OPERATION,     * 00570000                
*   DATA ON A GET OPERATION, OR ONE OF THE FOLLOWING TCB COMPLETION   * 00580000                
*   CODES IN CASE OF ERROR:                                           * 00590000                
*            01 - INVALID OP CODE/MODIFIERS                           * 00600000                
*            02 - INVALID OPERATION FOR CONSOLE                       * 00610000                
*            03 - UNDEFINED SYMBOLIC TERMINAL NAME                    * 00620000                
*            04 - TERMINAL NOT ALLOCATED TO PROGRAM                   * 00630000                
*            05 - TERMINAL REFERENCED BY OTHER THAN ALLOCATED NAME    * 00640000                
*            06 - BLANK TERMINAL NAME FOR MRTS PROGRAM                * 00650000                
*            07 - BLANK STN AND REQUESTOR RELEASED                    * 00660000                
*            08 - BLANK STN INVALID FOR THIS OPERATION                * 00670000                
*            09 - INVALID USE OF SUB-TERMINAL NAME                    * 00680000                
*            0A - STN NOT ASSIGNED TO TERMINAL                        * 00690000                
*            0B - TERMINAL ATTRIBUTE SET INVALID FOR THIS OPERATION   * 00700000                
*            0C - TERMINAL I/O CAPABILITY DOES NOT MATCH OPERATION    * 00710000                
*            0D - INVALID OUTPUT LENGTH                               * 00720000                
*            0E - INVALID INPUT LENGTH                                * 00730000                
*            0F - INPUT LENGTH GREATER THAN TP BUFFER LIZE            * 00740000                
*            10 - INVALID OP WITH DATA FROM PROG. REQ. OUTSTANDING    * 00750000                
*            11 - INVALID OP WITH INVITE INPUT OUTSTANDING            * 00760000                
*            14 - INVALID OP WITH NO INVITES OUTSTANDING              * 00770000                
*            15 - INPUT AREA NOT LARGE ENOUGH FOR BSCA GET BLOCK      * 00780000                
*            16 - COPY REQUESTED TO TERMINAL WITHOUT MAPPING          * 00790000                
*            17 - COPY TO TERMINAL NAME NOT FOUND                     * 00800000                
*            18 - COPY INVALID WITH 3275                              * 00810000                
*            19 - ERASE REQUESTED TO TERMINAL WITHOUT MAPPING         * 00820000                
*            1A - PUT OVERRIDE TO TERMINAL WITHOUT MAPPING            * 00830000                
*            1B - INVALID PUT WITH MAPPING - NO EOT                   * 00840000                
*            1C - RECORD AREA TOO SMALL FOR BSCA GET WITH ITB         * 00850000                
*            1D - ACCEPT REQUEST IMPOSSIBLE TO SATISFY                * 00860000                
*            1E - OUTPUT LENGTH TO CONSOLE GREATER THAN 80            * 00870000                
*                                                                     * 00880000                
*  ENTRY POINTS:                                                      * 00890000                
*            $CC4II - ENTRY FOR USER REQUESTS                         * 00900000                
*            $CC4IS - ENTRY POINT FOR SYSTEM REQUESTS                 * 00910000                
*                                                                     * 00920000                
*  EXTERNAL REFERENCES:                                               * 00930000                
*            $CC4PS - POST TP REQUEST                                 * 00940000                
*            $CC4WT - WAIT FOR INVITE INPUT TO COMPLETE               * 00950000                
*            $CC4MX - MOVE ROUTINE TO MOVE DATA TO RECORD AREA        * 00960000                
*            $CC4DP - DISPATCHER CALLED ON EXIT                       * 00970000                
*            $CC4TT - TRACE ENTRY                                     * 00980000                
*            $CC4PI - TRANSIENT INTERFACE TO CALL $CC4NC AND $CC4AB   * 00990000                
*            $CC4NC - CANCEL TRANSIENT                                * 01000000                
*            $CC4AB - TRANSIENT TO CHECK ACCEPT INPUT POSSIBILITIES   * 01010000                
*            CC4TI2 - TERMINATION ENTRY WITH TCB COMPLETION CODE      * 01020000                
*                                                                     * 01030000                
*  EXITS-NORMAL:  A NORMAL EXIT TO DISPATCHER OCCURS IF ALL GOES WELL * 01040000                
*       -ERROR:  AN ERROR EXIT TO TERMINATION WITH THE APPROPRIATE    * 01050000                
*   TCB COMPLETION CODE OCCURS IN CASE OF ERROR.                      * 01060000                
*                                                                     * 01070000                
*  TABLES/WORK AREAS:  A TABLE OF OPERATION CODES IS USED TO CHECK    * 01080000                
*   VALIDITY OF OP CODES.                                             * 01090000                
*                                                                     * 01100000                
* CHANGE ACTIVITY - $E060                                             * 01110000                
*                                                                     * 01120000                
* RELEASE 11                                                          * 01122000                
* @01-APAR/S305092- TO FREEMAIN PCT AND NAME AT ACCEPT INPUT TIME @01 * 01124000                
* @02-APAR/S305171- DECREMENT PLRECA ON ERROR FROM DFF            @02 * 01126000                
*                                                                     * 01128000                
* RELEASE 12                                                          * 01128500                
* @03-INCR/       - CLEAR TUB POINTER AND MOVE TRACE CALL         @03 * 01129000                
* @04-INCR/00S1301- PROGRAM READ UNDER FORMAT                     @04 * 01129200                
*                                                                     * 01129500                
* RELEASE 14                                                          * 01129570                
* @05-APAR/S308352- CORRECT RETURN CODE 03 WHEN CALL PRUF PROGRAM     * 01129640                
*                    FROM ANOTHER PRUF PROGRAM                        * 01129710                
* @06-APAR/S308743- CORRECT INPUT DATA WHEN ACQUIRE DFF TERMINAL      * 01129780                
*                     TERMINAL AS NON-DFF TERMINAL                    * 01129850                
* @07-PTR/D14CP016-CORRECT TERMINATION CODE 15                        * 01129920                
*                                                                     * 01129930                
* RELEASE 15                                                          * 01129940                
* @08-APAR/S309230- CORRECT LOSE OF INVITES WHEN AN ACCEPT TO THE     * 01129950                
*                    CONSOLE IS ISSUED AFTER THE INVITES              * 01129960                
*  *L-INDICATES PRINTER BUSY SUPPORT                                    01129970                
*********************************************************************** 01130000                
       EJECT                                                            01140000                
       SPACE                                                            01150000                
************************************************************************01160000                
* ENTRY POINT FOR I/O INTERFACE FOR USER REUESTS                       *01170000                
************************************************************************01180000                
       SPACE                                                            01190000                
* UPON ENTRY FROM USER RELOCATABLE MODULE - XR2 POINTS AT PARM LIST     01200000                
$CC4II EQU   *                                                          01210000                
       ST    CC@PRL,XR2                SAVE PARM LIST ADDRESS           01220000                
       SPACE                                                            01230000                
************************************************************************01240000                
* VALIDATE THE OPERATION CODE PASSED BY THE USER                        01250000                
* OBTAIN VALIDITY BYTE FROM OP CODE VALIDTY TABLE                       01260000                
************************************************************************01270000                
       SPACE                                                            01280000                
* XR2 POINTS AT THE PARM LIST                                           01290000                
       MNN   IIMVBY+4,PLOPC(,XR2)      MOVE OP CODE TO DISPLACMENT      01300000                
       LA    IIVTBL,XR1                POINT XR1 AT OP CODE VALDITY TBLE01310000                
IIMVBY MVC   IIVBYT(1),*-*(,XR1)       GET VALIDITY BYTE FROM TABLE     01320000                
       SPACE                                                            01330000                
*                                      -----START-------------------@04 01335000                
       CLI   PLOPC(,XR2),OPPNW+OPRUF   IS THE OP IN THE VALID RANGE?    01340000                
       JH    IIIVLD                    BRANCH TO TERMINATE IF NOT       01350000                
*                                      -----END---------------------@04 01355000                
       CLI   IIVBYT,IIZERO             IS VALIDITY BYTE ZERO            01360000                
       JNE   IIVLD                     JUMP IF NOT                      01370000                
       SPACE                                                            01380000                
* VALIDITY BYTE ZERO SO OPERATION IS INVALID                            01390000                
       SPACE                                                            01400000                
IIIVLD B     CC4TI2                    BRANCH TO TERMINATION            01410000                
       DC    AL1(TCCIOP)               INVALID OP COMPLETION CODE       01420000                
       SPACE                                                            01430000                
IIVLD  EQU   *                         OP CODE IS ONE OF CCP VALID OPS  01440000                
       SLC   PLCHN(2,XR2),PLCHN(,XR2)  CLEAR CHAIN/RETURN CODE IN PARM L01450000                
       SLC   PL$RTC(4,XR2),PL$RTC(,XR2) CLEAR INTERNAL RETURN CODE      01460000                
*                                      AND INTERNAL OP CODE             01470000                
       SLC   PLTUBA(2,XR2),PLTUBA(,XR2) CLEAR TUB FIELD           @03   01475000                
       CLI   PLOPC(,XR2),OPSHQ         IS OP SHUTDOWN INQUIRY           01480000                
       JNE   IICKAI                    JUMP IF NOT SHUTDOWN INQUIRY     01490000                
       SPACE                                                            01500000                
*      SHUTDOWN INQURITY OP CODE                                        01510000                
       TBN   $CCCOM+$FLGA,CPSHUT       HAS SHUTDOWN BEEN REQUESTED      01520000                
       JF    IIBBCK                    JUMP IF NOT                      01530000                
       SPACE                                                            01540000                
*      SHUTDOWN REQUESTED SO PLUG IN PROPER RETURN CODE                 01550000                
       MVI   PLRTC(,XR2),RCXSHD        PLUG SHUTDOWN REQUESTED RTN CODE 01560000                
IIBBCK EQU   *                         BRACN TO GO BACK                 01570000                
       B     IITEND                    BR TO RETURN TO USER             01580000                
       SPACE                                                            01590000                
*      CHECK OP CODE TO SEE IF IT'S AN ACCEPT INPUT                     01600000                
       SPACE                                                            01610000                
IICKAI EQU   *                         CHECK FOR ACCEPT INPUT           01620000                
       TBN   PLOPC(,XR2),OPACI         IS THIS AN ACCEPT INPUT?         01630000                
       TBF   PLOPC(,XR2),BIT4+BIT6+BIT7  AND NOTHING ELSE?              01640000                
       BT    IIACI                     BRANCH IF ACCEPT INPUT           01650000                
       SPACE                                                            01660000                
*      NOT ACCEPT INPUT SO MUST VALIDATE THE SYMBOLIC TERMINAL NAME     01670000                
*      PROVIDED BY USER ALONG WITH THE OPERTAION                        01680000                
       EJECT                                                            01690000                
************************************************************************01700000                
* LOCATE SYMBOLIC TERMINAL NAME IN THE TERMINAL NAME TABLE              01710000                
************************************************************************01720000                
       SPACE                                                            01730000                
       L     $CCCOM+@TNT,XR1           POINT XR1 AT FIRST TNT ENTRY     01740000                
* CHECK FOR END OF TNT                                                  01750000                
* XR1 POINTS AT TNT                                                     01760000                
       SPACE                                                            01770000                
       L     PLRECA(,XR2),XR2          POINT XR2 AT RECORD AREA         01780000                
       SPACE                                                            01790000                
IITNTN CLI   TNTCCP(,XR1),STOPER       ARE WE AT END OF TNT             01800000                
       JE    IINFND                    JUMP IF AT END TO NOT FOUND      01810000                
       SPACE                                                            01820000                
* CHECK THIS ENTRY IN THE TNT                                           01830000                
       SPACE                                                            01840000                
       CLC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1)    COMPARE TNT STN       01850000                
       JH    IILOOK                    JUMP HIGH TO LOOK AGAIN          01860000                
       JE    IIFOND                    JUMP IF FOUND IN TNT             01870000                
       SPACE                                                            01880000                
* NOT FOUND - HAVE PROGRAM ERROR                                        01890000                
       SPACE                                                            01900000                
IINFND EQU   *                         STN NOT FOUND IN TNT             01910000                
       L     CC@PRL,XR2                POINT TO PARAMETER LIST          01920000                
       SLC   PLTUBA(2,XR2),PLTUBA(,XR2)  CLEAR TUB POINTER TO ZEROS     01930000                
       CLI   PLOPC(,XR2),OPGTA         WAS THIS A GET ATTRIBUTES OP?    01940000                
       JE    IIGTA                     SKIP TERMINATION IF YES          01950000                
       B     CC4TI2                    BRANCH TO TERMINATION            01960000                
       DC    AL1(TCCNNF)               TERMINAL NAME NOT FOUND          01970000                
       SPACE                                                            01980000                
*  LOOK SOME MORE                                                       01990000                
* DETERMINE HOW MUCH TO BUMP TNT REGITER POINTER                        02000000                
       SPACE                                                            02010000                
IILOOK EQU   *                         LOOK AT ANOTHER ENTRY            02020000                
IIBUMP LA    TNTLN(,XR1),XR1           BUMP POINTER BY TNT FIXED SIZE   02030000                
       B     IITNTN                    BRANCH TO COMPARE AGAIN          02040000                
       EJECT                                                            02050000                
************************************************************************02060000                
*  SYMBOLIC TERMINAL NAME WAS FOUND IN TNT                              02070000                
* DETERMINE IF OPERATION IS VALID FOR THE TYPE TNT ENTRY FOUND        * 02080000                
************************************************************************02090000                
       SPACE                                                            02100000                
* XR1 POINTS AT PROPER TNT ENTRY                                        02110000                
       SPACE                                                            02120000                
IIFOND EQU   *                         STN FOUND IN TNT                 02130000                
       SPACE                                                            02160000                
       TBN   TNTFLG(,XR1),TNTBLK       IS STN ALL BLANKS                02170000                
       JF    IINBLK                    JUMP IF NOT ALL BLNAKS           02180000                
       SPACE                                                            02190000                
*      HAVE SYMBOLIC TERMINAL NAME OF ALL BLANKS                        02200000                
       SPACE                                                            02210000                
*      THUS THE TERMINAL TO WHICH THE OPERATION IS DIRECTED IS          02220000                
*      THE ONE AND ONLY REQUESTOR OF A SINGLE REQUESTOR PROGRAM         02230000                
       SPACE                                                            02240000                
* DETERMINE IF OPERATION IS VALID FOR STN OF ALL BLANKS                 02250000                
       SPACE                                                            02260000                
       TBN   IIVBYT,IIVBLK             IS IT VALID OP FOR STN-BLANKS    02270000                
       JT    IICKBK                    JUMP IF VALID OP                 02280000                
       SPACE                                                            02290000                
* HAVE ERROR** INVALID OPERATION FOR STN OF BLANKS                      02300000                
       SPACE                                                            02310000                
       B     CC4TI2                    BRANCH TO TERMINATION            02320000                
       DC    AL1(TCCIBL)               INVALID BLANK NAME               02330000                
       SPACE                                                            02340000                
       EJECT                                                            02350000                
IICKBK EQU   *                         CHECK VALIDITY OF BLANK NAME MORE02360000                
       SPACE                                                            02370000                
*      FIRST CHECK TO SEE IF PROGRAM IS NON-MRTS PROGRAM                02380000                
       SPACE                                                            02390000                
       L     CCURTB,XR1                POINT TO THE USER'S TCB          02390900                
       TBF   TCBDMG(,XR1),TCBMTS       IS IT NON-MRTS PROGRAM           02391800                
       JT    IISR                      JUMP IF NON-MRTS PROGRAM         02392700                
       SPACE                                                            02393600                
*      HAVE USE OF BLANK NAME FOR MRTS PROGRAM                          02394500                
       SPACE                                                            02395400                
       B     CC4TI2                    BRANCH TO TERMINATION            02396300                
       DC    AL1(TCCMBL)               BLANK NAME FOR MRTS PROGRAM      02397200                
       SPACE                                                            02398100                
IISR   EQU   *                                                          02399000                
       TBN   TCBTSK(,XR1),TCBKRQ       IS THIS A CONSOLE REQUESTOR TASK 02410000                
       JF    IINKRQ                    BRANCH IF NOT                    02420000                
       L     CC@CMT,XR1                POINT TO CONSOLE TCB             02430000                
       L     TCBTUB(,XR1),XR1          LOAD POINTER TO CONSOLE TUB      02440000                
       J     IIKRQ                     BRANCH TO MOVE IN NAME           02450000                
IINKRQ EQU   *                                                          02460000                
       CLI   TCBTUB-1(,XR1),NOBIT      IS TUB POINTER NULL              02560000                
       L     TCBTUB(,XR1),XR1          POINT XR1 AT REQUESTOR TUB       02570000                
       TBN   TUBAT1(,XR1),TUBREQ       IS TUB REQUESTING TERMINAL       02580000                
       JC    IIRBL,ANY+FALSE+EQ        JUMP IF NULL TUB POINTER OR      02590000                
*                                      TUB IS NOT REQUESTING            02600000                
       SPACE                                                            02610000                
*      BLANK NAME COMPLETELY VALID                                      02620000                
       SPACE                                                            02630000                
IIKRQ  EQU   *                                                          02640000                
       L     TUBTNT(,XR1),XR1          POINT XR1 AT THIS TUBS TNT ENTRY 02650000                
       MVC   IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) MOVE STN TO RECORD AREA  02660000                
       J     IINBLK                    JUMP TO HANDLE FURTHER           02670000                
       SPACE                                                            02680000                
*      ERROR  - BLANK NAME TO NON-MRTS WITH REQUESTOR RELEASED ALREADY  02690000                
       SPACE                                                            02700000                
IIRBL  EQU   *                                                          02710000                
       B     CC4TI2                    BRANCH TO TERMINATION            02720000                
       DC    AL1(TCCRBL)               BLANK NAME WITH REQUESTOR REL.   02730000                
       EJECT                                                            02740000                
************************************************************************02750000                
* HAVE REQUEST TO A SPECIFIC TUB AT THIS POINT                          02760000                
************************************************************************02770000                
       SPACE                                                            02780000                
*      XR1   POINTS TO TNT ENTRY                                        02790000                
*      ASSURE THAT THIS TNT HAS BEEN ASSIGNED TO A TUB                  02800000                
       SPACE                                                            02810000                
IINBLK EQU   *                         HAVE TERMINAL REQUEWT TO HANDLE  02820000                
       CLI   TNTTUB-1(,XR1),NOBIT      IS TNTTUB POINTER NULL           02830000                
       JNE   IINNUL                    JUMP IF POINTER NOT NULL         02840000                
       SPACE                                                            02850000                
*            ERROR - TNT NOT ASSINGED TO A TUB                          02860000                
       SPACE                                                            02870000                
       B     CC4TI2                    BRANCH TO TERMINATION            02880000                
       DC    AL1(TCCNAT)               TNT NOT ASSIGNED TO TUB          02890000                
       SPACE                                                            02900000                
IINNUL EQU   *                         HAVE VALID TNT TUB POINTER       02910000                
       L     CC@PRL,XR2                POINT XR2 AT PARM LIST           02920000                
.*                                                                      02930000                
       AIF   (&NOM).NML1               . SKIP IF *NO* MLTA              02940000                
.*                                                                      02950000                
************************************************************************02960000                
*      FOR 1050 ONLY                                                    02970000                
************************************************************************02980000                
       SPACE                                                            02990000                
*      DETERMINE IF THIS IS SUB-TERMINAL NAME                           03000000                
       SPACE                                                            03010000                
       MVC   PL$MCT(1,XR2),TNTMCT(,XR1) MOVE MCT INDICES INTO PARM LIST 03020000                
       CLI   TNTMCT(,XR1),NOBIT        IS THIS SUB-TERMINAL NAME        03030000                
       JE    IISTNT                    JUMP IF NOT SUB-TERMINAL NAME    03040000                
       SPACE                                                            03050000                
*      HAVE SUB-TERMINAL NAME SO MUST GET ADDR OF MASTER TNT FROM       03060000                
*      TNTTNT FIELD                                                     03070000                
       SPACE                                                            03080000                
       L     TNTTNT(,XR1),XR1          POINT XR1 AT  MASTER TNT         03090000                
       SPACE                                                            03100000                
.NML1  ANOP                                                             03110000                
IISTNT EQU   *                         SAVE TNT ADDR                    03120000                
************************************************************************03130000                
       ST    IIVTNT,XR1                SAVE TNT ENTRY ADDRESS           03140000                
       MVC   PLTUBA(2,XR2),TNTTUB(,XR1)  MOVE TUB @ TO PARM LIST        03150000                
*                                                                 @03   03151000                
* TAKE A TRACE AT THIS POINT                                      @03   03152000                
*                                                                 @03   03153000                
IIGTA  B     $CC4TT                    CALL TRACE ROUTINE         @03   03154000                
       DC    AL1(TTII)                 ID FOR II TRACE            @03   03155000                
*                                                                 @03   03156000                
       ALC   PLRECA(2,XR2),CC0006      ADD STN LENGTH TO RECA     @03   03160000                
*                                      ADDRESS TO DATA ADDRESS          03170000                
       EJECT                                                            03180000                
       SPACE                                                            03190000                
* CHECK REQUEST TYPE - DETERMINE IF IT IS STATUS REQUEST                03200000                
       SPACE                                                            03210000                
       TBN   PLOPC(,XR2),OPSTAT        IS IT STATUS OPERATION           03220000                
       JF    IITKNS                    JUMP IF NOT NOT STATUS OPERATION 03230000                
       SPACE                                                            03240000                
*      HAVE STATUS OPERATION (RELEASE OR GET ATTRIBUTES)                03250000                
       SPACE                                                            03260000                
       ST    PL$RTC(,XR2),XR1          PLUG TNT ADDR INTO PARM LIST     03270000                
       B     $CC4PI                    BRACNH TO BRING IN TRANSIENT     03280000                
       DC    AL1(CC4GA)                GET ATTRIBUTES TRANSIENT ID      03290000                
       SPACE                                                            03300000                
* RETURN HERE FROM TRANSIENT WHICH HANDLED STSTUS REQUEST               03310000                
* CHECK TCB COMPLETEION CODE                                            03320000                
* IF ZERO - CHECK FOR MAPPING                                           03330000                
* IF NON-ZERO BRANCH TO TERMINATION                                     03340000                
       SPACE                                                            03350000                
       L     CCURTB,XR1                POINT XR1 AT CURRENT TCB         03360000                
       CLI   TCBCMP(,XR1),NOBIT        IS TCB COMPLETION CODE ZERO      03370000                
.*                                                                      03380000                
       AIF   (&DFF).MAP1               . SKIP IF DFF SUPPORTED          03390000                
.*                                                                      03400000                
       BE    IIREND                    BRANCHOUT IF ZERO (OK)           03410000                
.*                                                                      03420000                
.MAP1  AIF   (&NDF).NMAP1              . SKIP IF *NO* DFF SUPPORT       03430000                
.*                                                                      03440000                
       JNE   IIBTCB                    BRANCH TO HALT IF NON-ZERO       03450000                
       SPACE                                                            03460000                
*********************************************************************** 03470000                
*  CHECK FOR MAPPING IF GOOD COMPLETION CODE                          * 03480000                
*********************************************************************** 03490000                
       SPACE                                                            03500000                
       TBN   PLOPC(,XR2),OPREL         IS THIS A RELEASE REQUEST?       03510000                
       BT    IIMAPP                    BRANCH TO MAPPING IF YES         03520000                
       B     IIREND                                                     03530000                
.NMAP1 ANOP                                                             03540000                
       EJECT                                                            03550000                
************************************************************************03560000                
* BAD TCB COMPLETION CODE                                             * 03570000                
************************************************************************03580000                
       SPACE                                                            03590000                
IIBTCB EQU   *                                                          03600000                
       MVC   IITCMP(1),TCBCMP(,XR1)    MOVE TCB COMP CODE SUCH THAT ARR 03610000                
*                                      POINTS TO IT                     03620000                
       SPACE                                                            03630000                
       B     CC4TI2                    BRANCH TO TERMINATE THIS TASK    03640000                
IITCMP DS    CL1                       TCB COMPLETION CODE              03650000                
       SPACE                                                            03660000                
************************************************************************03670000                
* DETERMINA IF THIS TUB IS THE CONSOLE                                  03680000                
************************************************************************03690000                
       SPACE                                                            03700000                
IITKNS EQU   *                         TEST FOR CONSOLE TUB             03710000                
       TBN   TNTFLG(,XR1),TNTKNS       IS IT CONSOLE                    03720000                
       L     TNTTUB(,XR1),XR1          POINT XR1 AT TUB                 03730000                
       JT    IIKNSL                    JUMP IF CONSOLE TO CONSOLE HNDLER03740000                
       SPACE                                                            03750000                
* HAVE REQUEST TO TERMINAL - VALIDATE IT                                03760000                
       SPACE                                                            03770000                
       EJECT                                                            03780000                
************************************************************************03790000                
* PREPARE FOR PHYSICAL TP IO - MUST VALIDATE REQUEST FIRST              03800000                
************************************************************************03810000                
       SPACE                                                            03820000                
* VALIDATE THAT THIS TUB BEONGS TO TCB REQUESTING IT                    03830000                
       SPACE                                                            03840000                
       CLC   TUBTCB(2,XR1),CCURTB      DOES CURTCB-TUBTCB               03850000                
       TBF   TUBAT3(,XR1),TUBALC       IS TUB PHYSICALLY ALLOCATED ?    03860000                
       JC    IIPHYS,NONE+FALSE+HI+LO   JUMP IF OKAY                     03870000                
       SPACE                                                            03880000                
* CURRRENT TCB DOES NOT MATCH TUB TCB SO PROGRAM ERROR                  03890000                
* TERMINAL NOT ALLOCATED TO THIS PROGRAM                                03900000                
       SPACE                                                            03910000                
       B     CC4TI2                    BRANCH TO TERMINATION            03920000                
       DC    AL1(TCCNAP)               TERMINAL NOT ALLOCATED TO PROG   03930000                
IIPHYS EQU   *                                                          03940000                
       TBN   TUBAT1(,XR1),TUBONL       IS TUB ONLINE?                   03950000                
       JT    IITCBK                    BRANCH IF YES                    03960000                
       MVI   PLRTC(,XR2),RCXOFF        SET COMPLETION CODE TO OFFLINE   03970000                
       B     IIREND                    BRANCH TO RETURN                 03980000                
       SPACE                                                            03990000                
IITCBK EQU   *                         CHECK THAT TUB POINTS TO CORRECT 04000000                
*                                      TNT ENTRY                        04010000                
       CLC   TUBTNT(2,XR1),IIVTNT      DOES TUB PT TO PROPER TNT        04020000                
       JE    IITNTK                    JUMP IF YES                      04030000                
       SPACE                                                            04040000                
* ERROR TNT POINTS TO TUB BUT TUB DOES NOT POINT TO TNT                 04050000                
* TERMIANL NOT REFERECNED BY NAME BY WHICH IT WAS ALLOCATED             04060000                
       SPACE                                                            04070000                
       B     CC4TI2                    BRANCH TO TERMINATION            04080000                
       DC    AL1(TCCNAN)               NOT ALLOCATED BY THIS NAME       04090000                
       EJECT                                                            04100000                
* ASSURE TERMINAL DOES NOT HAVE OUTSTANDING IMPLICIT INVITE INPUT       04110000                
* ONLY ACCEPT INPUT CAN BE ISSUED TO TERMINAL WITH IMPLICIT INVITE INPUT04120000                
*   WHICH HAS NOT BEEN SATISFIED                                        04130000                
       SPACE                                                            04140000                
IITNTK EQU   *                                                          04150000                
       TBN   TUBAT2(,XR1),TUBIMI       IS IMPLICIT INVITE UNSATISFIED   04160000                
       JF    IICKIS                    JUMP IF NO IMPLICIT INVITE INPUT 04161000                
*                                      -------------------START-----@09 04162000                
       TBF   TUBTA2(,XR1),TASMSG       IF (TUB NOT IN MESSAGE MODE,     04163000                
       TBN   TUBCHR(,XR1),TUBLNE           AND ON BSCA LINE,            04164000                
       TBF   TPEFFL-1(,XR1),ALLBIT         AND EFFECTIVE LENGTH         04165000                
       TBF   TPEFFL-0(,XR1),ALLBIT         IS ZERO,                     04166000                
       CLI   TPRTC(,XR1),RCXEOT            AND RETN CODE EOT OR GRTR,)  04167000                
       JC    IICKIS,NONE+FALSE+LO      THEN THIS IS A FALSE TUBIMI      04170000                
*                                      SET BY CM TO PREVENT FREEMAIN.   04173000                
*                                      -------------------END-------@09 04176000                
       SPACE                                                            04180000                
* ERROR - HAVE NON ACCEPT INPUT REQUEST TO TUB WITH IMPLICIT INVITE INPT04190000                
*  UNSATISFIED                                                          04200000                
* DATA FROM PROGRAM REQUEST OUTSTANDING                                 04210000                
       SPACE                                                            04220000                
       B     CC4TI2                    BRANCH TO TERMINATION            04230000                
       DC    AL1(TCCIMO)               IMPLICIT INVITE OUTSTANDING      04240000                
       SPACE                                                            04250000                
* DETERMINE IF INVITE INPUT IS OUTSTANIDNG TO THIS TERMINAL             04260000                
* ERROR IF SO UNLESS THIS IS STOP INVITE INPUT                          04270000                
       SPACE                                                            04280000                
IICKIS EQU   *                         CHECK FOR OUTSTANDING INVITE INP 04290000                
       SPACE                                                            04300000                
*      TEST FOR TUB IN COMMAND INTERRUPT MODE                           04310000                
*      IF YES, THEN MUST HAVE INVITE OUTSTANDING TO TERMINAL            04320000                
       SPACE                                                            04330000                
       TBN   TUBAT2(,XR1),TUBDTA+TUBCMD IS TUB IN COMMAND INTERRUPT MODE04340000                
       JT    IIVSCH                    JUMP IF CMD INT SINCE INVITE SCHD04350000                
       TBN   TUBAT2(,XR1),TUBIIS       IS INVITE INPUT SCHEDULED ON TUB 04360000                
       JF    IINIIS                    JUMP IF NO INVITE SCHEDULED      04370000                
       SPACE                                                            04380000                
       EJECT                                                            04390000                
*      HAVE INVITE INPUT SCHEDULED - THIS OP IS VALID ONLY IF IT IS     04400000                
* A STOP INVITE INPUT                                                   04410000                
       SPACE                                                            04420000                
IIVSCH EQU   *                         INVITE INPUT SCHEDULED           04430000                
       TBN   PLOPM(,XR2),OPSTOP        IS THIS STOP INVITE INPUT        04440000                
       JT    IIIOCP                    JUMP IF STOP SINCE OPERATION OK  04450000                
       SPACE                                                            04460000                
*      INVALID OPERATION WITH INVITE INPUT OUTSTANDING                  04470000                
       SPACE                                                            04480000                
       B     CC4TI2                    BRANCH TO TERMINATION            04490000                
       DC    AL1(TCCIIO)               INVITE INPUT OUTSTANDING         04500000                
       SPACE                                                            04510000                
*      NO INVITE SCHEDULED SO THIS MUST NOT BE A STOP INVITE INPUT      04520000                
       SPACE                                                            04530000                
IINIIS EQU   *                         NO INVITE SCHEDULED              04540000                
       TBN   PLOPM(,XR2),OPSTOP        IS THIS STOP INVITE INPUT        04550000                
       JF    IIIOCP                    JUMP IF NOT STOP INVITE          04560000                
       SPACE                                                            04570000                
*      ERROR  - HAVE STOP INVITE WITH NO INVITE OUTSTANDING             04580000                
       SPACE                                                            04590000                
       B     CC4TI2                    BRANCH TO TERMINATION            04600000                
       DC    AL1(TCCNIO)               NO INVITES OUTSTANDING           04610000                
       EJECT                                                            04620000                
IIIOCP EQU   *                         CHECK FOR PROPER IO CAPABILITY   04630000                
************************************************************************04640000                
       MNN   IIIOTS+1,PLOPC(,XR2)      MOVE RIGHTMOST 4 BITS OF OP CODE 04650000                
*                                      TO TBN INSTURCTION               04660000                
       SBF   IIIOTS+1,X'FC'            SET OFF ALL BUT RIGHTMOST 2 BITS 04670000                
       SPACE                                                            04680000                
* NOW READY TO TEST TERMINAL CHARACTERISTICS VS REQUEST IO              04690000                
       SPACE                                                            04700000                
IIIOTS TBN   TUBCHR(,XR1),*-*          TEST TUB FOR PROPER IO CAPABILITY04710000                
       JT    IIRQTY                    JUMP IF I/O OKAY                 04720000                
       SPACE                                                            04730000                
*I/O CAPABILTY DOES NOT MATCH REQUEST                                   04740000                
       SPACE                                                            04750000                
       B     CC4TI2                    BRANCH TO TERMINATION            04760000                
       DC    AL1(TCCIOC)               I/O CAPABILITY DOES NOT MATCH    04770000                
* DETERMINE REQUEST TYPE                                                04780000                
       SPACE                                                            04790000                
* VALIDATE OP CODE AND MODIFIER TO EXTENT THAT THOSE BITS THAT MUST     04800000                
* BE OFF FOR A USER REQUEST ARE OFF                                     04810000                
       SPACE                                                            04820000                
* CHECK THAT OP CODE IS VALID FOR CONSOLE AS TERMINAL NAME              04830000                
       SPACE                                                            04840000                
IIKNSL EQU   *                         CONSOLE REQUEST HANDLER          04850000                
       TBN   IIVBYT,IIVKNS             IS OP VALID FOR CONSOLE          04860000                
*                                      -----START-------------------@04 04863000                
       CLI   PLOPC(,XR2),OPPUT+OPRUF   AND NOT RUF PUT MESSAGE ?        04866000                
       JC    IIKLEN,TANDNE             JUMP IF VALID                    04870000                
*                                      -----END---------------------@04 04875000                
       SPACE                                                            04880000                
* ERROR - HAVE OP CODE WHICH IS VALID OP BUT NOT FOR CONSOLE            04890000                
       SPACE                                                            04900000                
       B     CC4TI2                    BRANCH TO TERMINATION            04910000                
       DC    AL1(TCCIOK)               INVALID OP FOR CONSOLE           04920000                
       SPACE                                                            04930000                
IIKLEN EQU   *                         TEST CONSOLE LENGTH FOR > 80     04940000                
       TBN   PLOPC(,XR2),OPPUT         IS THIS AN OUTPUT OPERATION?     04950000                
       JF    IIRQTY                    BRANCH IF NOT                    04960000                
       CLC   PLOUTL(2,XR2),IIMAXK      LENGTH GREATER THAN 80?          04970000                
       JNH   IIRQTY                    BRANCH IF NOT                    04980000                
       SPACE                                                            04990000                
*  ERROR - OUTPUT LENGTH TO CONSOLE GREATER THAN 80                     05000000                
       SPACE                                                            05010000                
       B     CC4TI2                    BRANCH TO TERMINATION            05020000                
       DC    AL1(TCCIKL)               INVALID CONSOLE LENGTH           05030000                
       EJECT                                                            05040000                
IIRQTY EQU   *                                                          05050000                
       TBF   PLOPM(,XR2),OP$SYS+OPOLT+OPDISC CHECK OP MOD BITS    @01   05060000                
*                                      TO ASSURE VALIDITY SET           05070000                
       JT    IIVLNO                    JUMP IF OKAY                     05080000                
       SPACE                                                            05090000                
* ERROR - OP MODIFER HAS INVALID BITS FOR USER REQUEST                  05100000                
       SPACE                                                            05110000                
       B     CC4TI2                    BRANCH TO TERMINATION            05120000                
       DC    AL1(TCCIOP)               INVALID OP OR MODIFIER           05130000                
       EJECT                                                            05140000                
*      VALDIATE RECORD LENGTHS PASSED IN THE PARM LIST FROM THE USER    05150000                
       SPACE                                                            05160000                
IIVLNO EQU   *                         VALIDATE OUTPUT LENGTH           05170000                
       SPACE                                                            05180000                
.*                                                                      05190000                
       AIF   (&NOM).NML2               . SKIP IF *NO* MLTA SUPPORT      05200000                
.*                                                                      05210000                
       B     IIMCT                     BRN TO SEE IF MCT AND VALID      05220000                
       SPACE                                                            05230000                
.NML2  ANOP                                                             05240000                
       TBN   PLOPC(,XR2),OPPUT         DOES OP INVOLVE OUTPUT           05250000                
       JF    IIVLNI                    JUMP IF NO OUTPUT                05260000                
       SPACE                                                            05270000                
* CHECK OUTPUT LENGTH FOR GREATER THAN ZERO                             05280000                
       SPACE                                                            05290000                
       CLC   PLOUTL(2,XR2),CC0000      COMPARE LENGTH VS ZERO           05300000                
       JH    IIFUTH                    JUMP IF GREATER THAN ZERO        05310000                
       TBF   TUBAT1(,XR1),TUBKNM+TUBKNS  IS THIS THE CONSOLE?           05320000                
       JF    IIIOL                     BRANCH TO ERROR IF YES           05330000                
       SPACE                                                            05340000                
.*                                                                      05350000                
       AIF   (&NOM).NYET               . SKIP IF *NO* MLTA SUPPORT      05360000                
.*                                                                      05370000                
*   ZERO LENGTH IS OK IF THIS IS MLTA PUT EOT/EOB                       05380000                
       SPACE                                                            05390000                
       TBF   TUBCHR(,XR1),TUBLNE       IS THIS AN MLTA REEQUEST?        05400000                
       TBN   PLOPC(,XR2),OPBLK         IS IT PUT EOT/EOB?               05410000                
       BT    IIREND                    BRNACH IF YES TO RETURN          05420000                
       SPACE                                                            05430000                
.NYET  ANOP                                                             05440000                
.*                                                                      05450000                
       AIF   (&NOB).NBSC1              . SKIP IF *NO* BSCA SUPPORT      05460000                
.*                                                                      05470000                
*   ZERO LENGTH IS OK IF THIS IS PUT-EOT/EOB AND HE OWNS THE BSCA LINE  05480000                
       SPACE                                                            05490000                
       TBN   PLOPC(,XR2),OPBLK         IS THIS PUT EOT/EOB?             05500000                
       TBN   TUBAT2(,XR1),TUBOWN       DOES HE OWN THE BSCA LINE?       05510000                
       JT    IIVLNI                    BRANCH PAST ERROR IF YES         05520000                
       SPACE                                                            05530000                
.*                                                                      05540000                
       AIF   (&NDF).BEEP               . SKIP IF *NO* DFF SUPPORT       05550000                
.*                                                                      05560000                
       TBN   PLOPC(,XR2),OPEAU         IS THIS AN ERASE OPERATION       05570000                
       AIF   (&NRUF).BEEP1             . SKIP IF NO RUF SUPPORT         05572000                
       TBF   PLOPC(,XR2),OPRUF-OPEAU   AND NOT PRUF PUT ?           @04 05574000                
.BEEP1 ANOP                            .                                05576000                
       JT    IIVLNI                    BRANCH IF YES - LENGTH OK        05580000                
.BEEP  ANOP                                                             05590000                
.NBSC1 ANOP                                                             05600000                
* ERROR HAVE OUTPUT LENGTH NOT GREATER THAN ZERO                        05610000                
       SPACE                                                            05620000                
IIIOL  EQU   *                                                          05630000                
       B     CC4TI2                    BRANCH TO TERMINATION            05640000                
       DC    AL1(TCCIOL)               INVALID OUTPUT LENGTH            05650000                
       EJECT                                                            05660000                
       SPACE 2                                                          05670000                
*   CHECK FOR OUTPUT LENGTH GREATER THAN TP BUFFER LENGTH               05680000                
       SPACE                                                            05690000                
IIFUTH EQU   *                                                          05700000                
       AIF   (&NOB).NBTH                                                05710000                
       TBN   TUBTA2(,XR1),TASITB       IS THIS PUT WITH ITB?            05720000                
       JF    IINITB                    BRANCH IF NOT                    05730000                
       CLC   PLOUTL(2,XR2),TUBRCL(,XR1) OUTPUT LENGTH < RECORD LENGTH?  05740000                
       JNL   IINITB                    BRANCH PAST TERMINATION IF NOT   05750000                
       SPACE                                                            05760000                
*     *ERROR*   OUTPUT LENGTH LESS THAT RECORD LENGTH FOR PUT ITB       05770000                
       SPACE                                                            05780000                
       B     CC4TI2                    BRANCH TO TERMINATION            05790000                
       DC    AL1(TCCITB)                                                05800000                
IINITB EQU   *                                                          05810000                
       TBN   PLOPC(,XR2),OPBLK         IS THIS PUT EOT/EOB?             05820000                
       TBF   TUBTA1(,XR1),TASDFF       AND NOT MAPPING?                 05830000                
       TBN   TUBCHR(,XR1),TUBLNE       MLTA                             05840000                
       JF    IIVLNI                    BRANCH OUT IF NOT BOTH           05850000                
       CLC   PLOUTL(2,XR2),$CCCOM+#TPBUF IS OUTPUT LENGTH GREATER?      05860000                
       JNH   IIVLNI                    BRANCH PAST TERMINATION IF NOT   05870000                
       SPACE                                                            05880000                
*   *ERROR*  OUTPUT LENGTH IS GREATER THAN TP BUFFER LENGTH             05890000                
       SPACE                                                            05900000                
       B     CC4TI2                    BRNACH TO TERMINATION            05910000                
       DC    AL1(TCCLRG)                                                05920000                
       EJECT                                                            05930000                
       SPACE                                                            05940000                
* CHECK INPUT LENGTH FOR GREATER THAN ZERO IF APPROPRIATE               05950000                
       SPACE                                                            05960000                
.NBTH  ANOP                                                             05970000                
IIVLNI EQU   *                         CHECK INPUT LENGTH IF NECESSARY  05980000                
       TBN   PLOPC(,XR2),OPGET         DOES OP INVOLVE GET              05990000                
       JF    IIOUTR                    JUMP IF NOT                      06000000                
       SPACE                                                            06010000                
.*                                                                      06020000                
       AIF   (&NOB).BSC2               . SKIP IF *NO* BSCA SUPPORT      06030000                
.*                                                                      06040000                
*   CHECK INPUT LENGTH FOR BSCA GET BLOCK                             * 06050000                
       SPACE                                                            06060000                
       TBN   TUBCHR(,XR1),TUBLNE       IS THIS A BSCA TERMINAL?         06070000                
       TBN   TUBTA2(,XR1),TASBLK       IS THIS GET BLOCK?           @07 06080000                
       JF    IISETS                    BRANCH IF NOT                    06090000                
       SLC   IIWORK(2),IIWORK          CLEAR WORK AREA                  06100000                
       MVC   IICOUN(1),TUBBKF(,XR1)    MOVE BLOCKING FACTOR TO WORK     06110000                
IILOOP ALC   IIWORK,TUBRCL(2,XR1)      ADD RECORD LENGTH TO WORK AREA   06120000                
       SLC   IICOUN(1),CC0001          DECREMENT BLOCKING FACTOR        06130000                
       BNZ   IILOOP                    BRANCH IF MORE TO CONVERT        06140000                
       CLC   PLINL(2,XR2),IIWORK       IS INPUT AREA LARGE ENOUGH?  @07 06150000                
       JNH   IISETS                    BRANCH IF YES                    06160000                
       SPACE                                                            06170000                
*   ERROR - INPUT RECORD AREA NOT LARGE ENOUGH FOR GET BLOCK          * 06180000                
       SPACE                                                            06190000                
       B     CC4TI2                    BRANCH TO TERMINATION            06200000                
       DC    AL1(TCCIGB)               INVALID GET BLOCK LENGTH         06210000                
       SPACE                                                            06220000                
.BSC2  ANOP                                                             06230000                
IISETS EQU   *                         CHECK INPUT LENGTH               06240000                
*                                      OPERATION IS SCHEDULED ON TERMIN 06250000                
       CLC   PLINL(2,XR2),CC0000       COMPARE INPUT LENGTH VS ZERO     06260000                
       JH    II#TPB                    JUMP IF GREATER THAN ZERO        06270000                
       SPACE                                                            06280000                
*ERROR  - INPUT LENGTH NOT GREATER THAN ZERO                            06290000                
       SPACE                                                            06300000                
       B     CC4TI2                    BRANCH TO TERMINATION            06310000                
       DC    AL1(TCCIIL)               INVALID INPUT LENGTH             06320000                
       EJECT                                                            06330000                
II#TPB EQU   *                         IF INVITE-CHECK INPUT LENGTH VS  06340000                
.*                                                                      06350000                
       AIF   (&NOB).NBS3               . SKIP IF *NO* BSCA SUPPORT      06360000                
.*                                                                      06370000                
*********************************************************************** 06380000                
*   IF BSCA TERMINAL - CHECK IF RECORD AREA LARGE ENOUGN IF ITB       * 06390000                
*********************************************************************** 06400000                
       SPACE                                                            06410000                
       TBN   TUBCHR(,XR1),TUBLNE       IS THIS A BSCA LINE?             06420000                
       TBN   TUBTA2(,XR1),TASITB       IS ITB SPECIFIED?                06430000                
       JF    IIINRT                    BRANCH OUT IF NOT                06440000                
       CLC   PLINL(2,XR2),TUBRCL(,XR1) IS RECORD AREA LARGE ENOUGH?     06450000                
       JNL   IIINRT                    BRANCH OUT IF YES                06460000                
       SPACE                                                            06470000                
*   ERROR - RECORD AREA NOT LARGE ENOUGH FOR BSCA ITB                 * 06480000                
       SPACE                                                            06490000                
       B     CC4TI2                    BRANCH TO TERMINATION            06500000                
       DC    AL1(TCCITB)               RECORD AREA TOO SMALL FOR ITB    06510000                
       SPACE                                                            06520000                
IIINRT EQU   *                                                          06530000                
.NBS3  ANOP                                                             06540000                
       TBN   PLOPC(,XR2),OPINV         DOES OP INVOLVE INVITE INPUT     06550000                
       JF    IIOUTR                    JUMP IF NOT INVITE INPUT         06560000                
.*                                                                      06570000                
       AIF   (&NOB).NBS31              . SKIP IF *NO* BSCA SUPPORT      06580000                
.*                                                                      06590000                
       TBN   TUBAT2(,XR1),TUBOWN       DOES HE OWN A BSCA LINE?         06600000                
       L     TUBLCB(,XR1),XR1          POINT TO HIS DTF                 06610000                
       TBN   $BDOPC(,XR1),$BOPUT       WAS LAST OPERATION A PUT?        06620000                
       TBN   LCBAT1(,XR1),LCBNTQ       WAS LAST OPERATION PUT-MESSAGE?  06625000                
       JF    IINDPD                    BRANCH IF NEITHER - INVITE OK    06630000                
       MVI   PLRTC(,XR2),RCXDPD        SET DATA PENDING RETURN CODE     06640000                
       B     IIREND                    GO RETURN TO USER             @L 06650000                
IINDPD EQU   *                                                          06660000                
.*                                                                      06670000                
.NBS31 ANOP                            . CONTINUE HERE                  06680000                
*      HAVE INVITE INPUT SO INPUT ELNGTH MUST NOT BE LARGER THAN THE    06700000                
*      SIZE FO THE ENTIRE TP BUFFER                                     06710000                
       SPACE                                                            06720000                
       L     CCURTB,XR1                POINT XR1 AT CURRENT TCB         06730000                
       ALC   TCBIIC(1,XR1),CC0001      ADD 1 TO TCB INVITE INPUT COUNT  06740000                
       SPACE                                                            06750000                
       CLC   PLINL(2,XR2),$CCCOM+#TPBUF COMPARE INPUT LENGTH VS TP BUF  06760000                
       JNH   IIOUTR                    JUMP IF INPUT LENGTH NOT HIGH    06770000                
       SPACE                                                            06780000                
*      ERROR - FOR INVITE INPUT - THE INPUT LENGTH IS GT TP BUFFER SIZE 06790000                
       SPACE                                                            06800000                
       B     CC4TI2                    BRANCH TO TERMINATION            06810000                
       DC    AL1(TCCTPB)               TP BUFFER LENGTH PROBLEM         06820000                
       SPACE                                                            06830000                
       EJECT                                                            06840000                
************************************************************************06850000                
* POST $CC4CM AND ISSUE WAIT                                          * 06860000                
*            OR POST $CC4KM AND WAIT                                  * 06870000                
************************************************************************06880000                
       SPACE                                                            06890000                
IIOUTR EQU   *                                                          06900000                
IIIREQ EQU   *                         I/O INTERFACE REQUEST            06910000                
       SPACE                                                            06920000                
* DETERMINE IF REQUEST IS FOR $CC4KM OR $CC4CM                          06930000                
       SPACE                                                            06940000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 06950000                
       TBF   TUBAT1(,XR1),TUBKNM+TUBKNS IS THIS CONSOLE TUB?            06960000                
.*                                                                      06970000                
       AIF   (&DFF).NM2RT              SKIP IF MAPPING                  06980000                
       AIF   (&BPRT EQ '0').NBSY1      SKIP IF BSYPRT-NO              *L06983000                
       JT    IIBUSY                    NOT CONSOLE,CHK FOR BSYPRT     *L06986000                
.NBSY1 ANOP                                                           *L06987000                
       JT    IIUPST                    NOT CONSOLE, GO TO POST          06990000                
       AGO   .SK1RT                    AND SKIP TO CONSOLE SETUP        07000000                
.NM2RT JT    IICKMP                    NOT CONSOLE, CHEKC FOR MAPPING   07010000                
.SK1RT ANOP                            SET UP CONSOLE STUFF             07020000                
       SPACE                                                            07030000                
*      HAVE CONSOLE TUB - THUS TCB@ MUST BE PLUGGED INTO PARM LIST      07040000                
* AND THE PARM LIST MUST BE QUEUED FOR $CC4KM                           07050000                
       SPACE                                                            07060000                
       SBN   PL$OPM(,XR2),OPKONS       SET MODIFIER FOR CONSOLE         07070000                
       MVC   PLTCBA(2,XR2),CCURTB      MOVE CURRENT TCB@ TO PARM LIST   07080000                
       AIF   (&NDF).NMAP2              SKIP IF NOT MAPPING              07090000                
       J     IIUPST                    SKIP MAPPING PROCESSING          07100000                
       EJECT                                                            07110000                
       SPACE 2                                                          07120000                
*********************************************************************** 07130000                
* CHECK VALIDITY OF MAPPING REQUESTS                                  * 07140000                
*********************************************************************** 07150000                
       SPACE                                                            07160000                
IICKMP EQU   *                                                          07170000                
*                                      -------START S307880---------R14 07175000                
       CLI   PLOPC(,XR2),OPCOPY+OPPUT  IS THIS A COPY COMMAND?      R14 07180000                
       JNE   IINCPY                    BRANCH IF NOT                R14 07200000                
*                                      ---------END S307880---------R14 07205000                
       TBN   TUBTA1(,XR1),TASDFF       IS MAPPING SPECIFIED FOR TERM?   07210000                
       JT    IICKTN                    BRANCH IF YES                    07220000                
       SPACE                                                            07230000                
*   ERROR - COPY TO 3270 REQUESTED BUT NO MAPPING FOR THIS TERMINAL   * 07240000                
       SPACE                                                            07250000                
       B     CC4TI2                    BRANCH TO TERMINATION            07260000                
       DC    AL1(TCCICA)               INVALID COPY - ATTRIBUTES        07270000                
       SPACE                                                            07280000                
IICKTN EQU   *                                                          07290000                
       L     $CCCOM+@TNT,XR1           POINT TO FIRST TNT MAPPING       07300000                
       L     PLRECA(,XR2),XR2          POINT TO RECORD AREA             07310000                
IIAGIN CLI   0(,XR1),STOPER            IS THIS END OF TNT'S?            07320000                
       JNE   IINSTP                    BRANCH IF NOT                    07330000                
       SPACE                                                            07340000                
*   ERROR - SYMBOLIC TERMINAL NAME FOR COPY NOT FOUND IN TNT'S        * 07350000                
       SPACE                                                            07360000                
       B     CC4TI2                    BRANCH TO TERMINATION            07370000                
       DC    AL1(TCCICN)               INVALID COPY DUE TO NAME NF      07380000                
       SPACE                                                            07390000                
IINSTP CLC   5(6,XR2),5(,XR1)          IS THIS THE TNT FOR COPY?        07400000                
       JE    IITNT                     BRANCH IF YES                    07410000                
       LA    TNTLN(,XR1),XR1           POINT TO NEXT TNT                07420000                
       B     IIAGIN                    GO CHECK THIS ONE                07430000                
       SPACE                                                            07440000                
       EJECT                                                            07450000                
       SPACE                                                            07460000                
IITNT  L     TNTTUB(,XR1),XR1          POINT TO COPY TUB                07470000                
       L     CC@PRL,XR2                POINT TO PARAMETER LIST          07480000                
       ST    PL$RTC(,XR2),XR1          PUT SECOND TUB @ IN PARM LIST    07490000                
       CLI   TUBPHY(,XR1),TUB7M2       IS THIS A 3275?                *L07491000                
       JH    IIINCP                    BRANCH IF YES                  *L07492000                
       L     PLTUBA(,XR2),XR1          POINT TO OTHER TUB             *L07493000                
       CLI   TUBPHY(,XR1),TUB7M2       IS THIS A 3275                 *L07494000                
       JNH   IICMAP                    BRANCH IF NO                   *L07495000                
IIINCP EQU   *                         INVALID DEVICE FOR COPY          07590000                
       SPACE                                                            07600000                
*   ERROR - COPY REQUEST INVALID WITH 3275                            * 07610000                
       SPACE                                                            07620000                
       B     CC4TI2                    BRANCH TO TERMINALTION           07630000                
       DC    AL1(TCCICT)               COPY INVALID TO TERMINAL TYPE    07640000                
       SPACE                                                            07650000                
IINCPY EQU   *                                                          07660000                
       TBN   TUBTA1(,XR1),TASDFF       IS MAPPING SPECIFIED?            07670000                
       JT    IICMAP                    BRANCH IF YES                    07680000                
*                                      -------START S307847---------R14 07685000                
       CLI   PLOPC(,XR2),OPEAU+OPPUT   IS THIS AN ERASE             R14 07690000                
       JNE   IINEAU                    BRANCH IF NOT                R14 07700000                
*                                      ---------END S307847---------R14 07705000                
       SPACE                                                            07710000                
*   ERROR - EAU REQUESTED BUT NO MAPPING SPECIFIED FOR THIS TERMINAL    07720000                
       SPACE                                                            07730000                
       B     CC4TI2                    BRANCH TO TERMINATION            07740000                
       DC    AL1(TCCIEA)               INVALID ERASE REQUEST            07750000                
       SPACE                                                            07760000                
IINEAU TBN   PLOPC(,XR2),OPPUT+OPMSG   IS THIS A PUT EOT?               07770000                
       TBN   PLOPM(,XR2),OPLIST        IS THIS PUT OVERRIDES?           07780000                
       AIF   (&BPRT EQ '1').BSY1       SKIP IF BSYPRT-YES             *L07785000                
       JF    IIUPST                    BRANCH IF NOT                    07790000                
       AGO   .CONT                     PRINTER BUSY CODE              *L07792000                
.BSY1  ANOP                                                           *L07794000                
       JF     IIBUSY                   JUMP IF NOT                    *L07796000                
.CONT  ANOP                                                           *L07798000                
       SPACE                                                            07800000                
*   ERROR - PUT OVERRIDES REQUESTED BUT NO MAPPING ON TERMINAL        * 07810000                
       SPACE                                                            07820000                
       B     CC4TI2                    BRANCH TO TERMINATION            07830000                
       DC    AL1(TCCIPA)               INVALID PUT OVERRIDES            07840000                
       EJECT                                                            07850000                
IICMAP EQU   *                                                          07860000                
       TBN   PLOPC(,XR2),OPPUT         IS THE OP A PUT?                 07870000                
       JF    IICLMP                    BRANCH IF NOT                    07880000                
       TBN   PLOPC(,XR2),OPMSG         IS IT A PUT-EOT?                 07890000                
       JT    IICLMP                    BRANCH IF YES                    07900000                
       TBF   PLOPC(,XR2),OPCOPY        IS THIS A COPY OR ERASE?         07910000                
       JF    IICLMP                    BRANCH PAST ERROR IF YES         07920000                
       SPACE                                                            07930000                
*  ERROR - PUT REQUESTED TO MAPPING WITHOUT THE EOT MODIFIER            07940000                
       SPACE                                                            07950000                
       B     CC4TI2                    BRANCH TO TERMINATION            07960000                
       DC    AL1(TCCIPM)               INVALID PUT TO MAPPING           07970000                
       SPACE                                                            07980000                
IICLMP EQU   *                                                          07990000                
.BPRT  ANOP                            PRINTER BUSY CODE              *L07990300                
       AIF   (&BPRT EQ '0').NBSY       SKIP IF NO BUSY PRINT SUPPORT  *L07990600                
       AIF   (&DFF).NDF1               SKIP IF DFF                    *L07990900                
       JT    IIUPST                    GO TO POST                     *L07991200                
.NDF1  ANOP                                                           *L07991500                
IIBUSY EQU   *                                                        *L07991800                
       TBN   TUBAT4(,XR1),TUBBSY       DEVICE BUSY?                   *L07992100                
       JF    IINBSY                    NO,JUMP                        *L07992400                
       ST    CCIIPL+PLTUBA,XR1         SAVE TUB ADDRESS               *L07992700                
       L     TUBTCB(,XR1),XR1          --> TCB                        *L07993000                
       ST    TCBPL@(,XR1),XR2          SAVE PARM LIST @               *L07993300                
       LA    CCIIPL,XR2                --> INVITE INPUT PARM LIST     *L07993600                
       L     PLTUBA(,XR2),XR1          RESTORE TUB @                  *L07993900                
       SBN   TUBAT2(,XR1),TUBIIS       SET INVITE INPUT SCHEDULED     *L07994200                
       SBN   TUBAT4(,XR1),TUBWAT       SET TASK WAITING FOR TP        *L07994500                
       B     IIPSTS                    CHECK IF OK TO POST CM FOR TP  *L07994800                
       B     $CC4PS                    BRANCH TO POST ROUTINE         *L07995100                
       DC    AL2(256*WPAAII)           POST MASK FOR TP REQUEST       *L07995400                
       DC    AL2(TCBCOM)               @ TCB TO BE POSTED             *L07995700                
       B     $CC4WT                    ISSUE THE WAIT                 *L07996000                
       DC    AL2(256*WPABSY)           WAIT MASK FOR BUSY PRINTER     *L07996300                
       DC    IL1'1'                    WAIT COUNT                     *L07996600                
       DC    AL1(DPDSP+DPREG)          SAVE REGS AND MAKE NON-DISP    *L07996900                
       SBF   TUBAT4(,XR1),TUBWAT       SET TASK WAITING BIT OFF       *L07997200                
       L     TUBTCB(,XR1),XR2          -->TCB                         *L07997500                
       L     TCBPL@(,XR2),XR2          GET PARM LIST @                *L07997800                
       B     IIBUSY                    TEST FOR BUSY PRINTER          *L07998100                
IINBSY EQU   *                                                        *L07998400                
       AIF   (&NDF).NMAP2              SKIP IF NOT DFF                *L07998700                
       TBN   TUBTA1(,XR1),TASDFF       DFF TUB?                       *L07999000                
       JF    IIUPST                    JUMP IF NOT                    *L07999300                
.NBSY  ANOP                            END PRINTER BUSY CODE          *L07999600                
       B     IIMAPP                    BRANCH TO MAPPING INTERFACE      08000000                
       SPACE                                                            08010000                
       CLI   PLRTC(,XR2),RCOK          WAS MAPPING SUCCESSFUL?          08020000                
       JNE   IIREND                    SKIP PAST CM CALL ON ERROR @02   08030000                
.NMAP2 ANOP                                                             08040000                
       SPACE                                                            08050000                
IIUPST EQU   *                         PERFORM POST FOR USER TCB        08060000                
       TBN   PLOPC(,XR2),OPGET         DID OP INVOLVE A GET OPERATION?  08070000                
       JF    IINOII                    BRANCH OUT IF NOT                08080000                
       SBN   TUBAT2(,XR1),TUBIIS       SET ON READ BIT SCHEDULED        08090000                
IINOII EQU   *                                                          08100000                
       B     IIPSTS                    CHECK IF OKAY TO POST CM FOR TP  08110000                
       B     $CC4PS                    BR TO POST ROUTINE               08120000                
       DC    AL2(256*WPAAII)           POST MASK FOR TP REQUEST         08130000                
IIPTCB DC    AL2(TCBCOM)               TCB ADDR TO BE POSTED            08140000                
       SPACE                                                            08150000                
* ISSUE WAIT                                                            08160000                
       SPACE                                                            08170000                
IIDOWT EQU   *                         ISSUE THE WAIT                   08180000                
       B     $CC4WT                    BR TO WAIT ROUTINE               08190000                
IIPMK  EQU   *                         WAIT FIELD                       08200000                
       DC    AL2(256*WPAAII)           WAIT MASK FOR TP SCHEDULED       08210000                
       DC    IL1'1'                    WAIT COUNT                       08220000                
IIWAIT DC    AL1(DPDSP+DPREG)          SAVE REGS AND MAKE NON-DISP      08230000                
       ST    PLTUBA(,XR2),XR1          STOW TUB @ INTO CONSOLE PARM LST 08240000                
       SPACE                                                            08250000                
.*                                                                      08260000                
       AIF   (&NDF).REND               . SKIP IF *NO* DFF SUPPORT       08270000                
.*                                                                      08280000                
       B     IIMAPP                    BRANCH TO MAPPING INTERFACE      08290000                
.REND  ANOP                                                             08300000                
       EJECT                                                            08310000                
************************************************************************08320000                
* REENTER $CC4II AT THIS POINT AFTER USER REQUEST SCHEDULED             08330000                
************************************************************************08340000                
       SPACE                                                            08350000                
IIREND EQU   *                         RETURN TO USER PROGRAM           08360000                
       SLC   PLRECA(2,XR2),CC0006      SUBTRACT 6 FROM DATA ADDR        08370000                
       CLI   PLOPC(,XR2),OPGTA         WAS THE OP A GET ATTRIBUTES?     08380000                
       JE    IITEND                    BRANCH TO EXIT IF YES            08390000                
       SPACE                                                            08400000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 08410000                
       SBF   TUBAT3(,XR1),TUBSPF+TUBSWL ASSURE STOP FAILED AND SWALLOW  08420000                
*                                      BITS IN TUB ARE OFF              08430000                
       SPACE                                                            08440000                
IISEND EQU   *                         RETURN                           08450000                
.*                                                                      08460000                
       AIF   (&NDME).NDME1             . SKIP IF *NO* DME SUPPORT       08470000                
.*                                                                      08480000                
       SPACE                                                            08490000                
************************************************************************08500000                
*      CANCEL REQUEST ANALYSIS                                        * 08510000                
************************************************************************08520000                
       SPACE                                                            08530000                
* XR2 WILL POINT XT THE PARM LIST (GET OR INVITE INPUT)                 08540000                
* IF CANCEL HAS BEEN REQUESTED BY THE TERMINAL OPERATOR - CALL IN       08550000                
* TRANSIENT TO DO HIS THING                                             08560000                
       SPACE                                                            08570000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT THE TUB             08580000                
       TBN   TUBAT3(,XR1),TUBCNC       HAS CANCEL BEEN REQUESTED        08590000                
       JF    IITEND                    JUMP IF NO CANCEL                08600000                
       SPACE                                                            08610000                
* CANCEL HAS BEEN REQUESTED - BRING IN TRANSIENT                        08620000                
       SPACE                                                            08630000                
       B     $CC4PI                                                     08640000                
       DC    AL1(CC4NC)                CANCEL TRANSIENT FOR $CC4II      08650000                
.*                                                                      08660000                
.NDME1 ANOP                                                             08670000                
.*                                                                      08680000                
       SPACE 5                                                          08690000                
       SPACE                                                            08700000                
IITEND EQU   *                         LEAVING SOON                     08710000                
       B     $CC4TT                    BRACNH TO TRACE RETURN TO USER   08720000                
       DC    AL1(TTIIRT)               TRACE ID                         08730000                
       L     CCURTB,XR1                POINT XR1 AT CURRENT TCB         08740000                
       SBN   TCBTSK(,XR1),TCBDSV       INIDCATE TO RESTORE REGS         08750000                
       SPACE                                                            08760000                
       SBF   CCDPFL,DPREG+DPDSP        NO SAVE REGS AND LEAVE DISP      08770000                
       B     $CC4DP                    BR TO THE DISPATCHER             08790000                
       EJECT                                                            08800000                
*********************************************************************** 08810000                
*      HAVE ACCEPT INPUT REQUEST                                      * 08820000                
*********************************************************************** 08830000                
       SPACE                                                            08840000                
IIACI  EQU   *                         HAVE ACCEPT INPUT                08850000                
       B     $CC4TT                    BRANCH TO TRACE THE ACCEPT INPUT 08860000                
       DC    AL1(TTII)                 '0C' TRACE ID                    08870000                
       SPACE                                                            08880000                
       MVI   PL$OPC(,XR2),NOBIT        SET OP TO SHOW INITIAL ENTRY     08890000                
IICALL EQU   *                                                          08900000                
       B     $CC4PI                    BRANCH TO TRANSIENT HANDLER      08910000                
       DC    AL1(CC4AB)                ID FOR ACCEPT TRANSIENT          08920000                
       B     CC4TI2                    BRANCH TO TERMINATION ON ERROR   08930000                
       DC    AL1(*-*)                  ACCEPT IMPOSSIBLE TO SATISFY     08940000                
       SPACE                                                            08950000                
       J     IIGGSF                    JUMP IF ACCEPT SATISFIED         08960000                
       ST    CC@PRL,XR2                RESTORE PARAMETER LIST POINTER   08970000                
       SPACE                                                            08980000                
*      DETERMINE NOW WHETHER USER SHOULD BE TOLD ABOUT SHUTDOWN REQUESTP08990000                
       SPACE                                                            09000000                
************************************************************************09010000                
*            CHECK FOR SHUTDOWN                                       * 09020000                
************************************************************************09030000                
       SPACE                                                            09040000                
       SPACE                                                            09050000                
*      DETERMINE IF SYSTEM OPERATOR REQUESTED SHUTDOWN AND              09060000                
*      ALSO WHETHER USER HAS BEEN TOLD YET WITH NON-SHYTDOWN INQURIY OP 09070000                
       SPACE                                                            09080000                
       TBN   CCFLGA,CPSHUT             HAS SHUTDOWN BEEN REQUESTED      09090000                
       JF    IIAIWT                    JUMP IF NOT                      09100000                
       SPACE                                                            09110000                
*      SHTUDOWN HAS BEEN REQUESTED - DETERMINE IF USER TOLD ALREADY     09120000                
       SPACE                                                            09130000                
IITELL L     CCURTB,XR1                POINT XR1 AT CURRENT TCB         09140000                
       TBN   TCBDMG(,XR1),TCBSHQ       HAS USER BEEN TOLD               09150000                
       SBN   TCBDMG(,XR1),TCBSHQ       SET BIT THAT USER TOLD           09160000                
       JF    IIPGSH                    JUMP IF SHUTODWN REQUESTED       09170000                
       SPACE                                                            09180000                
IIAIWT EQU   *                         ISSUE WAIT                       09190000                
       B     $CC4WT                    BRANCH TO WAIT ROUTINE           09200000                
       DC    AL2(256*WPACP+256*WPASHD) WAIT FOR INVITE COMPLETE OR      09210000                
*                                      SHUTDOWN REQUEST                 09220000                
       DC    IL1'1'                    WAIT COUNT OF 1                  09230000                
       DC    AL1(DPDSP+DPREG)          MAKE NON-DISP AND SAVE REGISTERS 09240000                
       EJECT                                                            09250000                
************************************************************************09260000                
* RETURN AFTER BEING POSTED THAT A TUB HAS BEEN PUT IN THE TCB INVITE   09270000                
*  INPUT TUB QUEUE                                                      09280000                
*      OR SHTUDOWN HAS BEEN REQUESTED BY THE SYSTEM OPERATOR          * 09290000                
************************************************************************09300000                
       SPACE                                                            09310000                
*      DETERMINE IF POST WAS FOR INVITE INPUT COMPLETE                  09320000                
*      IF NOT MUST HAVE BEEN SHUTDONW REQUESTED                         09330000                
       SPACE                                                            09340000                
       L     CCURTB,XR1                POINT XR1 AT CURRENT TCB         09350000                
       TBN   TCBPMK(,XR1),WPACP        WAS POST FOR INVITE COMPLETE     09360000                
       BF    IITELL                    JUMP IF NOT INVIE POST           09370000                
       SPACE                                                            09380000                
*      HAD POST OF INVITE INPUT COMPLETE                                09390000                
       SPACE                                                            09400000                
       ST    CC@PRL,XR2                STORE PARM LIST ADDRESS          09410000                
       SPACE                                                            09420000                
       MVI   PL$OPC(,XR2),ALLBIT       SET OP TO SHOW SECONDARY ENTRY   09430000                
       B     IICALL                    BRANCH TO RECALL TRANSIENT       09440000                
       SPACE                                                            09450000                
*      TELL USER SHUTDOWN REQUESTED NOW                                 09460000                
       SPACE                                                            09470000                
IIPGSH EQU   *                         SHUTDOWN HAS BEEN RREQUESTED     09480000                
       MVI   PLRTC(,XR2),RCXSHD        PLUG SHUTDOWN REQUESTED RTN CODE 09490000                
       B     IISEND                    BR TO RETURN TO USER             09500000                
       SPACE 4                                                          09510000                
*********************************************************************** 09520000                
*            ACCEPT INPUT SATISFIED                                   * 09530000                
*********************************************************************** 09540000                
       SPACE                                                            09550000                
IIGGSF EQU   *                         GET GENERAL SATIFIED             09560000                
.*                                                                      09570000                
       AIF   (&MIN NE '1').RES         . SKIP IF *NOT* MINRES-YES       09580000                
.*                                                                      09590000                
.*                                                                      09600000                
       AIF   (&DFF).RESM               . SKIP IF DFF SUPPORTED          09610000                
.*                                                                      09620000                
       B     $CC4PI                    BRANCH TO TRANSIENT INTERFACE    09630000                
       DC    AL1(CC4AC)                ACCEPT INPUT SATISFIED TRAN.     09640000                
       B     IISEND                    GO TO RETURN TO USER             09650000                
.*                                                                      09660000                
.RES   AIF   (&MIN).NORS               . SKIP IF MINRES-YES             09670000                
.*                                                                      09680000                
.RESM  ANOP                                                             09690000                
       ST    CC@PRL,XR2                STORE PARAMETER LIST ADDRESS     09700000                
       L     PLTUBA(,XR2),XR2          POINT AT TUB                     09710000                
       L     CCURTB,XR1                POINT XR1 AT CURRENT TCB         09720000                
       SLC   TCBIIC(1,XR1),CC0001      SUBTRACT 1 FROM INVITE COUNT     09730000                
       SBF   TUBAT2(,XR2),TUBIIS+TUBIIQ SET OFF TUB INVITE STATUS BITS  09740000                
       SPACE                                                            09750000                
.*                                                                      09750300                
       AIF   (&NRUF).NPRUF             . SKIP IF NO PRUF SUPPORT        09750600                
*                             -----START----------------------------@04 09750900                
*    PROGRAM READ UNDER FORMAT CODE.                                    09751200                
       TBN   TUBAT2(,XR2),TUBIMI       THIS A PROGRAM REQUEST ?         09751500                
       JF    IINRUF                    NO, SKIP PRUF SET UP             09751800                
       TBN   TUBCHR(,XR2),TUBLNE       THIS NON-BSCA LINE OR            09752100                
       TBF   TUBSCS(,XR2),TUBRUF       NON-RUF TUB OR                   09752400                
       TBN   TCBDMG(,XR1),TCBRUF       NON-RUF TASK ?                   09752700                
       L     CC@PRL,XR1                POINT TO PARM LIST, THEN         09753000                
       JF    IIRUF                     GO DO FINAL NON-PRUF CHECK       09753300                
       SPACE                                                            09753600                
       MVI   PLRTC-1(,XR2),RCOK        RETURN CODE = 02; NON-PRUF   @05 09753900                
       MVI   PLRTC(,XR2),RCXEOT        DATA FOR PRUF PROGRAM        @05 09754200                
       J     IINRUF                    GO DEQUEUE TUB               @05 09754500                
       SPACE                                                            09754800                
IIRUF  EQU   *                         *                                09755100                
       TBN   TUBCHR(,XR2),TUBLNE       THIS A BSCA LINE AND             09755400                
       TBN   TUBSCS(,XR2),TUBRUF       PRUF HANDLING TERMINAL AND       09755700                
       TBN   TUBTA1(,XR2),TASDFF       DFF TERMINAL                 @06 09755800                
       JF    IINRUF                    NO, BYPASS PRUF SET UP           09756000                
       SPACE                                                            09756300                
*  IF TASK IS NOT A DFF PROGRAM - DON'T SET-UP FOR MOVE             @06 09756340                
       SPACE 1                                                          09756380                
       L     TUBTCB(,XR2),XR1          XR1 --> TCB                  @06 09756420                
       CLI   TCBDFF-1(,XR1),NOBIT      DFF TASK ?                   @06 09756460                
       JE    IINRUF                    NO - JUMP                    @06 09756500                
       SPACE 1                                                          09756540                
       L     TPRECA(,XR2),XR1          POINT AT DATA                    09756600                
       A     X$FFFF,XR1                DECREMENT POINTER BACK ONE       09756900                
       MVC   IIMOVE+2,PL$RTC(1,XR2)    SET UP LENGTH FOR GM MOVE        09757200                
IIMOVE EQU   *                         *                                09757500                
       MVC   #(,XR1),0(4,XR1)          DFF DATA AREA                    09757800                
       ALC   PLRECA(,XR2),PL$RTC(2,XR2) BUMP RECORD ADDR PAST NAME      09758100                
       SPACE                                                            09758400                
IINRUF EQU   *                                                          09758700                
*                             -----END------------------------------@04 09759000                
.NPRUF ANOP                                                             09759300                
       SPACE                                                            09759600                
*  DEQUEUE THE TUB FROM INVITE INPUTE TUB QUEUE                         09760000                
       L     CC@PRL,XR1                POINT TO PARAMETER LIST          09770000                
       L     PL$RTC(,XR1),XR1          POINT TO PREVIOUS TUB            09780000                
       MVC   0(2,XR1),TUBINQ(,XR2)     DEQUEUE THE TUB                  09790000                
       TBN   TUBAT1(,XR2),TUBKNS       IS THIS CONSOLE SUB TUB?     @08 09792000                
       JF    IINCON                    NO.                          @08 09794000                
       SLC   TUBINQ(2,XR2),TUBINQ(,XR2)  CLR CONSOLE INQ CHAIN      @08 09796000                
IINCON EQU   *                                                      @08 09798000                
       EJECT                                                            09800000                
************************************************************************09810000                
* SET UP USER RECORD AREA                                               09820000                
************************************************************************09830000                
       SPACE                                                            09840000                
*  SET UP FOR MOVE OF SYSMBOLIC TERMINAL NAME TO USER RECORD AREA       09850000                
       SPACE                                                            09860000                
       L     TUBTNT(,XR2),XR1          POINT XR1 AT TNT                 09870000                
       LA    TNTNAM(,XR1),XR1          POINT XR1 AT NAME IN TNT ENTRY   09880000                
       ST    IIMVTN+4,XR1              STORE NAME @ IN MVC INSTUCTION   09890000                
       SPACE                                                            09900000                
*      BEGIN TO PLUG USER'S ACCEPT INPUT PARM LIST                      09910000                
       SPACE                                                            09920000                
       L     CC@PRL,XR1                POINT XR1 AT ACCEPT PARM LIST    09930000                
       MVC   PLRTC(2,XR1),TPRTC(,XR2)  MOVE COMPLETION CODE FROM TUB    09940000                
       SPACE                                                            09950000                
* DETERMINE IF OPERATION WAS SUCCESSFUL OR NOT                          09960000                
* IF UNSUCCESSFUL - DATA IS NOT TO BE MOVED                             09970000                
       SPACE                                                            09980000                
       CLI   TPRTC(,XR2),RCXEDT        CHECK AGAINST HIGHEST RETURN FOR 09990000                
*                                      WHICH DATA  ACCOMPNAIES THE PM LT10000000                
       JNH   IIBGPG                    JUMP IF RETURN CODE INDICATES    10010000                
*                                      DATA WITH THE PARM LIST          10020000                
       CLI   TPRTC(,XR2),RCXNAV        WAS TERMINAL UNAVAILABLE?        10030000                
       JNE   IINAV                     BRANCH IF NOT                    10040000                
       MVC   PLEFFL(2,XR1),TPEFFL(,XR2) MOVE LENGTH TO PARM LIST        10050000                
       J     IIMVDN                    SKIP PAST FREEMAIN               10060000                
       EJECT                                                            10070000                
       SPACE                                                            10080000                
* HAD UNSUCCESSFUL OPERATION                                            10090000                
* SET DATA LENGTH AT ZERO AND MOVE ALL BLANKS TO RECORD AREA            10100000                
* SET IMI BIT ON TEMPORARILY AS INDICATION NOT TO ISSUE FREEMIAN        10110000                
* IMI ON ALONG WITH AN EFFECTIVE LENGTH OF ZERO WILL CASUE THE FREEMAIN 10120000                
* TO BE SKIPPED                                                         10130000                
       SPACE                                                            10140000                
IINAV  EQU   *                                                          10150000                
       SLC   TPEFFL(2,XR2),TPEFFL(,XR2) ZERO EFFECTIVE INPUT LENGTH     10160000                
       SBN   TUBAT2(,XR2),TUBIMI       SET IMI BIT ON TO INDICATE NO FRM10170000                
.*                                                                      10180000                
       AIF   (&NDF).BGPG               . SKIP IF *NO* DFF SUPPORT       10190000                
.*                                                                      10200000                
       MVI   PL$OPC(,XR1),BRNOP        NO-OP THE BRANCH TO MAPPINT      10210000                
.BGPG  ANOP                                                             10220000                
       SPACE                                                            10230000                
IIBGPG EQU   *                         BEGIN TO PLUG USER PARM LIST     10240000                
       MVC   MVL+MVLTOL,PLINL(2,XR1)   MOVE TARGET LENGTH TO MOVE LIST  10250000                
       MVC   PLEFFL(2,XR1),TPEFFL(,XR2) MOVE INVITE EFFL LENGTH TO GG PL10260000                
IISKIP L     PLRECA(,XR1),XR1          POINT TO RECORD AREA             10270000                
IIMVTN MVC   IISTNL-1(IISTNL,XR1),*-*  MOVE STN TO USER RECORD AREA     10280000                
       LA    IISTNL(,XR1),XR1          BUMP XR1 TO 1ST BYTE OF DATA     10290000                
       ST    MVL+MVLTOA,XR1            STORE ADDRESS IN MOVE LIST       10300000                
       SPACE                                                            10310000                
.*                                                                      10320000                
       AIF   (&NDF).LOAD               . SKIP IF *NO* DFF SUPPORT       10330000                
.*                                                                      10340000                
       L     CC@PRL,XR1                RESTORE POINTER TO PARM LIST     10350000                
       TBN   TUBTA1(,XR2),TASDFF       IS MAPPING FOR THIS TERMINAL?    10360000                
       JF    IINMAP                    BRANCH IF NOT                    10370000                
       SPACE                                                            10380000                
       L     CC@PRL,XR2                POINT TO PARAMETER LIST          10390000                
       MVC   IIBRCH+1,PL$OPC(1,XR2)    SET CONDITION CODE IN BRANCH     10400000                
IIBRCH EQU   *                                                          10410000                
       BC    IIMAPP,BR97               BRANCH TO MAPPING INTERFACE      10420000                
       SPACE                                                            10430000                
.LOAD  ANOP                                                             10440000                
       L     CC@PRL,XR1                POINT TO PARAMETER LIST          10450000                
.*                                                                      10460000                
       AIF   (&NDF).CLC                . SKIP IF *NO* DFF               10470000                
.*                                                                      10480000                
       L     PLTUBA(,XR1),XR2          POINT TO TUB                     10490000                
       CLI   PL$OPC(,XR1),BR97         WAS THE BRANCH NO-OPED (ERROR)   10500000                
       JE    IIFREE                    BRANCH IF MAPPING WAS CALLED     10510000                
IINMAP EQU   *                                                          10520000                
.CLC   ANOP                                                             10530000                
       CLC   PLINL(2,XR1),TPEFFL(,XR2) COMPARE INVITE EFFL VS GET MAX IN10540000                
       JNL   IIGTRA                    JUMP UNLESS MAX IN FOR GG IS LOW 10550000                
       SPACE                                                            10560000                
* HAVE ACCEPT INPUT WHOSE INPUT LENGTH IS LESS THAN THE EFFECTIVE LENGTH10570000                
* OF THE INVNINVITE INPUT FROM WHICH IT IS GETTING DATA                 10580000                
*      THUS MUST RESET ACCEPT EFFECTVIE LENGTH TO ITS REQUESTED LENGTH  10590000                
*      LNEGHT    AND MUST SET BIT IN RETURN CODE TO INDICATE TRUNCATION 10600000                
       SPACE                                                            10610000                
       SBN   PLRTC(,XR1),RCXDTR        SET DATA TRUNCATED BIT IN RT CODE10620000                
       MVC   PLEFFL(2,XR1),PLINL(,XR1) SET GG EFFL TO IT REQUESTED LENGH10630000                
       SPACE                                                            10640000                
IIGTRA EQU   *                         GET RECORD ADDRESS               10650000                
       EJECT                                                            10660000                
*********************************************************************** 10670000                
*            MOVE DATA FROM INVITE HOLD BUFFER TO USER RECORD AREA     *10680000                
*********************************************************************** 10690000                
       SPACE                                                            10700000                
* SET UP MOVE LIST WITH SOURCE FIELD INFORMATION                        10710000                
       SPACE                                                            10720000                
       MVC   MVL+MVLFRL(2),TPEFFL(,XR2) MOVE IN SOURCE LENGHT           10730000                
       MVC   MVL+MVLFRA(2),TPRECA(,XR2) MOVE IN SOURCE ADDRESS          10740000                
       SPACE                                                            10750000                
* *DETERMINE IF EFFECTIVE LENGTH GREATER THAN 0                         10760000                
* IF NOT - DO NOT MOVE ANY DATA                                         10770000                
* INSTEAD MOVE ALL BLANKS TO THE USER RECORD AREA                       10780000                
       SPACE                                                            10790000                
       CLC   TPEFFL(2,XR2),CC0000      IS THERE DATA TO BE MOVED        10800000                
       JNE   IIMVDT                    JUMP IF DATA                     10810000                
       SPACE                                                            10820000                
* HAVE TO CLEAR ENTIRE USER RECORD TO BLANKS                            10830000                
* THUS SET UP MOVE LIST TO MOVE ONE BLNAK AND CLEAR THE REST OF THE FIEL10840000                
       SPACE                                                            10850000                
       MVC   MVL+MVLFRL(2),CC0001      SET UP SOURCE LENGTH AS 1        10860000                
       MVC   MVL+MVLFRA(2),II@BLK      SET SOURCE @ TO POINT TO BLANK   10870000                
       J     IIDOMV                    JUMP TO DO THE MOVE NOW          10880000                
       SPACE                                                            10890000                
* DETERMINE WHETHER TO BUMP THE SOURCE ADDRESS PAST A PROGRAM NAME WHICH10900000                
* WILL SIT IN THE SOURCE RECORD AREA FOR AN IMPLICIT INVITE INPUT       10910000                
       SPACE                                                            10920000                
IIMVDT EQU   *                         MOVE THE DATA                    10930000                
       TBN   TUBAT2(,XR2),TUBIMI       IS PROGRAM NAME SITTING IN SOURCE10940000                
*                                      FILED AREA                       10950000                
       JF    IIDOMV                    JUMP IF NO PROGRAM NAME IN AREA  10960000                
       SPACE                                                            10970000                
* BUMP THE SOURCE RECORD AREA ADDRESS PAST THE PROGRAM NAME             10980000                
* THE AMOUNT TO BUMP THE ADRESS BY RESIDES IN PL$RTC OF THE INVITE PARM 10990000                
* LIST SITTING IN THE TUB                                               11000000                
       SPACE                                                            11010000                
       ALC   MVL+MVLFRA(2),TP$RTC(,XR2) BUMP ADDR PAST PROGRAM NAME     11020000                
       SPACE                                                            11030000                
IIDOMV EQU   *                         DO THE MOVE NOW                  11040000                
       ST    IILAX2+3,XR2              SAVE THE TUB@                    11050000                
       LA    MVL,XR2                   POINT XR2 AT MOVE LIST           11060000                
       B     $CC4MX                    BR TO MOVE AND CLEAR ROUTINE     11070000                
       SPACE                                                            11080000                
* THE MOVE IS NOW COMPLETE                                              11090000                
       SPACE                                                            11100000                
       L     CC@PRL,XR1                POINT XR1 AT GG PARM LIST        11110000                
IILAX2 LA    *-*,XR2                   RESTORE XR2 TO POINT TO TUB      11120000                
IISVX2 EQU   *-1                       SAVE XR2 - TUB@                  11130000                
       EJECT                                                            11140000                
*********************************************************************** 11150000                
*      FREEMAIN THE INVITE INPUT HOLD BUFFER                           *11160000                
*********************************************************************** 11170000                
       SPACE                                                            11180000                
* XR2 POINTS AT TUB                                                     11190000                
       SPACE                                                            11200000                
* IF EFFECTIVE DATA LENGTH OF INVITE INPUT WAS ZERO AND                 11210000                
* THE INVITE WAS  AN IMPLICIT INVITE INPUT                              11220000                
* THEN DO NOT FREEMAIN SINCE THE FREEMIAN HAS ALREADY OCCURRED          11230000                
* ASSURE THAT IMPLICIT INVITE INPUT BIT IN TUB IS OFF                   11240000                
       SPACE                                                            11250000                
IIFREE EQU   *                                                          11260000                
       TBN   TPOPM(,XR2),OPNFG         IS FREEMAIN BIT ON?        @01   11261000                
       SBF   TPOPM(,XR2),OPNFG         RESET THE FREEMAIN BIT     @01   11262000                
       JF    IIBLEW                    BRANCH OUT IF NOT ON       @01   11263000                
       SBF   TUBAT2(,XR2),TUBIMI       RESET IMI IN CASE IT'S ON  @01   11264000                
       J     IIFRMN                    GO TO FREEMAIN RECA        @01   11265000                
IIBLEW EQU   *                                                    @01   11266000                
       TBN   TUBAT2(,XR2),TUBIMI       WAS IT IMPLICIT INVITE           11270000                
       SBF   TUBAT2(,XR2),TUBIMI       SET IMPLICIT INVITE BIT OFF      11280000                
       CLC   TPEFFL(2,XR2),CC0000      IS EFFL FOR INVITE -0            11290000                
       JC    IIMVDN,NONE+HI+LO+FALSE   JUMP IF IMPLICIT INVITE WITH     11300000                
*                                      EFFECTIVE LENGTH OF ZERO         11310000                
       SPACE                                                            11320000                
IIFRMN EQU   *                         FREEMAIN THE HOLD BUFFER         11330000                
       L     TPRECA(,XR2),XR2          POINT XR2 AT RECORD AREA TO BE FM11340000                
       B     CMFMRT                    BRANCH TO FREEMAIN INTERFACE     11350000                
       SPACE                                                            11360000                
* POST $CC4CM ABOUT THE FREEMAIN IN HIS STORAGE AREA                    11370000                
       SPACE                                                            11380000                
       B     $CC4PS                    BRANCH TO POST                   11390000                
       DC    AL2(WPBFR)                FREEMAIN POST BIT                11400000                
       DC    AL2(TCBCOM)               POST CM'S TCB                    11410000                
       SPACE                                                            11420000                
IIMVDN EQU   *                         MOVE COMPLETE SO RETURN TO USER  11430000                
       SPACE                                                            11440000                
       LA    0(,XR1),XR2               POINT XR2 AT PARM LIST FOR TRACE 11450000                
       B     IISEND                    BRANCH TO RETURN TO REQUESTOR    11460000                
.*                                                                      11470000                
.NORS  AIF   (&NOM).MAPP               . SKIP IF *NO* MLTA SUPPORT      11480000                
.*                                                                      11490000                
       EJECT                                                            11500000                
************************************************************************11510000                
*      MCT CHECK FOR INPUT AND OUTPUT CAPABILITY                      * 11520000                
************************************************************************11530000                
       SPACE                                                            11540000                
*      XR1   POINTS AT TUB                                              11550000                
*      XR2 POINTS AT PARM LIST                                          11560000                
       SPACE                                                            11570000                
IIMCT  EQU   *                         1050 CHECK                       11580000                
       ST    IIMCTR+3,ARR              SAVE ARR                         11590000                
       SPACE                                                            11600000                
*      DOES THIS OP INVOLVE MULTI-COMPONENT TERMINAL                    11610000                
       SPACE                                                            11620000                
       TBN   TUBCHR(,XR1),TUBMCT       IS THIS MCT                      11630000                
       JF    IIMCTR                    JUMP IF NOT TO RETURN NOW        11640000                
       SPACE                                                            11650000                
*      HAVE MCT - SO CHECK COMPONENT INDICES                            11660000                
       SPACE                                                            11670000                
       CLI   PL$MCT(,XR2),NOBIT        ARE COMPONENT INDICES IN PARM LIS11680000                
       JNE   IIMCTC                    JUMP IF INDICES ALREADY IN PARM L11690000                
       MVC   PL$MCT(1,XR2),TUBPCS(,XR1) PLUB MCT INDICES INTO PARM LIST 11700000                
       SPACE                                                            11710000                
IIMCTC EQU   *                         CHECK MCT INDICES                11720000                
       TBN   PLOPC(,XR2),OPPUT         DOES OP INVOLVE PUT              11730000                
       TBF   PL$MCT(,XR2),MCTOUT       IS MCT OUTPUT CAPABLE            11740000                
       JF    IIMCTG                    JUMP IF OUTPUT CAPABLE OR NO PUT 11750000                
       SPACE                                                            11760000                
*      ERROR - SUB TERMINAL NAME SPECIFIED FOR OUTPUT BUT NO            11770000                
*      OUTPUT DEVICES ASSOCIATED WITH THIS NAME                         11780000                
       SPACE                                                            11790000                
       B     CC4TI2                    BRANCH TO TERMINATION            11800000                
       DC    AL1(TCCIOC)               I/O CAPABILITY - NO MATCH        11810000                
       SPACE                                                            11820000                
IIMCTG EQU   *                         CHECK INPUT                      11830000                
       TBN   PLOPC(,XR2),OPGET         DOES OP INVOLVE GET              11840000                
       TBF   PL$MCT(,XR2),MCTIN        IS MCT INPUT CAPABLE             11850000                
       JF    IIMCTR                    JUMP IF INPUT CAPABLE OR NO GET  11860000                
       SPACE                                                            11870000                
*      ERROR - SBU TERMINAL NAME SPECIFIED FOR INPUT OPERATION BUT NO   11880000                
*      INPUT DEVICE ASSOCIATED WITH THIS NAME                           11890000                
       SPACE                                                            11900000                
       B     CC4TI2                    BRANCH TO TERMINATION            11910000                
       DC    AL1(TCCIOC)               I/O CAPABILITY - NO MATCH        11920000                
       SPACE                                                            11930000                
IIMCTR B     ####                      RETURN                           11940000                
       EJECT                                                            11950000                
.*                                                                      11960000                
.MAPP  ANOP                                                             11970000                
       AIF   (&NDF).CKIN               . SKIP IF *NO* DFF SUPPORT       11980000                
.*                                                                      11990000                
*********************************************************************** 12000000                
* INTERFACE TO MAPPING MODULE - XR2 POINTS AT PARAMETER LIST          * 12010000                
*********************************************************************** 12020000                
       SPACE                                                            12030000                
IIMAPP EQU   *                         INTERFACE TO MAPPING             12040000                
       ST    IIRTRN+3,ARR              SAVE RETURN ADDRESS              12050000                
       L     PLTUBA(,XR2),XR1          POINT TO TUB                     12060000                
       TBN   TUBTA1(,XR1),TASDFF       IS MAPPING FOR THIS TERMINAL     12070000                
       JF    IIRTRN                    BRANCH IF NOT MAPPING            12080000                
       MVC   IIIIII+3,$CCCOM+#DFENT(2) MOVE IN MAPPING ENTRY ADDRESS    12090000                
       L     CCURTB,XR1                POINT TO CURRENT TCB             12100000                
       CLI   TCBDFF-1(,XR1),NOBIT      IS MAPPING FOR THIS TASK?        12110000                
       L     PLTUBA(,XR2),XR1          RESTORE TUB POINTER              12120000                
       JNE   IIXXXX                    BRANCH IF YES                    12130000                
       TBN   PLOPC(,XR2),OPSTAT        IS THIS A STATUS REQUEST?        12140000                
       JT    IIRTRN                    BRANCH TO RETURN IF YES          12150000                
       J     IIDFER                    TERMINATE FOR NO MAPPING IN TASK 12160000                
IIXXXX EQU   *                                                          12170000                
       L     IIRTRN+3,XR1              SAVE ARR IN XR1                  12180000                
IIIIII B     *-*                       BRANCH TO MAPPING MODULE         12190000                
       ST    IIRTRN+3,XR1              STORE RETURN ADDRESS IN BRANCH   12200000                
       ST    CC@PRL,XR2                RESTORE PARAMETER LIST POINTER   12210000                
       L     PLTUBA(,XR2),XR1          RESTORE TUB POINTER              12220000                
IIRTRN B     *-*                                                        12230000                
       SPACE 2                                                          12240000                
*----ERROR----DFF TERMINAL REFERENCED BY NON-DFF TASK                   12250000                
       SPACE 2                                                          12260000                
IIDFER EQU   *                                                          12270000                
       B     CC4TI2                    BRANCH TO TERMINATION            12280000                
       DC    AL1(TCCNDF)                                                12290000                
       SPACE                                                            12300000                
       SPACE                                                            12310000                
.CKIN  ANOP                                                             12320000                
       TITLE 'COMMUNICATIONS&#.I/O&#.INTERFACE&#.--&#.SYSTEM&#.I/O'     12330000                
************************************************************************12340000                
*      ENTRY POINT FOR I/O INTERFACE FOR THE SYSTEM                     12350000                
************************************************************************12360000                
       SPACE                                                            12370000                
$CC4IS EQU   *                         I/O INTERFACE FOR SYSTEM         12380000                
       A     CC0001,ARR                ADD 1 TO ARR TO POINT IT AT RIGHT12390000                
*                                      END OF PARM LIAT ADDR OF ADDR    12400000                
       ST    MOVE+5,ARR                STORE ADDR OF PARM LIST ADDR IN M12410000                
*                                      MVC INSTRUCTION                  12420000                
       A     CC0001,ARR                BUMP ARR TO NSI                  12430000                
       SPACE                                                            12440000                
* MOVE PARM LIST ADDR TO CC@PRL                                         12450000                
       SPACE                                                            12460000                
MOVE   MVC   CC@PRL(2),*-*             MOVE PARM LIST ADDR TO CC@PRL    12470000                
       SPACE                                                            12480000                
*      SAVE THE REGISTERS                                               12490000                
       SPACE                                                            12500000                
       ST    CCARR,ARR                 SAVE ARR                         12510000                
       B     CCPSAV                    BR TO SAVE THE REG IN TCB        12520000                
       SPACE                                                            12530000                
************************************************************************12540000                
* FIRST VERIFY TERMINAL OR CONSOLE                                      12550000                
* POST CM WITH TP IO RETQUEST                                           12560000                
* OR POST KM WITH TP REQUEST                                            12570000                
* WAIT                                                                  12580000                
* RETURN TO INVOKER                                                     12590000                
************************************************************************12600000                
       SPACE                                                            12610000                
* DETERMINE CONSOLE OR TERMINAL REQUEST                                 12620000                
       SPACE                                                            12630000                
       L     CC@PRL,XR2                POINT XR2 AT PARM LIST           12640000                
       SPACE                                                            12650000                
       SLC   PLCHN(2,XR2),PLCHN(,XR2)  CLEAR CHAIN POINTER IN PARM LIST 12660000                
       SLC   PL$RTC(4,XR2),PL$RTC(,XR2) ZERO INTERNAL RETRUN CODE       12670000                
*                                      AND INTERNAL OP CODE             12680000                
       SPACE                                                            12690000                
       L     PLTUBA(,XR2),XR1          POINT XR1 AT TUB                 12700000                
       B     $CC4TT                    BRANCH TO TRACE ROUTINE          12710000                
       DC    AL1(TTIS)                 TRACE FOR $CC4IS                 12720000                
       SPACE                                                            12730000                
*      TAKE A TRACE AT THIS POINT                                       12740000                
       SPACE                                                            12750000                
*      DETERMINE IF THIS IS CONSOLE REQUEST                             12760000                
       SPACE                                                            12770000                
       TBF   TUBAT1(,XR1),TUBKNM+TUBKNS  IS THIS THE CONSOLE?           12780000                
       JT    ISREQ                     BRANCH OUT IF NOT                12790000                
       EJECT                                                            12800000                
*********************************************************************** 12810000                
* HAVE CONSOLE REQUEST                                                  12820000                
*********************************************************************** 12830000                
       SPACE                                                            12840000                
       SPACE                                                            12850000                
       SBN   PL$OPM(,XR2),OPKONS       SET MODIFIER FOR CONSOLE         12860000                
       MVC   PLTCBA(2,XR2),CCURTB      MOVE CURRENT TCB@ TO PARM LIST   12870000                
       J     ISPOST                    JUMP TO ISSUE POST               12880000                
       EJECT                                                            12890000                
*********************************************************************** 12900000                
* HAVE TPIO REQUEST FOR A TERMINAL                                      12910000                
* POST $CC4CM AND ISSUE WAIT                                          * 12920000                
*********************************************************************** 12930000                
       SPACE                                                            12940000                
*POST CM FOR TP REQUEST                                                 12950000                
       SPACE                                                            12960000                
* IF OPERATION INVOLVES READ - SET ON READ SCHEDULED BIT IN TUB         12970000                
       SPACE                                                            12980000                
ISREQ  EQU   *                         HAVE TP REQUEST FOR $CC4CM       12990000                
.*                                                                      13000000                
       AIF   (&N1050).NMCT9            . SKIP IF *NO* 1050 SUPPORT      13010000                
.*                                                                      13020000                
       SPACE                                                            13030000                
*      FIRST PLUG PL$MCT IS THIS IS MULTI-COMPONENT TERMINAL            13040000                
       SPACE                                                            13050000                
       B     IIMCT                     FOR MCT (1050) ONLY              13060000                
.*                                                                      13070000                
.NMCT9 ANOP                            . CONTINUE HERE                  13080000                
.*                                                                      13090000                
       SPACE                                                            13100000                
       TBN   PLOPC(,XR2),OPGET         DOES OP INVOLVE GET              13110000                
       TBF   PLOPM(,XR2),OPSTOP        BUT NOT STOP OP                  13120000                
       TBF   PLOPC(,XR2),OPJRSH        AND NOT 'JUST RESCHEDULE'        13125000                
       JF    ISMVPS                    JUMP IF GET NOT INVOLVED         13130000                
       SPACE                                                            13140000                
*      OPERATION TO TERMINAL INVOLVES GET SO SET ON TUBIIS BIT          13150000                
       SPACE                                                            13160000                
       SBN   TUBAT2(,XR1),TUBIIS       SET ON READ SCHEDULED BIT        13170000                
       SPACE                                                            13180000                
ISMVPS EQU   *                         SET UP POST FIELD                13190000                
       TBF   PLOPM(,XR2),OP$SYS        SYSTEM REQUEST ?                 13195000                
       CLI   TUBPHY(,XR1),TUBCPU       IS THE IO TO A CPU?              13200000                
       JC    ISPOST,FALSE+ANY+EQ+HI    GO TO POST CM IF NOT             13210000                
       L     PLRECA(,XR2),XR1          POINT TO RECORD AREA             13220000                
       CLI   0(,XR1),SMESG             IS THIS AN 'S' MESSAGE TO A CPU? 13230000                
       JNE   ISPOST                    BRANCH TO POST IF NOT            13240000                
       SBF   PLOPC(,XR2),OPPUT         SET TO IGNORE THE PUT            13250000                
       TBN   PLOPC(,XR2),OPGET         IS A GET TO BE DONE?             13260000                
       JF    ISREGS                    SKIP POST AND WAIT IF YES        13270000                
       SPACE                                                            13280000                
************************************************************************13290000                
*  BRANCH TO POST ROUTINE                                               13300000                
************************************************************************13310000                
       SPACE                                                            13320000                
ISPOST EQU   *                         POST APPROPRIATE TASK            13330000                
       B     IIPSTS                    CHECK IF OKAY TO POST CM FOR TP  13340000                
       B     $CC4PS                    BR TO POST ROUTINE               13350000                
       DC    AL2(256*WPAAII)           POST TP REQUST                   13360000                
ISPSFD DC    AL2(TCBCOM)               TCB ADDR TO BE POSTED            13370000                
       SPACE 3                                                          13380000                
* ISSUE WAIT                                                            13390000                
* UNLESS $FLGA BIT INIDCATES NOT TO WAIT                                13400000                
*OR SYSTEM INVITE INPUT - (FOR START-UP)                                13410000                
       SPACE                                                            13420000                
       SBF   ISWAIT,DPDSP              INITIALLY, SET *DISPATCHABLE*    13430000                
       CLI   PLOPC(,XR2),OPINV         IS THIS AN INVITE INPUT          13440000                
       TBF   CCFLGA,CPISNW             OR OTHER NO-WAIT OPERATION?      13450000                
       JC    ISNOWT,ANY+FALSE+EQ       AVOID NON-DISPATCHABLE IF EITHER 13460000                
       SPACE                                                            13470000                
       SPACE 1                                                          13480000                
* NEITHER SYSTEM INVITE-INPUT NOR SPECIAL NO-WAIT OPERATION -- PREPARE  13490000                
*   WAIT CONTROL BYTE TO SET THIS TASK *NON*-DISPATCHABLE               13500000                
       SPACE 1                                                          13510000                
       SBN   ISWAIT,DPDSP              SET NON-DISPATCHABLE UNTIL POST  13520000                
       EJECT                                                            13530000                
       SPACE                                                            13540000                
************************************************************************13550000                
*            W A I T                                                  * 13560000                
************************************************************************13570000                
ISNOWT EQU   *                                                          13580000                
       B $CC4WT                        BR TO WAIT                       13590000                
       DC    AL2(256*WPAAII)           WAIT FOR I/O SCHEDULED           13600000                
       DC    IL1'1'                    WIAT COUNT                       13610000                
ISWAIT DC    AL1(DPDSP+DPREG)          SAVE REGS AND MAKE NON-DISP      13620000                
       SPACE                                                            13630000                
************************************************************************13640000                
* RETURN HERE AFTER WAIT SATISFIED WITH POST                            13650000                
************************************************************************13660000                
       SPACE                                                            13670000                
ISREGS EQU   *                         RESTORE THE REGISTERS            13680000                
       B     $CC4TT                    BRANCH TO TRACE                  13690000                
       DC    AL1(TTIIRT)               TRACE ID                         13700000                
       B     CCPRET                    RESTORE THE REGISTERS            13710000                
       EJECT                                                            13720000                
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13730000                
*                                                                     * 13740000                
*   CHECK IF OKAY TO POST CM FOR TP WORK.  IF CM IS WAITING FOR DISK  * 13750000                
*   I/O, WE WILL WAIT FOR DSM ENTRY/EXIT UNTILL CM IS WAITING FOR TP  * 13760000                
*   OR ELSE THE POST WILL BE LOST.                                    * 13770000                
*                                                                     * 13780000                
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13790000                
       SPACE                                                            13800000                
IIPSTS EQU   *                                                          13810000                
       ST    CCARR,ARR                 SAVE THE ARR                     13820000                
       B     CCPSAV                    SAVE REGS IN TCB                 13830000                
       L     $CCCOM+@CMTCB,XR1         LOAD CM TCB ADDRESS              13840000                
       SPACE                                                            13850000                
IIPSTT TBN   TCBWMK(,XR1),WPAAII       IS CM WAITING FOR TP?            13860000                
       JT    IIPSTR                    YES, OKAY TO CONTINUE            13870000                
       B     $CC4WT                    GOTO WAIT ROUTINE                13880000                
       DC    AL2(WPBDSX)               WAIT ON DSM ENTRY/EXIT           13890000                
       DC    XL1'01'                   EVENT COUNT                      13900000                
       DC    AL1(DPDSP+DPREG)          FLAG BYTE                        13910000                
       B     IIPSTT                    LOOP BACK TO INSURE PROPER COND  13920000                
       SPACE                                                            13930000                
IIPSTR ST    CC@PRL,XR2                STORE PARAMETER LIST             13940000                
       B     CCPRET                    RETURN TO CALLER                 13950000                
       EJECT                                                            13960000                
************************************************************************13970000                
*            WORKAREA                                                  *13980000                
************************************************************************13990000                
       SPACE                                                            14000000                
IIVTNT DS    AL2                       SAVE AREA FOR TNT ENTRY ADDRESS  14010000                
SMESG  EQU   C'S'                      IDENTIFIER FOR AN 'S' MESSAGE    14020000                
STOPER EQU   X'00'                     STOPPER BYTE-INDICATES END OF TNT14030000                
IISTNL EQU   6                         LENGHT OF SYMBOLIC TERMINAL NAME 14040000                
CC0006 DC    IL2'6'                    2-BYTE BINARY 6                  14050000                
.*                                                                      14060000                
       AIF   (&DFF).DUM                . SKIP IF DFF SUPPORTED          14070000                
.*                                                                      14080000                
       AIF   (&MIN).TCON               . SKIP IF MINRES-YES             14090000                
.*                                                                      14100000                
.DUM   ANOP                                                             14110000                
MVL    EQU   *                         BEGINNING OF MOVE LIST AREA      14120000                
       DS    CL8                       MOVE LIST AREA                   14130000                
IIBLNK DC    XL1'40'                   EBCDCI BLANK                     14140000                
II@BLK DC    AL2(IIBLNK)               ADDRES  OF BLNAK                 14150000                
.TCON  ANOP                                                             14160000                
IIZERO EQU   0                                                          14170000                
MCTIN  EQU   X'F0'                     INPUT COMPONENT BITS             14180000                
MCTOUT EQU   X'0F'                     OUTPUT COMPONENT BITS            14190000                
IIMAXK DC    XL2'0050'                 MAX OUTPUT LENGTH FOR CONSOLE    14200000                
.*                                                                      14210000                
       AIF   (&NDF).C75                . SKIP IF *NO* DFF SUPPORT       14220000                
.*                                                                      14230000                
II3275 EQU   X'07'                     VALUE FOR 3275                   14240000                
.*                                                                      14250000                
.C75   AIF   (&NOB).TAB                . SKIP IF *NO* BSCA SUPPORT      14260000                
.*                                                                      14270000                
IIWORK DC    XL2'00'                   WORK AREA FOR BLOCK LENGTH       14280000                
IICOUN DC    XL1'00'                   WORK AREA FOR BLOCK FACTOR       14290000                
X$FFFF DC    XL2'FFFF'                 MINUS 1                          14295000                
.TAB   ANOP                                                             14300000                
       EJECT                                                            14310000                
************************************************************************14320000                
*  OP CODE VALIDITY TABLE                                               14330000                
************************************************************************14340000                
       SPACE                                                            14350000                
IIINVD EQU   0                         INVALID OPERATION                14360000                
IIVKNS EQU   BIT5                      BIT IN VALIDITY BYTE FOR VALID   14370000                
*                                      OPERATION WITH CONSOLE           14380000                
IIVBLK EQU   BIT6                      BIT IN VALIDITY BYTE FOR VALID   14390000                
*                                      OPERATION WITH BLANK STN         14400000                
IIVSTN EQU   BIT7                      BIT IN VALIDITY BYTE FOR VALID   14410000                
*                                      OPERATION WITH STN               14420000                
TANDNE EQU   X'11'                     TRUE AND NOT EQUAL CONDITION     14425000                
       SPACE 3                                                          14430000                
* OP CODE VALIDITY TABLE                                                14440000                
       SPACE                                                            14450000                
IIVTBL EQU   *                         USER OP  STN      BLANKS  CONSOLE14460000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 00        X         X         X  14470000                
       DC    AL1(IIVSTN+IIVBLK)        01        X         X            14480000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 02        X         X         X  14490000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 03        X         X         X  14500000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 04        X         X         X  14510000                
       DC    AL1(IIVSTN+IIVBLK)        05        X         X            14520000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 06        X         X         X  14530000                
       DC    AL1(IIINVD)               07                               14540000                
       DC    AL1(IIVSTN+IIVBLK+IIVKNS) 08        X         X         X  14550000                
       DC    AL1(IIVSTN)               09        X                      14560000                
       DC    AL1(IIVSTN+IIVBLK)        10        X         X            14570000                
       DC    AL1(IIINVD)               11                               14580000                
       DC    AL1(IIINVD)               12                               14590000                
       DC    AL1(IIINVD)               13                               14600000                
       DC    AL1(IIINVD)               14                               14610000                
       DC    AL1(IIINVD)               15                               14620000                
       SPACE                                                            14630000                
       SPACE                                                            14640000                
*                                      BIT 5 ON - VALID OP FOR CONSOLE  14650000                
*                                      BIT 6 ON - VALID OP FOR BLANKS   14660000                
*                                      BIT 7 ON - VALID OP FOR SYMBOLIC 14670000                
*                                        TERMINAL NAME                  14680000                
       SPACE 4                                                          14690000                
IIVBYT DS    CL1                       VALIDITY BYTE - BIT SIGNIFICANT  14730000                
* END CHANGE ACTIVITY - $E060                                           14745000                
       MEND                                                             14750000