*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