*DECK NDLP2NF 
USETEXT NDLDATT 
USETEXT NDLFETT 
USETEXT OVLCTXT 
USETEXT NDLTBLT 
      PROC NDLP2NF; 
      BEGIN 
*IF,DEF,IMS 
# 
**    NDLP2NF - PASS 2 MAIN PROC FOR CHECKING NCF STATEMENTS. 
* 
*     D.K. ENDO    81/11/10 
* 
*     THIS PROCEDURE INITIALIZES NCF TABLE BUFFERS AND CALLS THE
*     APPROPRIATE OVERLAY TO CHECK EACH STATEMENT.
* 
*     PROC NDLP2NF
* 
*     ENTRY        NONE.
* 
*     EXIT         NONE.
* 
*     METHOD
* 
*     ALLOCATE SPACE FOR NCF TABLES.
*     INITIALIZE HEADERS FOR NCF TABLES.
*     POINT LINE CONFIGURE RECORD FET TO CIO BUFFER.
*     REWIND THE PASS 2 ERROR FILE AND STMT TABLE FILE. 
*     FOR EACH ENTRY IN STMT TABLE, 
*       SELECT THE CASE THAT APPLIES, 
*         CASE 1(NFILE,NPU,SUPLINK,COUPLER,LOGLINK,TRUNK):  
*           CALL NETWORK ELEMENT OVERLAY. 
*         CASE 2(GROUP,LINE,TERMINAL,DEVICE): 
*           CALL COMMUNICATION ELEMENT OVERLAY. 
*     CALL NCF TERMINATION OVERLAY. 
* 
# 
*ENDIF
# 
****  PROC NDLP2NF - XREF LIST BEGINS.
# 
      XREF
        BEGIN 
        PROC SSTATS;         # ALLOCATES MORE TABLE SPACE              #
        PROC NDLOVLD;        # LOADS AND EXECUTES OVERLAY              #
        PROC READ;           # FILL CIO BUFFER                         #
        PROC READW;          # READS GIVEN NUMBER OF CP WORDS          #
        PROC RECALL;         # RETURNS CONTROL WHEN RECALL BIT CLEARED #
        PROC REWIND;         # REWINDS GIVEN FILE                      #
        PROC NDLTRNK;        # PROCESS TRUNK STATEMENT ENTRY           #
        END 
# 
****
# 
      CONTROL PRESET; 
      CONTROL NOLIST;        # ER2CNDL, NCFCNDL, PS2CNDL               #
*CALL ER2CNDL 
*CALL NCFCNDL 
*CALL PS2CNDL 
      CONTROL LIST; 
      ITEM I;                # SCRATCH ITEM                            #
#                                                                      #
      SWITCH NCFJUMP         ,         # UNK      # 
                     NETWORK ,         # NFILE    # 
                     NETWORK ,         # NPU      # 
                     NETWORK ,         # SUPLINK  # 
                     NETWORK ,         # COUPLER  # 
                     NETWORK ,         # LOGLINK  # 
                     COMMUNIC,         # GROUP    # 
                     COMMUNIC,         # LINE     # 
                     COMMUNIC,         # REPEAT   # 
                     COMMUNIC,         # TERMINAL # 
                     COMMUNIC,         # DEVICE   # 
                     NETWORK ;         # TRUNK    # 
      CONTROL EJECT;
#                                                                      #
#                            NDLP2NF CODE BEGINS HERE                  #
#                                                                      #
#                          ALLOCATE SPACE FOR NCF TABLE CREATION     #
    SSTATS(P<DEVICE$XREF>,MXDXREF); 
    SSTATS(P<LIN$CON$INDX>,MXLCR);
    SSTATS(P<LIN$CON$REC>,20);
    SSTATS(P<LIN$REC$INDX>,MXLINDX);
    SSTATS(P<LINE$RECORD>,MXLREC);
    SSTATS(P<LINE$XREF>,MXLXREF); 
    SSTATS(P<LOGLINK$XREF>,(LLTENT[0]*LLENTSZ)+2);
    SSTATS(P<NCF$INDEX>,MXNFINDX);
    SSTATS(P<NPU$XREF>,((NTWC[0]/NTENTSZ)*NPENTSZ)+2);
    SSTATS(P<PLINK$XREF>,MXPLINK);
    SSTATS(P<SUPLINK$TABL>,MXSLINK);
      DCWORD[0] = 0;                   # INITIALIZE DEVICE XREF TABLE  #
      DC$IDENT[0] = "DVXREF"; 
      DCWORD[1] = 0;
      DCWC[1] = 1;
      LIWORD[0] = 0;                   # INITIALIZE LINE INDEX         #
      LCRWC[1] = 1;          # INITIALIZE LINE CONFIG INDEX            #
      LI$IDENT[0] = "LNINDEX";
      LIWORD[1] = 0;
      LIWC[1] = 1;
      LRWORD[0] = 0;                   # INITIALIZE LINE RECORD        #
      LR$IDENT[0] = "LNREC";
      LCTWORD[0] = 0;                  # INITIALIZE LINE XREF TABLE    #
      LCT$IDENT[0] = "LNXREF";
      LCTWORD[1] = 0; 
      LCTWC[1] = 1; 
      LLWORD[0] = 0;                   # INITIALIZE LOGLINK XREF TABLE #
      LL$IDENT[0] = "LOGLINK";
      LLWORD1[0] = 0; 
      NPWORD[0] = 0;                   # INITIALIZE NPU XREF TABLE     #
      NP$IDENT[0] = "NPUXREF";
      NPWORD1[0] = 0; 
      PLWORD[0] = 0;                   # INITIALIZE PHYLINK XREF TABLE #
      PL$IDENT[0] = "PHYLINK";
      PLWORD1[0] = 0; 
      SLTWORD[0] = 0;                  # INITIALIZE SUPLINK TABLE      #
#                                                                      #
      NCFCRI[0] = 1;                   # INITIALIZE CURRENT RANDOM INDX#
      NCFCODE[0] = 3;                  # INITIALIZE CODE FIELD         #
      LRFIRST[0] = LOC(LCRWB);         # POINT FET TO WORKING BUFFER   #
      LRIN[0] = LOC(LCRWB); 
      LROUT[0] = LOC(LCRWB);
      LRLIMIT[0] = LOC(LCRWB) + PRULNGTH + 1; 
#                                                                      #
      REWIND(ERR2FET);       # REWIND PASS 2 ERROR FILE                #
      RECALL(ERR2FET);
      REWIND(STFET);         # REWIND STATEMENT TABLE FILE             #
      RECALL(STFET);
      READ(STFET);           # FILL CIO BUFFER                         #
      RECALL(STFET);
      READW(STFET,STMT$TABLE,1,STMT$STAT);   # READ HEADER OF 1ST ENTRY#
      FOR I=0 WHILE STMT$STAT EQ TRNS$OK DO 
        BEGIN                # READ IN EACH ENTRY AND PROCESS IT       #
        GOTO NCFJUMP[STSTID[0]];
NETWORK:  
        NDLOVLD(OVL$ENT[OVLY"NET"]);
        GOTO NEXT;
COMMUNIC: 
        NDLOVLD(OVL$ENT[OVLY"COM"]);
        GOTO NEXT;
NEXT: 
        END 
      NDLOVLD(OVL$ENT[OVLY"NTRM"]); 
      RETURN;                # **** RETURN ****                        #
      END # NDLP2NF # 
      TERM
