*COMDECK PBLLENTR 
_$J+? 
_*****************************
*                            *
*        PBLLENTR            *
*  CHAIN ENTRY TO ACTIVE LCB *
*                            *
*****************************?
_$R-,G-,I-     NON-RECURSIVE
               INTERRUPTABLE ?
_***********************************************************************
*                                                                      *
**OVERVIEW- PBLLENTR CHAINS A NEW ENTRY TO THE CURRENT CHAIN OF        *
*           ACTIVE LCBS, UPDATING THE GLOBAL TABLE CELCBACT            *
*           CONTAINING THE POINTERS TO THE FIRST AND LAST ACTIVE       *
*           LCBS IN THE CHAIN.                                         *
*                                                                      *
**INPUT-  THE LINE NUMBER OF THE LCB TO CHAIN.                         *
*                                                                      *
**OUTPUT-  THE UPDATED CHAIN OF ACTIVE LCBS.                           *
*                                                                      *
**EXTERNAL SUBROUTINES- NONE                                           *
*                                                                      *
***********************************************************************?
PROCEDURE PBLLENTR (LINENO : B0LINO); 
VAR LCBADDR : BZLCBP;                       _ LCB ADDR TO CHAIN        ?
BEGIN 
  WITH CELCBACT,LINENO DO 
  BEGIN 
    IF 0 = BDSUBPORT                        _ TEST FOR ZERO SUBPORT    ?
    THEN
      ADDR(CGLCBP'[BDPORT], LCBADDR)        _ GET LCB ADDRESS          ?
    ELSE
      ADDR(CGLCBP'[BDPORT].                 _ GET SUB-LCB ADDRESS      ?
           BZSUB1PTR'[BDSUBPORT], LCBADDR); 
    IF LCBADDR'.BZTMRCHN " NIL              _ IF OLD CHAIN NOT ZERO    ?
    THEN
      PBHALT (J0DUPTCH);                    _ HALT ON DUPLICATE ENTRY  ?
    IF NIL = CEFRST                         _ TEST IF 1ST ENTRY IN CHN ?
    THEN CEFRST := LCBADDR                  _ SET UP 1ST ENTRY         ?
    ELSE CELST'.BZTMRCHN := LCBADDR;        _ CHAIN AT END             ?
    CELST := LCBADDR;                       _ SET UP LAST ENTRY        ?
    CELST'.BZTMRCHN := NIL;                 _ CLEAR CHAIN IN LAST ENTRY?
  END;
END;
