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

⟦f07afedeb⟧ s3xseg

    Length: 29718 (0x7416)
    Types: s3xseg
    Names: »S$E050«

Derivation

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

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.*                                                                    * 00030000                
.* NAME: $E050                                                        * 00040000                
.*                                                                    * 00050000                
.* MODIFICATION LEVEL: VERSION 10 MODIFICATION LEVEL 14 OF 5702-SC1   * 00060000                
.*                                                                    * 00070000                
.* FUNCTION:                                                          * 00080000                
.*                                                                    * 00090000                
.*   . CCP GENERATION SECOND PASS MACRO-INSTRUCTION -- GENERATE       * 00100000                
.*     GENERAL ENTRY INTERCEPT LOGIC IN MODULE $CC4#1 OF CCP RESIDENT * 00110000                
.*     ROUTINE.                                                       * 00120000                
.*                                                                    * 00130000                
.* INPUT:                                                             * 00140000                
.*                                                                    * 00150000                
.*   . GLOBAL BOOLEAN VARIABLES:                                      * 00160000                
.*                                                                    * 00170000                
.*         . &DPF   -- 1=DPF SYSTEM / 0=NOT DPF SYSTEM                * 00180000                
.*                                                                    * 00190000                
.*         . &DFF   -- 1=DISPLAY FORMAT FACILITY IN SYSTEM / 0=NOT    * 00200000                
.*                                                                    * 00210000                
.*   . SYMBOLIC PARAMETER:                                            * 00220000                
.*                                                                    * 00230000                
.*         . &RPG   -- 1=RPG II SUPPORTED IN SYSTEM / 0=NOT SUPPORTED * 00240000                
.*                                                                    * 00250000                
.********************************************************************** 00260000                
       $E050 &RPG-0                                                     00270000                
.*                                                                      00280000                
       GBLB  &DPF                      . DUAL PROGRAM FEATURE           00290000                
.*                                     .   1=SUPPORTED / 0=NOT          00300000                
.*                                                                      00310000                
       GBLB  &MOD4                     . MODEL 4 SYSTEM                 00312000                
.*                                     .   1=SUPPORTED / 0=NOT          00314000                
.*                                                                      00316000                
       GBLB  &DFF                      . DISPLAY FORMAT FACILITY        00320000                
.*                                     .   1=SUPPORTED / 0=NOT          00330000                
.*                                                                      00340000                
       LCLC  &#                        . USED FOR SINGLE BLANK          00350000                
.*                                                                      00360000                
       TEXT                                                             00370000                
.*                                                                      00380000                
&#     SETC  ' '                       . SINGLE BLANK                   00390000                
.*                                                                      00400000                
       TITLE 'GENERAL&#.ENTRY&#.INTERCEPT'                              00410000                
*********************************************************************** 00420000                
*            G E N E R A L   E N T R Y   I N T E R C E P T            * 00430000                
*********************************************************************** 00440000                
*                                                                     * 00450000                
* FUNCTION:                                                           * 00460000                
*                                                                     * 00470000                
*    . INTERCEPT *ALL* INVOCATIONS OF DSM GENERAL ENTRY (BRANCHES TO  * 00480000                
*      LOCATION 4).  THE PRIMARY PURPOSE OF THE INTERCEPT IS TO       * 00490000                
*      ASSURE THE SERIAL USE, BY THE CCP PROGRAM LEVEL, OF THE        * 00500000                
*      NON-REENTRANT DSM SUPERVISOR.                                  * 00510000                
.*                                                                      00520000                
       AIF   (&DPF NE '1').IG010       . SKIP IF NO DPF SUPPORT         00530000                
.*                                                                      00540000                
*                                                                     * 00550000                
*    . IF THE INVOCATION IS FROM THE OTHER PROGRAM LEVEL, PASS IT ON  * 00560000                
*      DIRECTLY TO DSM GENERAL ENTRY.                                 * 00570000                
.*                                                                      00580000                
.IG010 ANOP                            . CONTINUE HERE                  00590000                
.*                                                                      00600000                
*                                                                     * 00610000                
*    . FOR RIB OF X'00' FROM CCP PROGRAM LEVEL, PROVIDE IN INDEX      * 00620000                
*      REGISTER 2 THE ADDRESS OF THE CCP PROGRAM LEVEL COMMUNICATION  * 00630000                
*      AREA.                                                          * 00640000                
*                                                                     * 00650000                
*    . IF THE INVOCATION IS A HALT/SYSLOG REQUEST, HANDLE IT VIA THE  * 00660000                
*      CCP SUBSTITUTE HALT/SYSLOG PROCESSOR.                          * 00670000                
*                                                                     * 00680000                
*    . IF THE INVOCATION IS FROM WITHIN THE DSM SUPERVISOR'S OWN      * 00690000                
*      MAIN STORAGE AREA:                                             * 00700000                
*                                                                     * 00710000                
*          . DETERMINE IF DISK ERROR LOG REQUEST; IF SO, SET ON THE   * 00720000                
*            ERROR-LOG-IN-PROGRESS BIT IN THE SYSTEM COMMUNICATION    * 00730000                
*            AREA.                                                    * 00740000                
*                                                                     * 00750000                
*          . IN ANY CASE, PASS THE INVOCATION ON TO DSM GENERAL       * 00760000                
*            ENTRY.                                                   * 00770000                
*                                                                     * 00780000                
*    . FOR RIB INDICATING PROGRAM LOAD/FETCH, MODIFY THOSE FIELDS IN  * 00790000                
*      THE PLCA WHICH CONTROL RELOCATION, AND PASS ON THE INVOCATION  * 00800000                
*      TO DSM GENERAL ENTRY.                                          * 00810000                
*                                                                     * 00820000                
*    . FOR A RIB REQUESTING TRANSIENT BY C/S/N, PASS THE INVOCATION   * 00830000                
*      ON TO DSM GENERAL ENTRY.                                       * 00840000                
*                                                                     * 00850000                
*    . FOR RIB INDICATING REQUEST FOR SPECIFIC TRANSIENT, PASS THE    * 00860000                
*      INVOCATION DIRECTLY ON TO GENERAL ENTRY UNLESS:                * 00870000                
*                                                                     * 00880000                
*          . OPEN/CLOSE/ALLOCATE -- PASS INVOCATION TO CCP DATA       * 00890000                
*            MANAGEMENT ROUTINE $CC4OC.                               * 00900000                
*                                                                     * 00910000                
*          . EOJ -- PASS INVOCATION TO CCP TERMINATION INTERFACE      * 00920000                
*            ROUTINE CC4TI1.                                          * 00930000                
.*                                                                      00940000                
       AIF   (&RPG NE '1').IG020       . SKIP IF RPG NOT SUPPORTED      00950000                
.*                                                                      00960000                
*          . RPG HALT PROCESSOR -- PASS INVOCATION TO SUBSTITUTE RPG  * 00970000                
*            HALT PROCESSOR TRANSIENT.                                * 00980000                
.*                                                                      00990000                
.IG020 ANOP                            . CONTINUE HERE                  01000000                
.*                                                                      01010000                
*                                                                     * 01020000                
*    . FOR A RIB OF X'01' -- REQUEST CCP SERVICE -- ROUTE CONTROL     * 01030000                
*      ACCORDING TO SUB-RIB (BYTE FOLLOWING RIB):                     * 01040000                
*                                                                     * 01050000                
*          . 00 -- COMMUNICATIONS OPERATION REQUEST -- ROUTE TO       * 01060000                
*            $CC4II.                                                  * 01070000                
*                                                                     * 01080000                
*          . 01 -- CANCEL CURRENT TASK -- ROUTE TO CC4TI2.            * 01090000                
.*                                                                      01100000                
       AIF   (&RPG NE '1').IG030       . SKIP IF RPG NOT SUPPORTED      01110000                
.*                                                                      01120000                
*                                                                     * 01130000                
*          . 02 -- GENERALIZED MOVE REQUEST -- ROUTE TO $CC4MX.       * 01140000                
.*                                                                      01150000                
.IG030 ANOP                            . CONTINUE HERE                  01160000                
.*                                                                      01170000                
*                                                                     * 01180000                
* ENTRY POINT: IGNTRY                                                 * 01190000                
*                                                                     * 01200000                
* INPUT: RIB -- AND POSSIBLY SUB-RIB -- AS DESCRIBED ABOVE            * 01210000                
*                                                                     * 01220000                
* OUTPUT:                                                             * 01230000                
*                                                                     * 01240000                
*    . IN $CCCOM -- BIT DPDSX IN BYTE $DPFLH SET ON AND OFF TO        * 01250000                
*      INDICATE DSM GENERAL ENTRY IS / IS NOT BUSY FOR THE PROGRAM    * 01260000                
*      LEVEL.                                                         * 01270000                
*                                                                     * 01280000                
*    . IN SYSTEM COMMUNICATION AREA -- BIT NCDERP IN BYTE NCMBSV SET  * 01290000                
*      ON WHEN DISK ERROR LOGGING IS REQUESTED.                       * 01300000                
*                                                                     * 01310000                
*    . IN PROGRAM LEVEL COMMUNICATION AREA -- THE CELLS NPQ, NPCYL,   * 01320000                
*      AND NPRLF ON A PROGRAM LOAD/FETCH REQUEST.                     * 01330000                
*                                                                     * 01340000                
* EXTERNAL REFERENCES:                                                * 01350000                
*                                                                     * 01360000                
*    . TO CCP ROUTINES:                                               * 01370000                
*                                                                     * 01380000                
*          . CCPSAV/CCPRST -- FOR SAVING REGISTERS / RESTORING        * 01390000                
*            REGISTERS                                                * 01400000                
.*                                                                      01410000                
       AIF   (&DPF NE '1').IG040       . SKIP IF DPF NOT SUPPORTED      01420000                
.*                                                                      01430000                
*                                                                     * 01440000                
*          . DPTIAR -- FOR DETERMINING WHETHER THE INVOCATION IS      * 01450000                
*            FROM THE CCP LEVEL OR THE OTHER LEVEL                    * 01460000                
.*                                                                      01470000                
.IG040 ANOP                            . CONTINUE HERE                  01480000                
.*                                                                      01490000                
*                                                                     * 01500000                
*          . $CC4WT -- TO WAIT THE INVOKING TASK WHEN DSM GENERAL     * 01510000                
*            ENTRY IS BUSY FOR THE PROGRAM LEVEL                      * 01520000                
*                                                                     * 01530000                
*          . $CC4PS -- TO POST ANY WAITING TASK THAT DSM GENERAL      * 01540000                
*            ENTRY HAS BECOME AVAILABLE                               * 01550000                
*                                                                     * 01560000                
*          . $CC4H1 -- CCP TRANSIENT -- FOR HALT/SYSLOG REQUEST FROM  * 01570000                
*            OTHER THAN THE COMMUNICATIONS TASK                       * 01580000                
*                                                                     * 01590000                
*          . $CC4H2 -- CCP TRANSIENT -- FOR HALT/SYSLOG REQUEST FROM  * 01600000                
*            THE COMMUNICATIONS TASK                                  * 01610000                
.*                                                                      01620000                
       AIF   (&RPG NE '1').IG050       . SKIP IF RPG NOT SUPPORTED      01630000                
.*                                                                      01640000                
*                                                                     * 01650000                
*          . $CC4HF -- CCP TRANSIENT -- FOR INVOCATION OF RPG HALT    * 01660000                
*            PROCESSOR                                                * 01670000                
.*                                                                      01680000                
.IG050 ANOP                            . CONTINUE HERE                  01690000                
.*                                                                      01700000                
*                                                                     * 01710000                
*          . TO CCP SERVICE ROUTINES AS DEFINED UNDER 'FUNCTION'      * 01720000                
*            ABOVE                                                    * 01730000                
*                                                                     * 01740000                
* EXIT, NORMAL:                                                       * 01750000                
*                                                                     * 01760000                
*    . AS DEFINED IN 'FUNCTION' ABOVE -- ULTIMATELY TO INVOKER        * 01770000                
*      AT INSTRUCTION IMMEDIATELY FOLLOWING HIS BRANCH.               * 01780000                
*                                                                     * 01790000                
* EXIT, ERROR:                                                        * 01800000                
*                                                                     * 01810000                
*    . TO THE CCP ROUTINE CC4TI2, WITH A TASK COMPLETION CODE OF      * 01820000                
*      X'80' IF A CCP SERVICE REQUEST WAS MADE WITH INVALID SUB-RIB.  * 01830000                
*                                                                     * 01840000                
*    . TO THE CCP ROUTINE CC4TI2, WITH A TASK COMPLETION CODE SET BY  * 01850000                
*      THE SUBSTITUTE HALT/SYSLOG PROCESSOR, WHEN THE TASK HAS        * 01860000                
*      HALTED INVALIDLY.                                              * 01870000                
*                                                                     * 01880000                
* TABLES/WORKAREAS:                                                   * 01890000                
*                                                                     * 01900000                
*    . IGRTBL -- TABLE OF RIBS FOR WHICH SPECIAL ROUTING IS MADE,     * 01910000                
*      WITH ADDRESS TO WHICH EACH IS TO BE ROUTED.                    * 01920000                
*                                                                     * 01930000                
*    . IGSTBL -- TABLE OF SUB-RIBS FOR CCP SERVICE REQUEST, WITH      * 01940000                
*      ADDRESS OF ROUTINE TO WHICH EACH IS TO BE ROUTED.              * 01950000                
*                                                                     * 01960000                
*********************************************************************** 01970000                
       EJECT                                                            01980000                
*********************************************************************** 01990000                
*              I  N  I  T  I  A  L  I  Z  A  T  I  O  N               * 02000000                
*********************************************************************** 02010000                
       SPACE 2                                                          02020000                
$CC4IG EQU   *                         SECTION NAME                     02030000                
       SPACE 1                                                          02040000                
* POINTER CONSTANTS -- THESE REPRESENT, RESPECTIVELY:                   02050000                
*                                                                       02060000                
*    . THE ADDRESS OF THE REAL ENTRY POINT OF THIS ROUTINE              02070000                
*    . THE ADDRESS OF THE LOCATION IN THIS ROUTINE IN WHICH IS TO BE    02080000                
*      STORED THE ADDRESS OF TRUE GENERAL ENTRY                         02090000                
       SPACE 1                                                          02100000                
       DC    AL2(IGNTRY)               ADDRESS OF $CC4IG REAL ENTRY     02110000                
       DC    AL2(IG@ENT)               ADDRESS OF TRUE NCENTR ADDRESS   02120000                
       SPACE 1                                                          02130000                
* EFFECTIVE ENTRY POINT OF THE INTERCEPT                                02140000                
       SPACE 1                                                          02150000                
IGNTRY EQU   *                         TRUE ENTRY POINT OF THIS ROUTINE 02160000                
       SPACE 1                                                          02170000                
       ST    CCARR,ARR                 SAVE THE ARR FIRST               02180000                
.*                                                                      02190000                
       AIF   (&DPF NE '1').IG110       . SKIP IF DPF *NOT* SUPPORTED    02200000                
.*                                                                      02210000                
       SPACE 1                                                          02220000                
* IF THIS IS FROM THE *OTHER* LEVEL IN A DPF MACHINE, ROUTE DIRECTLY    02230000                
*   TO TRUE GENERAL ENTRY                                               02240000                
       SPACE 1                                                          02250000                
       B     DPTIAR                    RETURNS EQUAL IF IN *CCP* LEVEL  02260000                
       L     CCARR,ARR                 RESTORE ARR CONTENTS             02270000                
       JNE   IGSENT                    JUMP IF FROM *OTHER* LEVEL       02280000                
.*                                                                      02290000                
.IG110 ANOP                            . CONTINUE HERE                  02300000                
.*                                                                      02310000                
       SPACE 1                                                          02320000                
* IF THE RIB IS X'00' -- REQUEST ADDRESS OF PLCA -- PROVIDE THE ADDRESS 02330000                
*   DIRECTLY, THEN BEGIN RETURN TO INVOKER                              02340000                
       SPACE 1                                                          02350000                
       ST    IGTR00+3,ARR              SET ADDRESS OF RIB FOR COMPARE   02360000                
IGTR00 CLI   ####,X'00'                SEE IF RIB IS X'00'              02370000                
       JNE   IGN00                     JUMP IF *NOT* REQUEST PLCA ADDR  02380000                
       SPACE 1                                                          02390000                
       ALC   CCARR(2),CC0001           ADVANCE RETURN ADDRESS           02400000                
       L     CC@PCA,XR2                XR2 -> PLCA                      02410000                
       L     CCARR,IAR                 RETURN TO INVOKER WITH PLCA ADDR 02420000                
       SPACE 1                                                          02430000                
IGN00  EQU   *                         CONTINUE IF RIB *NOT* X'00'      02440000                
       SPACE 1                                                          02450000                
* SAVE THE INVOKER'S REGISTERS, THEN ESTABLISH REGISTERS FOR THE        02460000                
*   REMAINDER OF INITIALIZATION:                                        02470000                
*                                                                       02480000                
*    . XR2 -> CURRENT SAVE LEVEL IN INVOKER'S TASK CONTROL BLOCK        02490000                
*    . XR1 -> INVOKER'S RIB                                             02500000                
       SPACE 1                                                          02510000                
       BC    CCPSAV,X'97'              SAVE INVOKER'S REGISTERS         02520000                
       SPACE 1                                                          02530000                
* TRACE THIS ENTRY -- TRACE TYPE IS "05"                                02540000                
       SPACE 1                                                          02550000                
       B     $CC4TT                    TRACE GENERAL ENTRY              02560000                
       DC    XL1'05'                   TRACE TYPE IS "05"               02570000                
       SPACE 1                                                          02580000                
       LA    $CCCOM,XR1                XR1 -> CCP COMMUNICATION AREA    02590000                
IG@COM EQU   *-1                                                        02600000                
       L     @CURTB(,XR1),XR2          XR2 -> INVOKER'S TCB             02610000                
       L     TCBSAV(,XR2),XR2          XR2 -> CURRENT TCB SAVE LEVEL    02620000                
       L     TCBARR-TCBSAV(,XR2),XR1   XR1 -> INVOKER'S RIB             02630000                
       SPACE 1                                                          02640000                
* IF THE INVOCATION IS A HALT/SYSLOG REQUEST, ROUTE CONTROL TO THE      02650000                
*   SPECIAL HALT/SYSLOG INTERFACE, AFTER SETTING THE TRANSIENT          02660000                
*   NUMBER ACCORDING TO INVOKING TASK                                   02670000                
       SPACE 1                                                          02680000                
       CLI   0(,XR1),X'85'             NORMAL HALT/SYSLOG REQUEST?      02690000                
       JE    IGHS                      JUMP IF IT IS                    02700000                
       CLI   0(,XR1),X'C5'             HALT/SYSLOG REQUEST WITH REFRESH 02710000                
       JNE   IGNHS                     JUMP IF IT IS *NOT*              02720000                
       SPACE 1                                                          02730000                
IGHS   L     CCURTB,XR1                XR1 -> INVOKER'S TCB             02740000                
       MVI   IGHSX,CC4H1               SET TRANSIENT NUMBER FOR NON-CM  02750000                
       CLI   TCBID(,XR1),C'C'          SEE IF COMMUNICATIONS TASK       02760000                
       JNE   IGHNCM                    JUMP IF *NOT* COMMUNICATIONS TSK 02770000                
       MVI   IGHSX,CC4H2               SET TRANSIENT NUMBER FOR CM TASK 02780000                
       SPACE 1                                                          02790000                
IGHNCM LA    IG@HS,XR1                 XR1 -> HALT/SYSLOG INTERFACE     02800000                
       B     IGSET@                    JUMP TO RESTORE AND ENTER I'FACE 02810000                
IGNHS  EQU   *                         CONTINUE HERE IF NOT HALT/SYSLOG 02820000                
       SPACE 1                                                          02830000                
* IF INVOCATION FROM WITHIN THE DSM SUPERVISOR ITSELF (OTHER THAN       02840000                
*   HALT/SYSLOG REQUEST), SET DISK-ERROR-LOGGING IN PROGRESS            02850000                
*   IF RIB X'D0', THEN IN ANY CASE ENTER DSM SUPERVISOR DIRECTLY        02860000                
       SPACE 1                                                          02870000                
       ST    IGSVD0+3,XR1              SAVE ADDRESS OF RIB              02880000                
       CLC   TCBARR-TCBSAV(2,XR2),IG@COM COMPARE INVOKER ARR TO $CCCOM  02890000                
       JNL   IGTCPF                    JUMP IF NOT WITHIN SUPERVISOR    02900000                
       SPACE 1                                                          02910000                
       CLI   0(,XR1),X'D0'             SEE IF DISK-ERROR-LOG RIB        02920000                
       JNE   IGND0                     JUMP IF *NOT* DISK-ERROR-LOG     02930000                
       SPACE 1                                                          02940000                
       L     NCSYS@,XR1                XR1 -> SYSTEM COMMUNICATION AREA 02950000                
       SBN   NCMBSV(,XR1),NCDERP       SET DISK ERP LOG IN PROGRESS     02960000                
IGND0  L     CCURTB,XR1                XR1 -> CURRENT TASK'S TCB        02970000                
       TBN   TCBTSK(,XR1),TCBDSM       DETERMINE IF TASK IN SUPVR       02980000                
IGSVD0 LA    ####,XR1                  RESTORE XR1 IN ANY CASE          02990000                
       JF    IGOTHR                    JUMP IF *NOT* IN SUPVR           03000000                
       SPACE 1                                                          03010000                
       B     CCPRST                    RESTORE INVOKER'S REGISTERS      03020000                
IGSENT L     IG@ENT,IAR                ENTER TRUE GENERAL ENTRY         03030000                
       SPACE 1                                                          03040000                
* ENTRY *NOT* FROM WITHIN DSM SUPERVISOR -- DETERMINE WHETHER ENTRY     03050000                
*   FOR DSM FUNCTION OR CCP FUNCTION                                    03060000                
       SPACE 1                                                          03070000                
IGTCPF CLI   0(,XR1),X'01'             SEE IF RIB FOR CCP FUNCTION      03080000                
       JNE   IGOTHR                    JUMP IF *NOT* CCP FUNCTION       03090000                
       EJECT                                                            03100000                
*********************************************************************** 03110000                
*      R I B   0 1   --   R E Q U E S T   C C P   F U N C T I O N     * 03120000                
*********************************************************************** 03130000                
       SPACE 2                                                          03140000                
* RIB IS X'01' -- REQUEST CCP FUNCTION -- SUB-RIB IMMEDIATELY FOLLOWS   03150000                
*   THIS RIB IN ENTERER'S CODE:                                         03160000                
*                                                                       03170000                
*    . MOVE THE SUB-RIB INTO OUR SEARCH/COMPARE LOOP CODE               03180000                
*                                                                       03190000                
*    . ADVANCE THE *SAVED* ARR BY 2 TO SET ENTERER'S RETURN ADDRESS     03200000                
*                                                                       03210000                
*    . JOIN THE SEARCH/COMPARE LOOP CODE TO:                            03220000                
*                                                                       03230000                
*          . MATCH THE SUB-RIB TO A CCP ROUTINE ADDRESS                 03240000                
*          . RESTORE INDEX REGISTERS TO VALUES UPON ENTRY               03250000                
*          . TRANSFER CONTROL TO THAT CCP ROUTINE                       03260000                
       SPACE 1                                                          03270000                
       MVC   IGRIB(1),1(,XR1)          MOVE ENTERER'S *SUB-RIB* TO US   03280000                
       CLI   1(,XR1),X'00'             SEE IF COMMUNICATIONS I/O SUBRIB 03290000                
       JE    IGNRST                    JUMP IF SO--DO NOT SET RESTORE   03300000                
       SPACE 1                                                          03310000                
       MVI   IGCRST+1,BR               SUBRIB NOT 00 -- SET RESTORE     03320000                
IGNRST EQU   *                         CONTINUE HERE                    03330000                
       SPACE 1                                                          03340000                
       ALC   TCBARR-TCBSAV(2,XR2),CC0002  SET *SAVED* ARR TO RETURN     03350000                
       SPACE 1                                                          03360000                
       LA    IGSTBL-1,XR1              XR1 -> SUB-RIB/ROUTINE TABLE     03370000                
       J     IGLOOP                    JOIN LOOP CODE TO ROUTE CONTROL  03380000                
       EJECT                                                            03390000                
*********************************************************************** 03400000                
*      R I B   M A Y   R E Q U I R E   E N T R Y   T O   D S M        * 03410000                
*********************************************************************** 03420000                
       SPACE 2                                                          03430000                
* REQUEST IS FOR PROGRAM LOAD OR SYSTEM TRANSIENT.  WE MUST NOT ENTER   03440000                
*   THE DSM SUPERVISOR (WHOSE CODE IS NON-REENTRANT) IF SOME OTHER      03450000                
*   TASK, HAVING ALREADY ENTERED THE DSM SUPERVISOR, HAS YIELDED        03460000                
*   CONTROL BEFORE LEAVING THE SUPERVISOR.  IT IS THE RESPONSIBILITY    03470000                
*   OF $CC4IG TO ASSURE THAT SUCH A RECURSIVE ENTRY INTO THE DSM        03480000                
*   SUPERVISOR DOES NOT OCCUR.  THUS ...                                03490000                
*                                                                       03500000                
* DETERMINE IF ANY TASK IS LOGICALLY DWELLING IN THE DSM SUPERVISOR --  03510000                
*   IF *NOT*, JUMP TO BEGIN ENTRY TO THAT SUPERVISOR                    03520000                
       SPACE 1                                                          03530000                
IGOTHR TBN   CCDPFH,DPDSX              FALSE IF *NO ONE* IN SUPERVISOR  03540000                
       JF    IGENTR                    JUMP IF FREE TO ENTER SUPERVISOR 03550000                
       SPACE 1                                                          03560000                
* THE ENTERER'S TASK IS *NOT* FREE TO ENTER THE DSM SUPERVISOR.  THUS   03570000                
*   WE MUST "WAIT" THE ENTERER'S TASK.                                  03580000                
       SPACE 1                                                          03590000                
       B     $CC4WT                    INVOKE WAIT ROUTINE              03600000                
       DC    AL2(WPBDSX)               EVENT TO AWAIT: DSM SUPVR FREE   03610000                
       DC    AL1(1)                    NUMBER OF EVENTS TO AWAIT: ONE   03620000                
       DC    AL1(DPREG+DPDSP)          CONTROL: SAVE REGS, NON-DISP'BLE 03630000                
       SPACE 1                                                          03640000                
* RETURN FROM WAIT COMES HERE.  AT THIS POINT, THE DSM SUPERVISOR MAY   03650000                
*   HAVE BEEN AGAIN ENTERED BY ANOTHER TASK BEFORE THIS TASK COULD      03660000                
*   GAIN CONTROL.  THUS WE MUST AGAIN CHECK THE STATUS OF SUPERVISOR    03670000                
*   ENTRY.                                                              03680000                
       SPACE 1                                                          03690000                
       B     IGOTHR                    BRANCH TO RE-CHECK ENTRY STATUS  03700000                
       EJECT                                                            03710000                
*********************************************************************** 03720000                
*            D I S T I N G U I S H   E N T R Y   T Y P E              * 03730000                
*********************************************************************** 03740000                
       SPACE 2                                                          03750000                
* AT THIS POINT, WE MUST DISTINGUISH THE TYPE OF REQUEST, DETERMINABLE  03760000                
*   BY INSPECTION OF THE RIB NOW HELD IN "IGRIB":                       03770000                
*                                                                       03780000                
*    . IF RIB < X'80', THIS IS PROGRAM LOAD/FETCH/OVERLAY REQUEST       03790000                
*    . IF RIB = X'80' OR X'C0', THIS IS REQUEST TRANSIENT BY C/S/N      03800000                
*    . IF RIB = X'8X' OR X'CX', THIS IS REQUEST FOR STANDARD TRANSIENT  03810000                
       SPACE 1                                                          03820000                
IGENTR EQU   *                         PREPARE TO ENTER DSM SUPERVISOR  03830000                
       SPACE 1                                                          03840000                
       MVC   IGRIB(1),0(,XR1)          GET MODIFIABLE RIB FOR COMPARE   03850000                
       SBF   IGRIB,X'40'               MAKE X'CX' RIB LOOK LIKE X'8X'   03860000                
       SPACE 1                                                          03870000                
       MVC   IG$CSN(4),3(,XR1)         MOVE RIB + POSSIBLE C/S/N TO US  03880000                
       ALC   TCBARR-TCBSAV(2,XR2),CC0001 SET SAVED RETURN ADDRESS       03890000                
       SPACE 1                                                          03900000                
       CLI   IGRIB,X'80'               LO=LOAD / EQ=XNT BY CSN / HI=XNT 03910000                
       JNE   IGNFCS                    JUMP IF *NOT* FETCH XNT BY C/S/N 03920000                
       SPACE 1                                                          03930000                
* RIB WAS X'80' OR X'C0' -- FETCH TRANSIENT BY C/S/N -- WE MUST:        03940000                
*                                                                       03950000                
*    . FURTHER MODIFY THE SAVED RETURN ADDRESS BEYOND ENTERER'S C/S/N   03960000                
*    . JUMP TO ENTER THE DSM SUPERVISOR OURSELVES                       03970000                
       SPACE 1                                                          03980000                
       ALC   TCBARR-TCBSAV(2,XR2),IG0003 MODIFY SAVED RETURN ADDRESS    03990000                
       J     IGXNCE                    JUMP TO START *OUR* ENTRY TO DSM 04000000                
       SPACE 1                                                          04010000                
* REQUEST IS EITHER LOAD/FETCH OR FETCH SYSTEM TRANSIENT BY RIB.        04020000                
*   WE MUST:                                                            04030000                
*                                                                       04040000                
*    . OVERLAY THE "C/S/N" WE MOVED TO OUR CODE WITH A NOP JUMP         04050000                
*    . IF THIS WAS REQUEST SYSTEM TRANSIENT BY RIB, POINT TO OUR TABLE  04060000                
*      OF INTERCEPTED RIBS AND GO RIB-COMPARE ROUTINE                   04070000                
       SPACE 1                                                          04080000                
IGNFCS MVC   IG$CSN(3),IGJNOP+2        MOVE IN NOP JUMP                 04090000                
       LA    IGRTBL-1,XR1              XR1 -> TABLE OF INTERCEPTED RIBS 04100000                
       CLI   IGRIB,X'81'               THIS A FIND?                     04105000                
       JH    IGLOOP                    JUMP IF FETCH SYSTEM XNT BY RIB  04110000                
       EJECT                                                            04120000                
*********************************************************************** 04130000                
*          P R O G R A M   L O A D / F E T C H / O V E R L A Y        * 04140000                
*********************************************************************** 04150000                
       SPACE 2                                                          04160000                
* REQUEST IS FOR LOAD OR FETCH OF PROGRAM -- WE MUST:                   04170000                
*                                                                       04180000                
*    . SET "NPCYL" OF THE PLCA WITH THE C/S OF USER ROOT PHASE (IN CASE 04190000                
*      THIS IS AN OVERLAY-LOAD RIB OF X'40')                            04200000                
*    . SET "NPRLF" OF THE PLCA WITH THE RELOCATION FACTOR OF THE        04210000                
*      *USER* PROGRAM                                                   04220000                
       SPACE 1                                                          04230000                
       L     CCURTB,XR1                XR1 --> ENTERER'S TCB            04400200                
       TBN   TCBTSK(,XR1),TCBSYT       SYSTEM TASK ?                    04400400                
       JT    IGXNCE                    YES - JUMP                       04400600                
       SPACE 1                                                          04400800                
       ST    IGRST2+3,XR2              SAVE XR2                         04401000                
       L     CC@PCA,XR2                XR2 --> PLCA                     04401200                
       L     TCBCDE(,XR1),XR1          XR1 --> ENTERER'S CDE            04401400                
       TBN   CDEAT2(,XR1),CDEPAK       FROM SYSTEM PACK ?               04401600                
       JF    IGRBFN                    NO JUMP (PROGRAM PACK)           04401800                
       SPACE 1                                                          04402000                
       MVI   NPQ(,XR2),##              MOVE SYSTEM Q BYTE TO LEVEL Q    04402200                
IGSYSQ EQU   *-2                       STARTUP PLUGS SYS Q BYTE HERE    04402400                
       MVC   NPOLIB(2,XR2),IGNCLB      RESET C/S OF PACK DIRECTORY      04402600                
IGRBFN CLI   IGRIB,X'81'               FIND RIB ?                       04402800                
       JE    IGRST2                    YES - GO SET EXIT TO G.I.        04403000                
       CLI   IG$RIB,X'40'              OVERLAY LOAD RIB ?               04403200                
       JNE   IGNT40                    NO,SKIP SET-UP FOR OVERLAYS      04403400                
       SPACE 1                                                          04403600                
       MVC   NPCYL(2,XR2),CDECS(,XR1)  MOVE IN ROOT PHASE C/S           04403800                
       MVC   NPRLF(2,XR2),CDELOD(,XR1) MOVE BASE LOAD ADDRESS           04404000                
       SLC   NPRLF(2,XR2),CDELNK(,XR1) RLF=LOAD ADDRESS-LINK ADDRESS    04404200                
       J     IGRST2                    GO SET UP EXIT TO GEN ENTRY      04404400                
       SPACE 1                                                          04404600                
IGNCLB DS    XL2                       SET TO SYSTEM DIR C/S            04404800                
IGNPLB DS    XL2                       SET TO PROGRAM DIR C/S           04405000                
IGCLST EQU   *                         *                                04405200                
       DC    10XL1'0'                  LOAD FETCH PARM LIST             04405400                
       SPACE 2                                                          04405600                
IGNT40 TBN   IG$RIB,X'10'              FETCH RIB ?                      04405800                
       JF    IGRST2                    BYPASS FETCH CONVERSION          04406000                
       SPACE 1                                                          04406200                
       TBN   IG$RIB,X'08'              IF ANY FETCH OTHER THAN WITH     04406400                
*                                      ADDRESS - STOP RIGHT NOW         04406600                
       JT   IGBDFC                     IF OK - JUMP                     04406800                
       B     CPHALT                    GO HALT WITH U- 95(CD1345)       04407000                
       DC    XL2'1F5D'                 SUB HALT                         04407200                
       SPACE 3                                                          04407400                
IGBDFC EQU   *                         *                                04407600                
       L     IGRST2+3,XR2              XR2 --> TCB SAVED REG'S          04407800                
       L     TCBXR2-TCBSAV(,XR2),XR2   XR2 --> USER PARM LIST POINTER   04408000                
       MVC   IGCLST+9,9(10,XR2)        MOVE USER'S LIST TO OUR LIST     04408200                
       MVI   IGJP1#,NOOP               NOOP BYPASS LOAD OF PARM PTR     04408400                
       SBF   IG$RIB,X'10'              CHANGE FETCH TO LOAD             04408600                
       MVI   IGJP2#,NOOP               INSURE USER RETURN FETCH SET     04408800                
       SPACE 2                                                          04409000                
* RESET REGISTERS TO PREPARE TO BRANCH TO DSM SUPERVISOR                04420000                
       SPACE 1                                                          04430000                
IGRST2 LA    ####,XR2                  XR2 -> TCB SAVED REGISTERS       04440000                
IGXNCE LA    IG@NCE,XR1                XR1 -> ADDRESS OF OUR ENTRY      04450000                
       J     IGSET@                    JUMP TO SET IG@WTG ADDRESS       04460000                
       EJECT                                                            04470000                
*********************************************************************** 04480000                
*      I D E N T I F Y   R I B   A N D   R O U T E   S E R V I C E    * 04490000                
*********************************************************************** 04500000                
       SPACE 2                                                          04510000                
* THIS ROUTINE WILL SEARCH A SPECIFIED TABLE OF RIBS (OR SUB-RIBS)      04520000                
*   IN ORDER TO ESTABLISH A GO-TO ADDRESS -- A SPECIFIC                 04530000                
*   ADDRESS IF A (SUB-) RIB MATCH IS FOUND, A DEFAULT ADDRESS IF A      04540000                
*   MATCH IS NOT FOUND.  UPON ENTRY:                                    04550000                
*                                                                       04560000                
*    . XR1 -> HI-ORDER BYTE - 1 OF A RIB/ADDRESS TABLE                  04570000                
*                                                                       04580000                
*    . THE SEARCH ARGUMENT IS IN THE CELL "IGRIB"                       04590000                
       SPACE 1                                                          04600000                
IGLOOP CLI   1(,XR1),##                COMPARE TABLE-RIB TO SEARCH-RIB  04610000                
IGRIB  EQU   *-2                       SEARCH-(SUB-)RIB KEPT HERE       04620000                
       SPACE 1                                                          04630000                
       TBF   1(,XR1),X'40'             WILL BE TRUE EXCEPT FOR STOPPER  04640000                
       SPACE 1                                                          04650000                
       LA    +3(,XR1),XR1              ADVANCE TABLE POINTER TO NEXT    04660000                
       BC    IGLOOP,X'11'              LOOP IF NEITHER MATCH NOR STOP   04670000                
       SPACE 1                                                          04680000                
* WHEN CONTROL COMES HERE, EITHER A MATCH OR THE TABLE STOPPER HAS      04690000                
*   BEEN FOUND.  TO ROUTE CONTROL TRANSPARENTLY, WE MUST:               04700000                
*                                                                       04710000                
*    . SET AN IAR-LOAD INSTRUCTION WITH THE ADDRESS OF THE GO-TO ADDR   04720000                
*                                                                       04730000                
*    . RESTORE THE *SAVED* ARR, XR1 AND XR2                             04740000                
*                                                                       04750000                
*    . *NOT* REDUCE THE "LEVEL" OF REGISTER SAVE                        04760000                
*                                                                       04770000                
*    . ROUTE CONTROL TO THE ESTABLISHED GO-TO ADDRESS WITHOUT           04780000                
*      DESTROYING THE ARR.   CONTROL WILL GO:                           04790000                
*                                                                       04800000                
*          . TO THE CCP FUNCTION ROUTINE ON A RIB OF X'01' AND A        04810000                
*            PROPER SUB-RIB                                             04820000                
*          . TO THE ERROR ROUTINE "IGCERR" ON A RIB OF X'01' AND AN     04830000                
*            *IMPROPER* SUB-RIB                                         04840000                
*          . TO THE CCP "PSEUDO" ROUTINE FOR SUBSTITUTE TRANSIENT       04850000                
*            REQUESTS                                                   04860000                
*          . TO THE DSM SUPERVISOR (VIA OUR ROUTINE "IG$NCE") ON        04870000                
*            NON-SUBSTITUTE TRANSIENT REQUESTS AND ON *ALL* LOAD/FETCH  04880000                
*            REQUESTS                                                   04890000                
       SPACE 1                                                          04900000                
IGSET@ ST    IG@WTG,XR1                SET ADDR OF GO-TO ADDRESS        04910000                
       L     TCBARR-TCBSAV(,XR2),ARR   RESTORE THE ARR                  04920000                
       L     TCBXR1-TCBSAV(,XR2),XR1   RESTORE XR1                      04930000                
       L     TCBXR2-TCBSAV(,XR2),XR2   RESTORE XR2                      04940000                
       SPACE 1                                                          04950000                
IGCRST BC    CCPRST,##+NOP             RESTORE SAVE LEVEL UNLESS NOP    04960000                
       MVI   IGCRST+1,NOP              ASSURE RESTORE TO NOP            04970000                
       SPACE 1                                                          04980000                
       L     ####,IAR                  GO TO APPROPRIATE ROUTINE        04990000                
IG@WTG EQU   *-1                       ADDRESS OF GO-TO ADDR SET HERE   05000000                
       EJECT                                                            05010000                
*********************************************************************** 05020000                
*      H A L T / S Y S L O G   S E R V I C E   R O U T I N E S        * 05030000                
*********************************************************************** 05040000                
       SPACE 2                                                          05050000                
.*                                                                      05060000                
.*     AIF   (&RPG NE '1').IG500       . SKIP IF RPG NOT SUPPORTED      05070000                
.*                                                                      05080000                
* RIB IS X'8F' -- CALL UPON RPG HALT PROCESSOR -- INVOKE CCP TRANSIENT  05090000                
       SPACE 1                                                          05100000                
IGRPGH EQU   *                                                          05110000                
       MVI   IGHSX,CC4HF               SET TRANSIENT NUMBER OF RPG PROC 05120000                
       SPACE 1                                                          05130000                
.*                                                                      05140000                
.IG500 ANOP                            . CONTINUE HERE                  05150000                
.*                                                                      05160000                
* RIB IS X'85' -- CALL UPON HALT/SYSLOG -- INVOKE CCP TRANSIENT         05170000                
       SPACE 1                                                          05180000                
IGHSLG B     $CC4PI                    INVOKE TRANSIENT AREA HANDLER    05190000                
IGHSX  DC    AL1(##)                   ID OF HALT/SYSLOG TRANSIENT      05200000                
       SPACE 1                                                          05210000                
       J     IGRET1                    JUMP IF *NOT* TERMINATED         05220000                
       SPACE 1                                                          05230000                
       B     CC4TI2                    INVOKE TERMINATION OF TASK       05240000                
       DC    AL1(##)                   TERMINATION CODE                 05250000                
       SPACE 1                                                          05260000                
       B     CCPRET                    RETURN TO DSM XNT                05270000                
       SPACE 5                                                          05280000                
*********************************************************************** 05290000                
*          E N T E R   T R U E   G E N E R A L   E N T R Y            * 05300000                
*********************************************************************** 05310000                
       SPACE 2                                                          05320000                
* RIB REQUIRES BRANCH TO "TRUE" GENERAL ENTRY -- WE MUST:               05330000                
*                                                                       05340000                
*    . MARK (IN $DPFLH OF $CCCOM) THAT THE DSM SUPERVISOR IS BUSY       05350000                
*                                                                       05360000                
*    . MARK (IN ENTERER'S TCBTSK BYTE) THAT THE TASK IS IN DSM SUPVR    05370000                
*                                                                       05380000                
*    . BRANCH TO THE *TRUE* ENTRY POINT FOR GENERAL ENTRY               05390000                
       SPACE 1                                                          05400000                
IG$NCE SBN   CCDPFH,DPDSX              INDICATE DSM SUPERVISOR ENTERED  05410000                
       MVC   IGTSKI(2),CCURTB          SET @ OF CURRENT TASK            05420000                
       SBN   ####,TCBDSM               INDICATE TASK IN DSM SUPVR       05430000                
IGTSKI EQU   *-1                       ADDR OF ENTERER'S TCBTSK BYTE    05440000                
       SPACE 1                                                          05450000                
IGDSMT TBN   ####,##                   DOES OTHER LEVEL 'OWN' DSM       05460000                
       JF    IGGOFL                    NO, JUMP                         05470000                
IGENAB JC    IGGOFL,BRNOP              SET TO SIO IF CCP PRIORITY       05480000                
IGGOFL JC    IGGO,BR                   SKIP PARM LIST LOAD FOR LOADER   05482000                
IGJP1# EQU   *-2                       *                                05484000                
       LA    IGCLST,XR2                XR2 --> LOAD/FETCH PARM LIST     05486000                
       MVI   IGJP1#,BR                 CLEAR NOOP FROM ABOVE JUMP       05488000                
       SPACE 1                                                          05490000                
IGGO   B     *-*                       GO TO TRUE GENERAL ENTRY POINT   05500000                
IG@ENT EQU   *-1                       ADDRESS OF *TRUE* GENERAL ENTRY  05510000                
       SPACE 1                                                          05520000                
IG$RIB DC    XL1'00'                   ENTERER'S RIB                    05530000                
IG$CSN DC    XL3'000000'               ENTERER'S CSN ON RIB OF 80/C0    05540000                
       EJECT                                                            05550000                
*********************************************************************** 05560000                
*      R E T U R N   F R O M   T R U E   G E N E R A L   E N T R Y    * 05570000                
*********************************************************************** 05580000                
       SPACE 2                                                          05590000                
* WHEN CONTROL RETURNS HERE, THE TASK WHICH ENTERED GENERAL ENTRY       05600000                
*   HAS LOGICALLY RELEASED CONTROL OF THE DSM SUPERVISOR.  WE MUST:     05610000                
*                                                                       05620000                
*    . MARK (IN $DPFLH OF $CCCOM) THAT THE DSM SUPERVISOR IS FREE       05630000                
*                                                                       05640000                
*    . MARK (IN ENTERER'S TCBTSK BYTE) THAT HE IS *NOT* IN DSM SUPVR    05650000                
*                                                                       05660000                
*    . POST *ANY* TASK WAITING FOR THE SUPERVISOR THAT THE SUPERVISOR   05670000                
*      IS FREE                                                          05680000                
*                                                                       05690000                
*    . RESTORE THE PROGRAM-PACK Q-BYTE IN THE PLCA                      05700000                
*                                                                       05710000                
*    . PROCEED TO RETURN TO THE INVOKER OF GENERAL ENTRY                05720000                
       SPACE 1                                                          05730000                
       SBF   CCDPFH,DPDSX              MARK DSM SUPERVISOR FREE         05740000                
       MVC   IGTSKO(2),CCURTB          SET @ OF CURRENT TASK            05750000                
       SBF   ####,TCBDSM               INDICATE TASK *NOT* IN DSM SUPVR 05760000                
IGTSKO EQU   *-1                       ADDR OF ENTERER'S TCBTSK BYTE    05770000                
       SPACE 1                                                          05780000                
IGDISA JC    IGRET,BRNOP               SET TO SIO IF CCP PRIORITY       05790000                
       SPACE 1                                                          05800000                
IGRET  B     $CC4PS                    INVOKE CCP POST ROUTINE          05810000                
       DC    AL2(WPBDSX)               COMPLETED EVENT: DSM SUPVR FREED 05820000                
IG0003 DC    AL2(0003)                 TCB TO POST: *ANY* AWAITING THIS 05830000                
       SPACE 1                                                          05840000                
       L     CC@PCA,XR2                XR2 -> PLCA                      05850000                
       MVI   NPQ(,XR2),##              RESTORE PROGRAM-PACK Q-BYTE      05860000                
IGNPQ  EQU   *-2                       PGM PACK Q-BYTE INITIALIZED HERE 05870000                
       SPACE 1                                                          05873000                
       MVC   NPOLIB(2,XR2),IGNPLB      RESTORE LIB C/S                  05876000                
       EJECT                                                            05880000                
*********************************************************************** 05890000                
*                R E T U R N   T O   I N V O K E R                    * 05900000                
*********************************************************************** 05910000                
       SPACE 2                                                          05920000                
* RETURN TO THE INVOKER OF GENERAL ENTRY THROUGH THE CCP DISPATCHER,    05930000                
*   USING THE TASK EXIT LOGIC OF THE DISPATCHER                         05940000                
*                                                                       05950000                
* FIRST, POINT:                                                         05960000                
*                                                                       05970000                
*    . XR1 -> CCP COMMUNICATION AREA                                    05980000                
*    . XR2 -> INVOKER'S TCB                                             05990000                
       SPACE 1                                                          06000000                
IGRET0 EQU   *                                                          06001000                
       LA    $CCCOM,XR1                XR1 --> COMMON                   06002000                
       L     @CURTB(,XR1),XR2          XR2 --> ENTERER'S TCB            06003000                
       JC    IGRET2,BR                 DON'T RESET ARR FOR FETCH        06004000                
IGJP2# EQU   *-2                       *                                06005000                
       L     TCBSAV(,XR2),XR1          XR1 --> SAVE AREA                06006000                
       MVC   TCBARR-TCBSAV(2,XR1),IGCLST+7  SET USER FETCH ENTRY PNT.   06007000                
       MVI   IGJP2#,BR                 CLEAR NOOP                       06008000                
       SPACE 1                                                          06009000                
IGRET1 EQU   *                                                          06010000                
       LA    $CCCOM,XR1                XR1 -> CCP COMMUNICATION AREA    06020000                
IGRETN L     @CURTB(,XR1),XR2          XR2 -> ENTERER'S TCB             06030000                
       SPACE 1                                                          06040000                
* NOW PERFORM THE TASK EXIT TO DISPATCHER                               06050000                
       SPACE 1                                                          06060000                
IGRET2 EQU   *                         *                                06065000                
       SBN   $DPFLG(,XR1),DPXSMC       SPECIFY TASK IS EXITING          06070000                
       SBF   $DPFLG(,XR1),DPREG+DPDSP  DON'T SAVE REGS, DISPATCHABLE    06080000                
       SBN   $DPFLH(,XR1),DPNTRC       SPECIFY DO NOT TRACE EXIT        06090000                
       SBN   TCBTSK(,XR2),TCBDSV       SPECIFY RESTORE REGISTERS        06100000                
       B     $CC4DP                    EXIT DIRECTLY TO THE DISPATCHER  06110000                
       EJECT                                                            06120000                
*********************************************************************** 06130000                
*            C O N S T A N T S   A N D   W O R K S P A C E            * 06140000                
*********************************************************************** 06150000                
       SPACE 2                                                          06160000                
* CONSTANT                                                              06170000                
       SPACE 1                                                          06180000                
IGJNOP JC    *+3,X'00'                 NOP JUMP USED AS CONSTANT        06190000                
IG@HS  DC    AL2(IGHSLG)               ADDR OF HALT/SYSLOG INTERFACE    06200000                
       SPACE 5                                                          06210000                
*********************************************************************** 06220000                
*                              T  A  B  L  E  S                       * 06230000                
*********************************************************************** 06240000                
       SPACE 2                                                          06250000                
* TABLE OF TRANSIENT REQUEST RIBS INTERCEPTED BY CCP                    06260000                
       SPACE 1                                                          06270000                
IGRTBL EQU   *                         ADDR OF HI-ORDER OF TABLE        06280000                
       SPACE 1                                                          06290000                
       DC    XL1'82'                   RIB FOR OPEN                     06300000                
       DC    AL2($CC4OC)               OPEN/CLOSE/ALLOC INTERFACE       06310000                
       DC    XL1'83'                   RIB FOR CLOSE                    06320000                
       DC    AL2($CC4OC)               OPEN/CLOSE/ALLOC INTERFACE       06330000                
       DC    XL1'84'                   RIB FOR 'EOJ'                    06340000                
       DC    AL2(CC4TI1)               TERMINATION INTERFACE ROUTINE    06350000                
       DC    XL1'8B'                   RIB FOR ALLOCATE                 06360000                
       DC    AL2($CC4OC)               OPEN/CLOSE/ALLOC INTERFACE       06370000                
.*                                                                      06380000                
       AIF   (&RPG NE '1').IG800       . SKIP IF RPG *NOT* SUPPORTED    06390000                
.*                                                                      06400000                
       DC    XL1'8F'                   RIB FOR RPG HALT PROCESSOR       06410000                
       DC    AL2(IGRPGH)               HALT PROCESSOR INTERFACE         06420000                
.*                                                                      06430000                
.IG800 ANOP                            . CONTINUE HERE                  06440000                
.*                                                                      06450000                
       SPACE 1                                                          06460000                
       DC    XL1'FF'                   TABLE STOPPER PSEUD-RIB          06470000                
IG@NCE DC    AL2(IG$NCE)               OUR INTERFACE TO GENERAL ENTRY   06480000                
       SPACE 1                                                          06490000                
* TABLE OF CCP SUB-RIBS                                                 06500000                
       SPACE 1                                                          06510000                
IGSTBL EQU   *                         HI-ORDER ADDRESS OF TABLE        06520000                
       DC    XL1'00'                   SUB-RIB FOR COMMUNICATIONS I/O   06530000                
       DC    AL2($CC4II)               COMMUNICATIONS I/O I'FACE ROUT   06540000                
.*                                                                      06550000                
       SPACE 1                                                          06560000                
       DC    XL1'01'                   SUB-RIB FOR FORCED TERMINATION   06570000                
       DC    AL2(CC4TI2)               ROUTINE FOR FORCED TERMINATION   06580000                
.*                                                                      06590000                
       AIF   (&RPG NE '1').IG810       . SKIP IF NO RPG SUPPORT         06600000                
.*                                                                      06610000                
       SPACE 1                                                          06620000                
       DC    XL1'02'                   GENERALIZED MOVE REQUEST         06630000                
       DC    AL2($CC4MX)               GENERALIZED MOVE ROUTINE         06640000                
.*                                                                      06650000                
.IG810 ANOP                            . CONTINUE HERE                  06660000                
.*                                                                      06670000                
       SPACE 1                                                          06680000                
       DC    XL1'FF'                   TABLE STOPPER PSEUDO SUB-RIB     06690000                
       DC    AL2(IGCERR)               SUB-RIB ERROR                    06700000                
       SPACE 5                                                          06710000                
*********************************************************************** 06720000                
*            I N V A L I D   S U B - R I B   E R R O R                * 06730000                
*********************************************************************** 06740000                
       SPACE 2                                                          06750000                
* INVALID SUB-RIB -- BRANCH TO TERMINATION INTERFACE ROUTINE WITH       06760000                
*   AN ERROR COMPLETION CODE                                            06770000                
       SPACE 1                                                          06780000                
IGCERR B     CC4TI2                    BRANCH TO ERROR ENTRY            06790000                
       DC    XL1'80'                   TASK COMPLETION CODE             06800000                
       SPACE 5                                                          06810000                
.*                                                                      06820000                
       MEND                                                             06830000