*COMDECK IMSPIT 
 #
*1DC PIT - PIP INTERFACE TABLE
* 
*     PIT IS USED BY NIP AND PIP TO COMMUNICATE WITH EACH OTHER. IT IS
*     A COMMON BLOCK PRESET FOR COMMUNICATION WITH 4 PIPS WHICH IS THE
*     MAXIMUM NUMBER OF PIPS ALLOWED.  IT CONSISTS OF A TWO WORD HEADER 
*     WORD FOLLOWED BY FOUR ENTRIES, ONE FOR EACH POSSIBLE PIP.  THE
*     ENTRIES ARE ELEVEN WORDS LONG AND ARE INDEXED BY THEIR
*     PIP NUMBER WHICH WAS DERIVED FROM THE EST ENTRIES OF THE
*     LOCAL NPU(S) AND MDI(S).  A PIT ENTRY IS ASSIGNED (IN USE) WHEN 
*     A NEW NPU/MDI EST ENTRY IS TURNED ON OR IS ALREADY TURNED ON AND
*     THERE IS NO PIP INTERFACING WITH THAT NPU/MDI YET.  A PIT ENTRY 
*     IS RELEASED (NOT IN USE) WHEN PIP FINDS THAT ALL FRONT END NPUS/
*     MDIS THAT IT DRIVES HAVE BEEN TURNED OFF IN THE EST.  IN THIS 
*     CASE, PIP SETS THE COMPLETION BIT IN THE ENTRY AND DROPS OUT. 
*     THE ADDRESS OF THE SECOND WORD OF THE 2 WORD HEADER IS STORED IN
*     RA+61B AT NIP INITIALIZATION TIME.
* 
* 
*     WORDS 1 THROUGH 4 OF EACH PIT ENTRY ARE USED FOR INTERFACING WITH 
*     THE FRONT/END NPU AND MDIS.  EACH NPU/MDI THAT PIP IS DRIVING WILL
*     REQUIRE ONE OF THESE WORDS UP TO THE MAXIMUM OF 4 NPUS/MDI THAT 1 
*     PIP CAN DRIVE.  WHEN A NEW NPU/MDI EST ENTRY IS TURNED ON, NIP
*     WILL USE ONE OF THE FREE ENTRIES IN THE PIT ENTRY FOR THE NEW NPU/
*     MDI.  THE ONE WORD ENTRY CONTAINS THE ADDRESS OF AN ENTRY IN THE
*     NETWORK BUFFER TABLE (NBT) WHICH WILL BE USED FOR PROCESSING ALL
*     UPLINE AND DOWNLINE MESSAGES FROM THAT FRONT END NPU/MDI. 
* 
*     WORDS 5 THROUGH 10 ARE USED MOSTLY FOR MANAGING DYNAMIC PRU 
*     BUFFERS.  WORDS 5 THROUGH 7 ARE CALLED NIP WORDS AND SHOULD ONLY
*     BE WRITTEN BY NIP.  WORDS 8 THROUGH 10 ARE CALLED PIP WORDS AND 
*     SHOULD ONLY BE WRITTEN BY PIP EXCEPT AT PRU BUFFER INITIALIZATION 
*     TIME (AND EVEN THEN NIP MUST FIRST REQUEST THE INTERLOCK).  WORDS 
*     5 AND 8 ARE USED FOR MANAGING 1 PRU BUFFERS, WORDS 6 AND 9 ARE
*     USED FOR MANAGING 2 PRU BUFFER SIZES, AND WORDS 7 AND 10 ARE USED 
*     FOR MANAGING 3 PRU BUFFER SIZES.
*     WHEN A PRU CONNECTION IS INITIALLY CREATED (NIP RECEIVED A PRU/ON 
*     SUPERVISORY MESSAGE FROM THE APP), NIP WILL CHECK TO SEE IF ANY 
*     EXISTING PRU BUFFERS HAVE ALREADY BEEN ALLOCATED FOR THE PRU SIZE 
*     SPECIFIED IN THE PRU/ON SUPERVISORY MESSAGE.  IF BUFFERS HAVE 
*     ALREADY BEEN ALLOCATED, NIP WILL ONLY INCREMENT THE NUMBER OF 
*     PRU CONNECTIONS.  IF NO BUFFERS HAVE
*     BEEN ALLOCATED, NIP WILL REQUEST THE NIP/PIP INTERLOCK AND
*     ALLOCATE THE MINIMUM NUMBER OF PRU BUFFERS OF THE SPECIFIED PRU 
*     SIZE PLUS ANY PRU SIZES SMALLER THAN THE SPECIFIED SIZE FOR WHICH 
*     NO PRU BUFFERS HAVE BEEN ALLOCATED.  THIS IS THE ONLY TIME THAT 
*     NIP WILL WRITE INTO THE PIP WORDS.  BEFORE RELEASING THE NIP/PIP
*     INTERLOCK NIP WILL SET THE NRA FIELD IN THE PIP WORD TO THE VALUE 
*     OF THE NCA FIELD.  NIP WILL CHAIN THE BUFFERS TOGETHER AND STORE
*     THE ADDRESS OF THE FIRST BUFFER IN THE FPB FIELD OF THE NIP WORD. 
*     THE NUMBER OF PRU CONNECTIONS IS INCREMENTED. 
*     IN NIP-S MAIN LOOP PROCESSING, NIP WILL CONSTANTLY BE CHECKING IF 
*     THE NRA FIELD IN THE PIP WORD (NUMBER OF BUFFERS REQUIRED BY PIP) 
*     IS GREATER THAN THE NCA FIELD IN THE NIP WORD (NUMBER OF BUFFERS
*     ALLOCATED BY NIP).  IF SO, NIP WILL LOAD IN OVERLAY XCHKABC TO
*     ALLOCATE ADDITIONAL PRU BUFFERS FOR PIP.  NIP WILL ALLOCATE PRU 
*     BUFFERS UP THE TO THE MAXIMUM VALUE FOR THAT PRU SIZE.  THE NEW 
*     BUFFERS ARE LINKED TOGETHER IN A CHAIN AND THE PRU BUFFER POINTED 
*     TO BY THE FPB FIELD OF THE NIP WORD HAS ITS CHAIN POINTER 
*     UPDATED TO POINT TO THE NEW BUFFERS.  THIS IS HOW PIP REQUESTS
*     ADDITIONAL PRU BUFFERS BEYOND THE MINIMUM INITIALLY ALLOCATED.
*     AS PIP PICKS UP EACH PRU BUFFER TO USE, IT WILL DELINK THAT PRU 
*     BUFFER FROM THE CHAIN.  THUS FOR PIP TO REQUEST ADDITIONAL PRU
*     BUFFERS ALL THE ORIGINAL PRU BUFFERS IN THE PRU BUFFER CHAIN
*     MUST HAVE BEEN DELINKED EXCEPT FOR THE FIRST ONE. 
*     IF THE NRA FIELD IS LESS THAN THE NCA FIELD, THEN PIP HAS 
*     RELEASED ONE OF ITS PRU BUFFERS.  EACH PIP CAN ONLY RELEASE ONE 
*     BUFFER OF EACH SIZE AT A TIME.
*     THEREFORE THE NRA FIELD CAN ONLY BE ONE LESS
*     THAN THE NCA FIELD (AN EXCEPTION TO THIS CASE WILL BE DESCRIBED 
*     LATER).  THE ADDRESS OF THE PRU BUFFER TO BE RELEASED IS POINTED
*     TO BY THE RPB FIELD OF THE PIP WORD.  NIP WILL RELEASE THIS BUFFER
*     AND DECREMENT THE NCA FIELD OF THE NIP WORD BY ONE.  NOW PIP CAN
*     RELEASE ANOTHER PRU BUFFER IF DESIRED.  PIP CAN RELEASE AS MANY 
*     PRU BUFFERS AS IT WANTS TO AS LONG AS THEY ARE RELEASED ONE AT A
*     TIME.  IF PRU CONNECTIONS ARE OUTSTANDING FOR A PRU SIZE, PIP WILL
*     ONLY RELEASE DOWN TO THE MININUM NUMBER OF PRU BUFFERS FOR THAT 
*     SIZE.  IF THERE ARE NO PRU CONNECTIONS OUTSTANDING, PIP WILL
*     RELEASE ALL OF ITS PRU BUFFERS OF THAT SIZE IF IT DOES NOT NEED 
*     THEM.  IF PIP DROPS OUT (CAN ONLY BE DUE TO THE EST ENTRIES OF
*     ALL ITS FRONT END NPU/MDI-S BEING TURNED OFF IF NOT SHUTDOWN),
*     PIP WILL ZERO THE NRA FIELD IN THE PIP WORD.  THIS IS THE ONLY
*     TIME NRA CAN BE MORE THAN ONE LESS THAN NCA.  ALL THE PRU BUFFERS 
*     MUST BE CHAINED TOGETHER WITH THE FIRST PRU BUFFER (I.E. THE ONE
*     POINTED TO BY THE FPB FIELD IN THE NIP WORD) BEFORE PIP DROPS 
*     OUT.  NIP WILL RELEASE ALL THE PRU BUFFERS CHAINED TOGETHER 
*     BEGINNING WITH THE BUFFER POINTED TO BY THE FPB FIELD AND 
*     DECREMENT ITS COUNT OF PRU BUFFERS IN THE NCA FIELD OF THE NIP
*     WORD.  THIS COUNT SHOULD GO DOWN TO ZERO. 
*     WHEN NIP IS PERFORMING GARBAGE COLLECTION, IT CAN MORE THE FREE 
*     PRU BUFFERS IN THE CHAIN THAT ARE NOT CURRENTLY BEING USED BY 
*     PIP.  NIP MUST FIRST LINKED ALL THE BUFFERS IN THE FREE CHAIN 
*     TOGETHER WITH BACKWARD POINTERS SO WE HAVE A DOUBLE LINKED CHAIN. 
*     THE NIP/PIP INTERLOCK IS THEN GOTTEN AND IF ONE OF THESE PRU
*     BUFFERS IS MOVED, NIP HAS THE ADDRESS OF THE PREVIOUS AND NEXT
*     PRU BUFFERS IN THE CHAIN TO ADJUST THEIR CHAIN ADDRESSES. 
* 
*     PIT HEADER FORMAT-
* 
*                  1           2           3     4                5 
*      0           2           4           6     2                9 
*     I-----------------------------------I-----I-----------------I 
*     I               "PIT"               I     I      777777     I 
*     I-----------------------------------I-----I-----------------I 
*     I                                   IWI   I                 I 
*     I                                   IOI   I                 I 
*     I                                   IRI   I     DUMPA       I 
*     I                                   IKI   I                 I 
*     I-----------------------------------I-I---I-----------------I 
* 
*     WHERE...... 
* 
*       WORK  = FLAG SET TO TRUE WHEN PIP HAS WORK FOR NIP TO DO
*       DUMPA = ADDRESS OF CM AREA FOR PIP(S) TO DUMP ITS PPU MEMORY
*               DURING NIP"S REPRIEVE PROCESSING. 
* 
*     PIT ENTRY FORMAT- 
* 
*                  1           2           3           4          5 
*      012345678901234567890123456789012345678901234567890123456789 
*     I-----------------------------I-----I-----------I---------I-I 
*     IPI                           I     I           I         I A 
*     IUI                           I PIP I    PA     I         ICC WD 0
*     IFI                           I     I           I         I K 
*     I-----------I-----------I-----I-----I-----I-----I---------I-I 
*     I       IRD I           I     I     I     I                 I 
*     IHDHFPEANPH I    NPC    I     I NBTEI     I     NBTA        I WD 1
*     INFPFFSFIRL I           I     I     I     I                 I 
*     IF F  F TVT I           I     I     I     I                 I 
*     I-I---I-----I-----------I-----I-----I-----I-----------------I 
*     IHI   I                 I     I     I     I                 I 
*     INI   I       PDB       I     I NBTEI     I     NBTA        I WD 2
*     IFI   I                 I     I     I     I                 I 
*     I-I---I-----------------I-----I-----I-----I-----------------I 
*     IHI                           I     I     I                 I 
*     INI                           I NBTEI     I     NBTA        I WD 3
*     IFI                           I     I     I                 I 
*     I-I---------------------------I-----I-----I-----------------I 
*     IHI                           I     I     I                 I 
*     INI                           I NBTEI     I    NBTA         I WD 4
*     IFI                           I     I     I                 I 
*     I-I---I-----I-----------I-----------I-----I-----------------I 
*     I     I     I           I           I                       I 
*     I MFB I MAB I    NCA    I    NC     I        FPB            I WD 5
*     I     I     I           I           I                       I 
*     I-----I-----I-----------I-----------I-----------------------I 
*     I     I     I           I           I                       I 
*     I MFB I MAB I    NCA    I    NC     I        FPB            I WD 6
*     I     I     I           I           I                       I 
*     I-----I-----I-----------I-----------I-----------------------I 
*     I     I     I           I           I                       I 
*     I MFB I MAB I    NCA    I    NC     I        FPB            I WD 7
*     I     I     I           I           I                       I 
*     I-----I-----I-----------I-----------I-----------------------I 
*     I           I           I           I                       I 
*     I    NFB    I    NRA    I   ITC     I        RPB            I WD 8
*     I           I           I           I                       I 
*     I-----------I-----------I-----------I-----------------------I 
*     I           I           I           I                       I 
*     I    NFB    I    NRA    I   PTC     I        RPB            I WD 9
*     I           I           I           I                       I 
*     I-----------I-----------I-----------I-----------------------I 
*     I           I           I           I                       I 
*     I    NFB    I    NRA    I   DCC     I        RPB            I WD10
*     I           I           I           I                       I 
*     I-----------I-----------I-----------I-----------------------I 
* 
*     WHERE...... 
* 
* 
*       PUF   = USE FLAG. SET BY NIP WHEN THE ENTRY IS ASSIGNED(IN USE).
*       PIP   = PIP NUMBER FOR THIS PIP.
*       PA    = PIP ABORT ADDRESS. SET BY PIP WHEN PIP ABORTS THE PP. 
*       C     = COMPLETION FLAG. SET BY PIP WHEN PIP DROPS OUT. 
*       ACK   = INTERLOCK ACKNOWLEDGEMENT FLAG. SET BY PIP WHEN IT
*               ACKNOWLEDGES NIP-S INTERLOCK REQUEST BY PAUSING.CLEARED 
*               BY NIP WHEN THE INTERLOCK IS RELEASED.
* 
*       HNF   = HALT NPU FLAG. SET BY NIP TO REQUEST PIP TO HALT NPU. 
*       DF    = DROP PIP FLAG. SET BY NIP TO REQUEST PIP TO DROP. 
*       HPF   = HANG PIP FLAG. SET BY NIP TO REQUEST PIP TO HANG. 
*       FF    = DUMP PIP FLAG. SET BY NIP TO REQUEST PIP TO DUMP. 
*       PF    = INTERLOCK REQUEST FLAG. SET BY NIP TO REQUEST INTERLOCK.
*       ESF   = EST SCAN FLAG. SET BY NIP TO DESIGNATE THIS PIP IS TO 
*               BE USED FOR PERFORMING THE PERIODIC EST SCAN. 
*       AF    = INTERLOCK ABANDONED FLAG. SET BY NIP TO ABANDON THE 
*               OUTSTANDING INTERLOCK REQUEST.
*       INIT  = SET BY NIP IF NPU IS TO BE HALTED AT NAM INITIATION.
*       RPRV  = SET BY NIP IF NPU IS TO BE HALTED AT NAM TERMINATION. 
*       DHLT  = SET BY NIP IF NPU IS TO BE HALTED ON BLOCK PROTOCOL ERR.
*       NPC   = NUMBER OF PRU CONNECTIONS DRIVEN BY THIS PIP. 
*       NBTE  = NBT ENTRY INDEX (1-8) FOR THIS NPU. 
*       NBTA  = FWA OF NBT ENTRY FOR THIS NPU, ZERO INDICATES NO NPU
*               (EACH PIP IS ALLOWED TO DRIVE A MAXIMUM OF FOUR NPUS).
*       PDB   = ADDRESS OF BUFFER FOR PIP TO DUMP ITS MEMORY TO 
*       MFB   = MINIMUM NUMBER OF  PRU BUFFERS TO ASSIGN
*       MAB   = MAXIMUM NUMBER OF  PRU BUFFERS TO ASSIGN
*       NCA   = CURRENT NUMBER OF  PRU BUFFERS ALLOCATED
*       NC    = CURRENT NUMBER OF  PRU BUFFER CONNECTIONS 
*       FPB   = ADDRESS OF FIRST PRU BUFFER IN FREE CHAIN 
*       NFB   = CURRENT NUMBER OF FREE PRU BUFFERS IN PIP-S TABLES
*       NRA   = CURRENT NUMBER OF BUFFERS REQUIRED BY PIP 
*       ITC   = IVT TRANSACTION COUNT 
*       RPB   = ADDRESS OF PRU BUFFER FOR NIP TO RELEASE
*       PTC   = PRU TRANSACTION COUNT 
*       DCC   = DRIVER CYCLE COUNT
* 
 #
