cdc:nos2.source:nam5871:ndlnfnt
Table of Contents
NDLNFNT
Table Of Contents
- [00008] PROC NDLNFNT
- [00012] NCF NETWORK ELEMENTS
- [00061] PROC ABORT
- [00062] PROC SSTATS
- [00063] PROC MESSAGE
- [00064] PROC READW
- [00065] PROC NDLTRNK
- [00066] PROC NDLWNCF
- [00121] PROC CHKNODE(NODE$VAL,MXNO,UNQFLG,INRANGE)
- [00126] CHKNODE - CHECK NODE VALUE
- [00166] PROC NDLEM2
- [00167] FUNC XCDD C(10)
- [00204] PROC CPLERPR
- [00208] CPLERPR - COUPLER PROCESSOR
- [00245] PROC NDLEM2
- [00364] PROC LLINKPR
- [00368] LLINKPR - LOGICAL LINK PROCESSOR
- [00416] PROC NDLEM2
- [00581] PROC NFILEPR
- [00586] NFILEPR - NFILE STATEMENT PROCESSOR
- [00615] FUNC EDATE C(10)
- [00616] FUNC ETIME C(10)
- [00617] PROC PDATE
- [00618] PROC RECALL
- [00619] PROC REWIND
- [00620] PROC VERSION
- [00621] PROC NDLZFIL
- [00706] PROC NPUPR
- [00711] NPUPR - NPU PROCESSOR
- [00753] PROC NDLEM2
- [00903] PROC RNGNODE(NODEVAL,MAX,RNGFLG)
- [00908] PRGNODE - CK RANGE OF NODE
- [00943] PROC NDLEM2
- [00944] FUNC XCDD C(10)
- [00965] PROC SLINKPR
- [00969] SLINKPR - SUPLINK PROCESSOR
- [01005] PROC NDLEM2
- [01060] PROC SLINKXR(LLENT)
- [01064] SLINKXR - SUPLINK CROSS REFERINCE
Source Code
- NDLNFNT.txt
- *DECK NDLNFNT
- USETEXT NDLDATT
- USETEXT NDLER2T
- USETEXT NDLFETT
- USETEXT NDLNCFT
- USETEXT NDLPS2T
- USETEXT NDLTBLT
- PROC NDLNFNT;
- BEGIN
- *IF,DEF,IMS
- #
- ** NDLNFNT - NCF NETWORK ELEMENTS
- *
- * S.M. ILMBERGER 81/11/2
- *
- * PROCESS NETWORK ELEMENT STATEMENTS
- *
- * PROC NDLNFNT
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * MESSAGES
- * INVALID STMT I.D.-ABORT FROM NCFNET
- *
- * METHOD
- *
- * FOR EACH "NETWORK" OR "TRUNK" TYPE STATEMENT IN STMT$TABLE
- * READ FULL STATEMENT
- * IF STATEMENT IS NFILE
- * CLEAR PRFX$TABLE AND VERIFY$ENTRY
- * CALL NFILE STATEMENT PROCESSOR
- * IF STATEMENT IS NPU
- * GET AND CLEAR NEXT ENTRY OF NPU$XREF TABLE
- * CALL NPU STATEMENT PROCESSOR
- * IF STATEMENT IS SUPLINK
- * GET AND CLEAR NEXT ENTRY OF SUPLINK TABLE
- * CALL SUPLINNK STATEMENT PROCESSOR
- * IF STATEMENT IS COUPLER
- * GET AND CLEAR NEXT ENTRY OF PLINK$XREF TABLE
- * CALL COUPLER STATEMENT PROCESSOR
- * IF STATEMENT IS LOGLINK
- * GET AND CLEAR NEXT ENTRY OF LOGLINK$XREF
- * CALL LOGLINK STATEMENT PROCESSOR
- * IF STATEMENT IS TRUNK
- * GET AND CLEAR NEXT ENTRY OF PLINK$XREF TABLE
- * CALL TRUNK STATEMENT PROCESSOR
- * IF STATEMENT HAS NOT MATCHED A STATEMENT ID
- * SEND ERROR MESSAGE
- * READ NEXT STATEMENT HEADER
- * END
- *
- #
- *ENDIF
- #
- **** PROC NDLNFNT - XREF LIST BEGINS
- #
- XREF
- BEGIN
- PROC ABORT; # ABORTS NDLP #
- PROC SSTATS; # ALLOCATE MORE TABLE SPACE #
- PROC MESSAGE; # MAKE DAYFILE AND SYSTEM CONSOLE MESSAGE #
- PROC READW; # READ STATEMENT TABLE #
- PROC NDLTRNK; # PROCESS TRUNK STATEMENT #
- PROC NDLWNCF; # WRITE RECORD TO NCF-FILE #
- END
- #
- ****
- #
- DEF FSTCT # 1 #; # FIRST ENTRY IN COUPLER TABLE #
- DEF FSTLL # 1 #; # FIRST ENTRY IN LOGLINK-XREF-TABLE #
- DEF FSTLLT # 1 #; # FIRST ENTRY IN LOGLINK TABLE #
- DEF FSTNT # 1 #; # FIRST ENTRY IN NPU TABLE #
- DEF FSTPL # 1 #; # FIRST ENTRY IN PHYSICAL-LINK-XREF TAB #
- DEF LEN$FH$TAB # 17 #; # LENGTH OF TABLE TO WRITE TO NCF #
- DEF SECLL # 2 #; # SECOND ENTRY IN LOGLINK-XREF TAB #
- ITEM COMM$RD$ER B; # INDICATES STMT IS COMMUNICATION TYPE OR #
- # A READ ERROR OCCURED #
- ITEM CPL$CNT I; # NUMBER OF COUPLERS ON CURRENT NPU #
- ITEM CRNT$CPL C(7); # NAME OF CURRENT COUPLER #
- ITEM CRNT$CNID; # NODE I.D. OF CRUENT COUPLER #
- ITEM CRNT$HNAM C(7); # NAME OF CURRENT HNAME #
- ITEM FWAWSA; # 1ST WORD ADDRESS OF WORKING STORAGE AREA#
- ITEM I; # LOOP COUNTER #
- ITEM PRI$USED B; # PRIMARY SPECIFIED FLAG #
- ITEM SEC$USED B; # SECONDARY SPECIFIED FLAG #
- ARRAY STMT$TAB [0:11] S(1); # ROUTES STMT TO NETWORK OR #
- BEGIN # COMMUNICATION PROCESSOR #
- ITEM STMT$TYPE C(0,0,10) = [,"NETWORK ", # NFILE #
- "NETWORK ", # NPU #
- "NETWORK ", # SUPLINK #
- "NETWORK ", # COUPLER #
- "NETWORK ", # LOGLINK #
- "COMMUNIC ", # GROUP #
- "COMMUNIC ", # LINE #
- "COMMUNIC ", # REPEAT #
- "COMMUNIC ", # TERMINAL #
- "COMMUNIC ", # DEVICE #
- "TRUNK " # TRUNK #
- ];
- END
- SWITCH NET$ELEM ERR$NET , # UNK #
- NFILE$ST, # NFILE #
- NPU$ST , # NPU #
- SLINK$ST, # SUPLINK #
- COUP$ST , # COUPLER #
- LLINK$ST, # LOGLINK #
- ERR$NET ,
- ERR$NET ,
- ERR$NET ,
- ERR$NET ,
- ERR$NET ,
- TRNK$ST ; # TRUNK #
- CONTROL EJECT;
- PROC CHKNODE(NODE$VAL,MXNO,UNQFLG,INRANGE);
- # CHECKS THAT NODE NUMBER IS UNIQUE #
- BEGIN # CHKNODE PROC #
- *IF,DEF,IMS
- #
- ** CHKNODE - CHECK NODE VALUE
- *
- * S.M. ILMBERGER 81/10/30
- *
- * CHECK UNIQUENESS OF NODE NUMBER
- *
- * PROC CHKNODE(NODE$VAL,MXNO,UNQFLG,INRANGE)
- *
- * ENTRY NODE$VAL - NODE NUM TO CHECK UNIQUENESS OF
- * MXNO - MAXIMUM VALUE NODE CAN HAVE
- *
- * EXIT UNQFLG - FLAG INDICATING IF NODE IS UNIQUE
- * INRANGE - FLAG INDICATING IF NODE IS IN RANGE
- *
- * MESSAGES NONE
- *
- * METHOD
- *
- * CALL RNGNODE TO CK IF NODE IS IN RANGE
- * IF NODE IS INRANGE
- * CK BITMAP FOR UNIQUENESS
- * IF NOT UNIQUE
- * SEND ERROR MSG
- * ELSE
- * SET BIT IN BITMAP
- * END
- *
- #
- *ENDIF
- ITEM CNODEVAL C(10); # CHARACTER STORAGE FOR NODE NUMBER #
- ITEM NODE$VAL I; # NODE NUMBER TO CHECK UNIQUENESS ON #
- ITEM MXNO I; # MAX NUMBER NODE CAN HAVE #
- ITEM UNQFLG B; # NODE UNIQUENESS FLAG #
- # TRUE IF VALUE IS UNIQUE #
- ITEM INRANGE B; # RANGE RESTRAINT FLAG #
- # TRUE WHEN NODE NUMBER IS IN RANGE #
- XREF
- BEGIN
- PROC NDLEM2; # MAKES ENTRY IN ERROR-FILE-2 #
- FUNC XCDD C(10); # CONVERTS INTEGER TO DECIMAL DISPLAY CODE#
- END
- ITEM BIT; # INDICATES BIT NUMBER OF BITMAP #
- ITEM WORD; # INDICATES WORD OF BITMAP #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- BIT = 0;
- WORD = 0;
- UNQFLG = TRUE; # NODE IS UNIQUE #
- RNGNODE(NODE$VAL,MXNO,INRANGE); # CK IF NODE IS RANGE #
- IF INRANGE
- THEN
- BEGIN
- WORD = (NODE$VAL-1) / 60; # COMPUTE CORRECT WORD OF BITMAP #
- BIT = (NODE$VAL-1) - (60 * WORD); # AND BIT TO REFER TO #
- IF B<BIT,1>BITMAP[WORD] EQ 1 # TEST BIT IN BITMAP #
- THEN # IF ALREADY SET #
- BEGIN
- CNODEVAL = XCDD(NODE$VAL); # CONVERT INTEGER TO DEC DISPLAY#
- NDLEM2(ERR125,STLNUM[0],CNODEVAL); # SEND ERROR MSG #
- UNQFLG = FALSE; # SET FLAG TO INDICATE VALUE NOT UNIQUE #
- END
- ELSE # OTHERWISE SET FLAG #
- BEGIN
- B<BIT,1>BITMAP[WORD] = 1;
- END
- END # IF INRANGE #
- RETURN;
- END # CHKNODE PROC #
- CONTROL EJECT;
- PROC CPLERPR; # PROCESS COUPLER STATEMENT #
- BEGIN
- *IF,DEF,IMS
- #
- ** CPLERPR - COUPLER PROCESSOR
- *
- * S.M. ILMBERGER 81/10/30
- *
- * PROCESS COUPLER STATEMENT
- *
- * PROC CPLERPR
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * MESSAGES
- * INVALID KEYWORD I.D.-ABORT FROM CPLERPR
- *
- * METHOD
- *
- * IF NO LABEL ERROR
- * SAVE COUPLER NAME
- * SET COUPLER FLAG IN PLINK$XREF
- * FOR EACH KEYWORD ON STATEMENT
- * IF NO VALUE ERROR
- * SAVE INFO IN APPROPRIATE POSITION OF PLINK$XREF TABLE
- * IF NO NODE OR HNAME PARAMETER SPECIFIED
- * FLAG ERROR
- * IF DUPLICATE COUPLER LOC VALUE
- * FLAG ERROR
- * IF MORE THAN TWO COUPLERS
- * FLAG ERROR
- * SET BIT IN LOC BITMAP FOR LOC VALUE
- * END
- *
- #
- *ENDIF
- XREF
- BEGIN
- PROC NDLEM2; # MAKE ENTRY IN ERROR-FILE-2 #
- END
- DEF COUP$PAR # "COUPLER" #; # FOR ERROR MESSAGE #
- DEF HNAME$PAR # "HNAME" #; # FOR ERROR MESSAGE #
- DEF MX$NODE # 255 #; # MAX NODE NUMBER ON COUPLER STATEMENT #
- DEF NODE$PAR # "NODE" #; #FOR ERROR MESSAGE #
- DEF PRI1 # 0 #; # LOC VALUE FOR PRIMARY #
- DEF SEC1 # 1 #; # LOC VALUE FOR SECONDARY #
- DEF SEC # "SECOND" #;
- ITEM COUPCNT; # NUMBER OF COUPLERS TO CURRENT NPU #
- ITEM I; # LOOP COUNTER #
- ITEM INRFLG B; # NODE NUMBER IN RANGE #
- ITEM KWD$MAP; # KEYWORD EXISTS BIT MAP #
- ITEM LOC$PAR C(10); # LOC PARAMETER VALUE #
- ITEM NODEVAL; # NODE VALUE #
- ITEM UNQFLG B; # NODE NUMBER UNIQUE FLAG #
- SWITCH CPL$PAR ERR$CP , # UNK #
- NODE$ID, # NODE #
- ERR$CP , # VARIANT #
- ERR$CP , # OPGO #
- ERR$CP , # DMP #
- ERR$CP , # LLNAME #
- ERR$CP , # UNK #
- ERR$CP , # UNK #
- ERR$CP , # UNK #
- ERR$CP , # UNK #
- HNAM$ID, # HANME #
- LOC$ID ; # LOC #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- CRNT$CPL = " ";
- CRNT$CNID = 0;
- CRNT$HNAM = " ";
- KWD$MAP = 0; # CLEAR BIT MAP #
- LOC$PAR = "PRIMARY"; # SET DEFAULT LOC VALUE #
- PLWC[0] = PLWC[0] +1;
- IF NOT STLBERR[1]
- THEN
- BEGIN
- PLNAME[PLWC[0]] = STLABEL[1];
- PLTYPE[PLWC[0]] = 0; # INDICATES THIS IS A COUPLER STMT #
- END
- PLNID1[PLWC[0]] = CRNT$NID;
- PLHNAME[PLWC[0]] = " "; #BLANK FILL HOST NAME BY DEFAULT#
- FOR I=FSTKID2 STEP 1 UNTIL STWC[0]
- DO
- BEGIN
- B<STKWID[I],1>KWD$MAP = 1; # SET BIT FOR KEYWORD #
- IF NOT STVLERR[I]
- THEN
- BEGIN
- IF STKWID[I] LS KID"NODE"
- OR STKWID[I] GR KID"LOC"
- THEN
- GOTO ERR$CP;
- ELSE
- GOTO CPL$PAR[STKWID[I]];
- NODE$ID: # PARAMETER IS - NODE #
- NODEVAL = STVALNUM[I];
- CHKNODE(NODEVAL,MX$NODE,UNQFLG,INRFLG); #CK NODE NUMBER #
- IF UNQFLG AND INRFLG
- THEN
- PLHNID[PLWC[0]] = STVALNUM[I];
- CRNT$CPL = STLABEL[1];
- CRNT$CNID = STVALNUM[I];
- TEST I;
- HNAM$ID: # NEXT PARAMETER = HNAME #
- PLHNAME[PLWC[0]] = STVALNAM[I];
- CRNT$HNAM = STVALNAM[I];
- IF PLNAME[PLWC[0]] EQ PLHNAME[PLWC[0]]
- THEN
- NDLEM2(ERR122,STLNUM[0],HNAME$PAR);
- TEST I;
- LOC$ID:
- # NEXT PARAMETER = LOC #
- LOC$PAR = STVALNAM[I]; # SAVE LOC VALUE #
- IF STVALNAM[I] EQ SEC
- THEN
- PLLOC[PLWC[0]] = 1;
- TEST I;
- ERR$CP:
- EPRC2[0] = "CPLERPR";
- MESSAGE(ABRTMSG2,0);
- ABORT;
- END
- END # I LOOP #
- IF B<KID"NODE",1>KWD$MAP NQ 1
- THEN # IF NODE NOT SPECIFIED, FLAG ERROR #
- NDLEM2(ERR103,STLNUM[0],NODE$PAR); # FLAG ERROR #
- IF (PLLOC[PLWC[0]] EQ PRI1
- AND PRI$USED)
- OR (PLLOC[PLWC[0]] EQ SEC1
- AND SEC$USED)
- THEN
- NDLEM2(ERR124,STLNUM[0],LOC$PAR); # FLAG ERROR-DUP LOC VALUE #
- IF CPL$CNT GQ 2
- THEN
- NDLEM2(ERR123,STLNUM[0],COUP$PAR); # FLAG ERROR-TOO MANY CPLER #
- CPL$CNT = CPL$CNT + 1; # INCREMENT COUPLER COUNT #
- IF PLLOC[PLWC[0]] EQ PRI1
- THEN
- PRI$USED = TRUE;
- ELSE
- SEC$USED = TRUE;
- RETURN;
- END # CPLERPR PROC #
- CONTROL EJECT;
- PROC LLINKPR; # PROCESS LOGLINK STATEMENT #
- BEGIN
- *IF,DEF,IMS
- #
- ** LLINKPR - LOGICAL LINK PROCESSOR
- *
- * S.M. ILMBERGER 81/10/30
- *
- * PROCESS LOGICAL LINK STATEMENTS AND BUILD LOGLINK$XREF TABLE
- *
- * PROC LLINKPR
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * MESSAGES
- * INVALID KEYWORD I.D.-ABORT FRM LLINKPR
- *
- * METHOD
- *
- * IF NO LABEL ERROR
- * SAVE LOGLINK NAME IN LOGLINK$XREF TABLE
- * SAVE CURRENT NPU NODE AND CURRENT COUPLER NODE IN LOGLINK$XREF
- * FOR EACH PARAMETER ON THE LOGLINK LINE
- * SET APPROPRIATE BIT IN KEYWORD BITMAP
- * IF NO VALUE ERROR
- * IF PARAMETER IS NCNAME
- * SEARCH NPU$TABLE FOR NPU NAME = NCNAME VALUE
- * IF NCNAME VALUE IS A NPU NAME
- * SAVE CORRESPONDING NODE ID IN LOGLINK$XREF
- * ELSE
- * SEARCH COUP$TABLE FOR COUPLER NAME = NCNAME
- * IF NAME DEFINED IN COUPLER TABLE
- * SAVE CORRESPONDING NODE ID IN LOGLINK$XREF
- * ELSE
- * FLAG ERROR - INVALID NCNAME
- * IF DUPLICATE LOGLINK
- * FLAG ERROR - DUP LOGLINK
- * IF PARAMETER IS DI
- * SET FLAG IN LOGLINK$XREF TABLE
- * IF PARAMETER IS NOT DI OR NCNAME
- * SEND DAYFILE ERROR MESSMGE - ABORT
- * IF NCNAME PARAMETER NOT SPECIFIED
- * FLAG ERROR - PARAMETER MISSING
- * END
- *
- #
- *ENDIF
- XREF
- BEGIN
- PROC NDLEM2; # MAKE ENTRY IN PASS 2 ERROR FILE #
- END
- DEF DI$YES # "YES" #; # VALUE FOR DI PARAMETER #
- DEF LLNK$PAR # "LOGLINK" #;
- DEF NCNM$PAR # "NCNAME" #; # FOR ERROR MSG #
- ITEM CPL$ENT; # ENTRY OF COUPLER TABLE #
- ITEM FOUND B; # FOUND FLAG #
- ITEM I; # LOOP COUNTER #
- ITEM J; # LOOP COUNTER #
- ITEM KWD$MAP; # KEYWORD EXISTS MAP #
- ITEM NPU$ENT; # ENTRY OF NPU TABLE #
- SWITCH LLK$PAR ERR$LL , # UNK #
- ERR$LL , # NODE #
- ERR$LL , # VARIANT #
- ERR$LL , # OPGO #
- ERR$LL , # DMP #
- ERR$LL , # LLNAME #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # HNAME #
- ERR$LL , # LOC #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # #
- ERR$LL , # #
- NCNA$ID, # NCNAME #
- DI$ID ; # DI #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- KWD$MAP = 0; # CLEAR KEYWORD EXISTS MAP #
- LLWC[0] = LLWC[0] + 1;
- IF NOT STLBERR[1]
- THEN
- BEGIN # NO LABEL ERROR #
- LLNAME[LLWC[0]] = STLABEL[1]; # SET LLINK NAME #
- END
- LLHNID1[LLWC[0]] = CRNT$CNID;
- LLNID1[LLWC[0]] = CRNT$NID;
- LLHNAME[LLWC[0]] = CRNT$HNAM;
- FOR I=FSTKID2 STEP 1 UNTIL STWC[0]
- DO # PROCESS REST OF PARAMETERS #
- BEGIN
- B<STKWID[I],1>KWD$MAP = 1; # SET BIT FOR KEYWORD #
- IF NOT STVLERR[I]
- THEN
- BEGIN # NO VALUE ERRORS #
- IF STKWID[I] LS KID"NODE"
- OR STKWID[I] GR KID"DI"
- THEN
- GOTO ERR$LL;
- ELSE
- GOTO LLK$PAR[STKWID[I]];
- NCNA$ID: # NEXT PARAMETER IS NCNAME #
- NPU$ENT = 0;
- FOR J=FSTNT STEP NTENTSZ WHILE NPU$ENT EQ 0
- AND J LQ NTWC[0]
- DO
- BEGIN
- IF NTNAME[J] EQ STVALNAM[I]
- THEN
- NPU$ENT = J;
- END # J LOOP #
- IF NPU$ENT GR 0
- THEN
- BEGIN
- LLHNID2[LLWC[0]] = NTNID[NPU$ENT];
- LLNID2[LLWC[0]] = NTNID[NPU$ENT];
- END
- ELSE
- BEGIN
- CPL$ENT = 0;
- FOR J=FSTCT STEP CTENTSZ WHILE CPL$ENT EQ 0
- AND J LQ CTENT[0]
- DO
- BEGIN # CHK COUPLER TABLE #
- IF CTNAME[J] EQ STVALNAM[I]
- THEN
- CPL$ENT = J;
- END # J LOOP #
- IF CPL$ENT GR 0
- THEN # NAME DEFINED IN COUPLER-TABLE #
- BEGIN
- LLTYPE[LLWC[0]] = 1;
- LLHNID2[LLWC[0]] = CTHNID[CPL$ENT];
- LLNID2[LLWC[0]] = CTNID[CPL$ENT];
- END
- ELSE
- NDLEM2(ERR121,STLNUM[0],NCNM$PAR);
- END
- IF LLHNID1[LLWC[0]] NQ 0
- AND LLHNID2[LLWC[0]] NQ 0
- THEN
- BEGIN
- FOR J=1 STEP 1 UNTIL LLWC[0] - 1
- DO
- BEGIN
- IF ( LLHNID1[J] EQ LLHNID1[LLWC[0]]
- AND LLHNID2[J] EQ LLHNID2[LLWC[0]] )
- OR ( LLHNID1[J] EQ LLHNID2[LLWC[0]]
- AND LLHNID2[J] EQ LLHNID1[LLWC[0]] )
- THEN
- BEGIN
- NDLEM2(ERR120,STLNUM[0],LLNK$PAR);
- END
- END # J LOOP #
- END
- TEST I;
- DI$ID: # NEXT PARAMETER = DI #
- IF STVALNAM[I] EQ DI$YES
- THEN
- LLST[LLWC[0]] = TRUE;
- TEST I;
- ERR$LL:
- EPRC2[0] = "LLINKPR";
- MESSAGE(ABRTMSG2,0);
- ABORT;
- END
- END # I LOOP #
- IF B<KID"NCNAME",1>KWD$MAP NQ 1
- THEN # IF NCNAME NOT SPECIFIED, FLAG ERROR #
- NDLEM2(ERR103,STLNUM[0],NCNM$PAR);
- IF LLNID1[LLWC[0]] NQ LLNID2[LLWC[0]] AND
- (LLNID1[LLWC[0]] NQ 0 AND LLNID2[LLWC[0]] NQ 0)
- THEN # IF THIS IS A LOGLINK TO A REMOTE NODE #
- BEGIN # AND NPU NODE I.D.-S WERE DETERMINED #
- FOUND = FALSE; # CLEAR FOUND FLAG #
- FOR I=1 STEP TNIENTSZ WHILE NOT FOUND AND
- I LQ TNIWC[0]
- DO # FOR EACH ENTRY IN THE TNI TABLE #
- BEGIN
- IF (LLNID1[LLWC[0]] EQ TNIN1[I] AND
- LLNID2[LLWC[0]] EQ TNIN2[I]) OR
- (LLNID1[LLWC[0]] EQ TNIN2[I] AND
- LLNID2[LLWC[0]] EQ TNIN1[I])
- THEN # IF TRUNK SUPPORTS LOGLINK #
- BEGIN
- FOUND = TRUE; # SET FOUND FLAG #
- END
- END
- IF NOT FOUND # IF NO TRUNK FOUND #
- THEN
- BEGIN # FLAG ERROR -- NO TRUNK FOR THIS LOGLINK #
- NDLEM2(ERR154,STLNUM[0]," ");
- END
- END
- RETURN;
- END # LLINKPR PROC #
- CONTROL EJECT;
- PROC NFILEPR; # PROCESS NFILE STATEMENT #
- BEGIN
- *IF,DEF,IMS
- #
- ** NFILEPR - NFILE STATEMENT PROCESSOR
- *
- * S.M. ILMBERGER 81/11/2
- *
- * PROCESS NFILE STATEMENT
- *
- * PROC NFILEPR
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * MESSAGES NONE
- *
- * METHOD
- *
- * IF NO LABEL ERROR
- * INITIALIZE NCFFET
- * SET UP PRFX$TABLE
- * SET UP VERIFY$ENTRY TABLE
- * INITIALIZE NCF$INDEX TABLE
- * IF LABEL ERROR
- * CLEAR FILE NAME IN FET
- * END
- *
- #
- *ENDIF
- XREF
- BEGIN
- FUNC EDATE C(10); # UNPACK DATE #
- FUNC ETIME C(10); # UNPACK TIME #
- PROC PDATE; # GET PACKED DATE AND TIME #
- PROC RECALL; # RETURNS CONTROL WHEN PROCESS FINISHED #
- PROC REWIND; # REWINDS SPECIFIED FILE #
- PROC VERSION; # GET VERSION NUMBER OF OPERATING SYSTEM #
- PROC NDLZFIL; # ZERO FILL UNUSED PART OF WORD #
- END
- DEF BLANK # " " #;
- *CALL NAMLEV
- ITEM I; # LOOP COUNTER #
- ITEM J; # DUMMY VARIBLE #
- ITEM TEMP1 U; # TEMP STORAGE #
- ITEM TEMPACDAT U; # STORAGE FOR PACKED DATE #
- ITEM TEMPDAT C(10); # STORAGE FOR DATE #
- ITEM TEMPNAM C(10); # STORAGE FOR NDLZFIL #
- ITEM TEMPT1 C(10); # STORAGE FOR TIME #
- ITEM TEMPTIM U; # STORAGE FOR TIME #
- ITEM TEMPVER C(10); # STORAGE FOR VERSION NO. OF OP. SYSTEM #
- ARRAY TEMPTAB [0:0] S(1);
- BEGIN
- ITEM BC U(0,0,12); # NUMBER OF 12 BIT BYTES TO RETURN #
- ITEM SB U(0,12,12); # STARTING BYTE IN SOURCE FIELD #
- ITEM BP U(0,24,12); # STARTING BYTE IN RECEIVING FIELD #
- ITEM WADDR U(0,42,18); # ADDR OF FIELD RECEIVING VERSION NUMB #
- END
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- IF NOT STLBERR[1]
- THEN # NO LABEL ERROR #
- BEGIN
- PT$ID[0] = O"7700"; # SET TABLE I.D. #
- PTWC[0] = 0014; # SET WORD COUNT #
- PT$FNAME[0] = STLABEL[1]; # SET FILE HEADER NAME #
- TEMPNAM = STLABEL[1];
- NDLZFIL(TEMPNAM); # ZERO FILL FILE NAME #
- NCFLFN[0] = TEMPNAM; # INITIALIZE NCFFET #
- REWIND(NCFFET); # REWIND NCF FILE #
- RECALL(NCFFET);
- PDATE(TEMPACDAT); # GET PACKED DATE AND TIME #
- VEWORD1[0] = TEMPACDAT; # SET PAKED DATE-CLEARS REST OF WORD #
- TEMPTIM = 0;
- B<42,18>TEMPTIM = B<42,18>TEMPACDAT;
- TEMPT1 = ETIME(TEMPTIM); # UNPACK TIME - STORE IN TABLE #
- PT$TIME[0] = C<1,8>TEMPT1;
- TEMP1 = 0;
- C<7,3>TEMP1 = C<4,3>TEMPACDAT; # SET UP FOR EDATE #
- TEMPDAT = EDATE(TEMP1); # UNPACK DATE #
- PT$DATE[0] = C<1,8>TEMPDAT; # SET DATE #
- BC[0] = 5; # SET UP FOR VERSION CALL #
- SB[0] = 0;
- BP[0] = 0;
- WADDR[0] = LOC(TEMPVER);
- VERSION(TEMPTAB); # GET VERSION OF OPERATING SYSTEM #
- PT$OPS[0] = TEMPVER; # PUT VERSION IN TABLE #
- PT$PNAME[0] = "NDLP";
- PT$PVER[0] = C<9,3>NAMVER[0]; # SET PROGRAM VERSION NUMBER #
- PT$PLEV[0] = C<2,3>NAMLV[0]; # SET PROGRAM LEVEL #
- PT$BLNK1[0] = BLANK; # CLEAR FIELD #
- PT$BLNK2[0] = BLANK;
- PT$TITLE[0] = TITLE$WORD[0];
- # SET VERIFY TABLE ENTRIES #
- VE$ID[0] = "VERSION"; # SET TABLE I.D. #
- # INITIALIZE NCF DIRECTORY HEADER #
- NCFWORD[0] = 0; # CLEAR FIRST WORD #
- NCF$RECID[0] = O"7000"; # SET RECORD I.D. #
- NCF$NAM[0] = "NCF"; # SET FILE IDENTIFIER #
- NCFWORD1[0] = 0; # CLEAR SECOND WORD #
- END
- ELSE
- BEGIN # LABEL ERROR EXISTS #
- NCFWORD0[0] = 0; # ZERO FILE NAME IN FET #
- END
- RETURN;
- END # NFILEPR #
- CONTROL EJECT;
- PROC NPUPR;
- BEGIN
- *IF,DEF,IMS
- #
- ** NPUPR - NPU PROCESSOR
- *
- * S.M. ILMBERGER 81/11/2
- *
- * PROCESS NPU STATEMENT
- *
- * PROC NPUPR
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * MESSAGES
- * INVALID KEYWORD I.D.-ABORT FROM NPUPR
- *
- * METHOD
- *
- * IF NO LABEL ERROR
- * SAVE NPU NAME IN NPU$XREF TABLE
- * FOR EACH PARAMETER ON NPU STATEMENT
- * SET APPROPRIATE BIT IN KEYWORD BITMAP
- * IF NO VALUE ERROR
- * STORE PARAMETER VALUE IN APPROPRIATE NPU$XREF ITEM
- * ELSE VALUE ERROR EXISTS
- * SEND DAYFILE MESSAGE - ABORT
- * IF NODE OR VARIANT PARAMETER NOT SPECIFIED
- * FLAG ERROR - MISSING PARAMETER
- * CK IF SUPERVISORY LINK EXISTS FOR CURRENT NPU
- * IF NO SUPLINK STATEMENT
- * COUNT NUMBER OF LOGLINKS
- * IF MORE THAN ONE LOGLINK
- * FLAG ERROR - MISSING SUPLINK STATEMENT
- * IF NO LOGLINKS
- * FLAG ERROR - NO LOGLINKS TO NPU
- * ELSE
- * MAKE DEFAULT SUPLINK TABLE ENTRY
- * END
- *
- #
- *ENDIF
- XREF
- BEGIN
- PROC NDLEM2; # NMAKE ENTRY IN ERROR-FILE-2 #
- END
- DEF LLINK$STMT # "LOGLINK" #;
- DEF MXNODE # 255 #; # MAX NODE NUMBER ON NPU STATEMENT #
- DEF NODE$PARAM # "NODE" # ;
- DEF SLINK$STMT # "SUPLINK" #;
- DEF VARI$PARAM # "VARIANT" #;
- ITEM FOUND B;
- ITEM I; # LOOP COUNTER #
- ITEM INDEX;
- ITEM KWD$MAP; # KEYWORD EXISTS BIT MAP #
- ITEM NODE$INR B; # TRUE WHEN NODE NUMBER IS IN RANGE #
- ITEM NODE$UNQ B; # TRUE WHEN NODE NUMBER IS UNIQUE #
- ITEM NUMLLINK I; # NUMBER OF LOGLINKS TO THIS NPU #
- ITEM SPL$EXST B; # TRUE WHEN SUPLINK EXISTS FOR THIS NPU #
- ITEM DMP$USED B; # DMP SPECIFIED FLAG #
- SWITCH NPU$PAR ERR$NPU, # UNK #
- NODE$ID, # NODE #
- VARI$ID, # VARIANT #
- OPGO$ID, # OPGO #
- DMP$ID; # DMP #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- NPWC[0] = NPWC[0] + 1;
- CRNT$CPL = " ";
- CRNT$CNID = 0;
- CPL$CNT = 0; # CLEAR COUPLER COUNT #
- KWD$MAP = 0; # CLEAR BIT MAP #
- PRI$USED = FALSE; # CLEAR LOC=PRIMARY SPECIFIED FLAG #
- SEC$USED = FALSE; # CLEAR LOC=SECOND SPECIFIED FLAG #
- DMP$USED = FALSE; # CLEAR DMP SPECIFIED FLAG #
- IF NOT STLBERR[1]
- THEN # NO LABEL ERROR EXISTS #
- BEGIN
- NPNAME[NPWC[0]] = STLABEL[1]; # PUT NPU NAME IN NPU$XREF #
- END
- FOR I=FSTKID2 STEP 1 UNTIL STWC[0]
- DO
- BEGIN
- B<STKWID[I],1>KWD$MAP = 1; # SET BIT FOR KEYWORD #
- IF NOT STVLERR[I] # NO VALUE ERROR #
- THEN
- BEGIN
- IF STKWID[I] LS KID"NODE"
- OR STKWID[I] GR KID"DMP"
- THEN
- GOTO ERR$NPU;
- ELSE
- GOTO NPU$PAR[STKWID[I]];
- NODE$ID: # NEXT PARAMETER = NODE #
- CRNT$NPU = STLABEL[1];
- CRNT$NID = STVALNUM[I];
- CHKNODE(CRNT$NID,MXNODE,NODE$UNQ,NODE$INR); # CK NODE NUMB #
- IF NODE$UNQ AND NODE$INR
- THEN # NODE NUMBER UNIQUE AND IN RANGE #
- NPNID[NPWC[0]] = CRNT$NID; # SET NODE NUM IN NPU$XREF #
- TEST I;
- VARI$ID: # NEXT PARAMETER = VARIANT #
- NPVARNT[NPWC[0]] = STVALNAM[I]; # SET VARIANT NUMBER IN #
- # NPU-XREF-TABLE #
- TEST I;
- OPGO$ID: # NEXT PARAMETER = OPGO #
- IF STVALNAM[I] EQ "YES"
- THEN
- NPOPGO[NPWC[0]] = TRUE; # SET OPGO FLAG IN NPU$XREF TABLE #
- TEST I;
- DMP$ID: # NEXT PARAMETER = DMP #
- DMP$USED = TRUE; # SET DMP SPECIFIED FLAG TO TRUE #
- IF STVALNAM[I] EQ "YES" # IF VALUE IS -YES- #
- THEN
- BEGIN
- NPDMP[NPWC[0]] = TRUE; # SET DMP FLAG IN ENTRY #
- END
- TEST I;
- ERR$NPU:
- EPRC2[0] = "NPUPR";
- MESSAGE(ABRTMSG2,0);
- ABORT;
- END
- END # I LOOP #
- IF NOT DMP$USED # IF DMP NOT SPECIFIED #
- THEN
- BEGIN
- NPDMP[NPWC[0]] = TRUE; # SET DMP FLAG IN ENTRY #
- END
- IF B<KID"NODE",1>KWD$MAP NQ 1
- THEN # IF -NODE- NOT SPECIFIED #
- NDLEM2(ERR103,STLNUM[0],NODE$PARAM); # FLAG ERROR #
- IF B<KID"VARIANT",1>KWD$MAP NQ 1
- THEN # IF -VARIANT- NOT SPECIFIED #
- NDLEM2(ERR103,STLNUM[0],VARI$PARAM); # FLAG ERROR #
- SPL$EXST = FALSE;
- FOUND = FALSE;
- FOR I=FSTNT STEP NTENTSZ UNTIL NTWC[0]
- DO
- BEGIN # SEE IF SUPLINK EXISTS #
- IF NOT FOUND
- THEN
- BEGIN
- IF NTNAME[I] EQ NPNAME[NPWC[0]]
- THEN
- BEGIN
- FOUND = TRUE;
- IF NTSPLK[I]
- THEN
- SPL$EXST = TRUE;
- END
- END
- END
- IF NOT SPL$EXST
- THEN # NO SUPLINK EXISTS #
- BEGIN # CHECK FOR MORE THAN 1 LOGLINK #
- NUMLLINK = 0;
- FOR I=FSTLLT STEP LLTENTSZ UNTIL LLTENT[0]
- DO # COUNT LLINKS #
- BEGIN
- IF LLTNID[I] EQ CRNT$NID
- THEN
- BEGIN
- NUMLLINK = NUMLLINK + 1;
- INDEX = I; # INDEX FOR LOGLINK TABLE #
- END
- END # I LOOP #
- IF NUMLLINK GR 1
- THEN # MORE THAN 1 LOGLINK EXISTS AND NO SLINK #
- NDLEM2(ERR126,STLNUM[0],SLINK$STMT);
- ELSE
- BEGIN
- IF NUMLLINK EQ 0
- THEN # NO LOGLINK TO THIS NPU #
- NDLEM2(ERR127,STLNUM[0],LLINK$STMT);
- ELSE # ONLY 1 LOGLINK TO THIS NPU #
- SLINKXR(INDEX); # MAKE DEFAULT SUPLINK TABLE ENTRY #
- END
- END
- RETURN;
- END # NPUPR PROC #
- CONTROL EJECT;
- PROC RNGNODE(NODEVAL,MAX,RNGFLG);
- # CHECK THAT NODE IS WITHIN RANGE #
- BEGIN # RNGNODE PROC #
- *IF,DEF,IMS
- #
- ** PRGNODE - CK RANGE OF NODE
- *
- * S.M. ILMBERGER 81/11/2
- *
- * CHECK THAT NODE VALUE IS WITHIN RANGE
- *
- * PROC RNGNODE(NODEVAL,MAX,RNGFLG)
- *
- * ENTRY NODEVAL - NODE NUMBER
- * MAX - MAXIMUM VALUE FOR NODE VALUE
- *
- * EXIT RNGFLG - FLAG INDICATING IF NODE VALUE IS IN RANGE
- *
- * MESSAGES NONE
- *
- * METHOD
- *
- * IF NODEVAL IS GREATER THAN MAX OR LESS THAN 0
- * SEND ERROR MESSAGE
- * SET RNGFLG TO FALSE
- * ELSE
- * SET RNGFLG TO TRUE
- * END
- *
- #
- *ENDIF
- ITEM CNODE C(10); # CHARACTER STORAGE FOR NODE VALUE #
- ITEM NODEVAL I; # NODE NUMBER TO CHECK #
- ITEM MAX I; # MAX NUMBER FOR NODEVAL #
- ITEM RNGFLG B; # FLAG INDICATING NODE IS IN RANGE #
- # TRUE WHEN IN RANGE #
- XREF
- BEGIN
- PROC NDLEM2; # MAKES ENTRY IN ERROR-FILE-2 #
- FUNC XCDD C(10); # CONVERT INTEGER TO DEC DISPLAY CODE #
- END
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- IF NODEVAL GR MAX OR NODEVAL LQ 0
- THEN
- BEGIN # NODE NUMBER IS NOT IN RANGE #
- CNODE = XCDD(NODEVAL); # CONVERT INTEGER NODE TO CHARCATER #
- NDLEM2(ERR100,STLNUM[0],CNODE); # SEND ERROR MSG #
- RNGFLG = FALSE; # SET NODE IN RANGE FLAG TO FALSE #
- END
- ELSE
- RNGFLG = TRUE;
- RETURN; # *** RETURN *** #
- END # RNGNODE PROC #
- CONTROL EJECT;
- PROC SLINKPR;
- BEGIN # PROCESS SUPLINK STATEMENT #
- *IF,DEF,IMS
- #
- ** SLINKPR - SUPLINK PROCESSOR
- *
- * S.M. ILMBERGER 81/11/2
- *
- * PROCESS SUPLINK STATEMENT
- *
- * PROC SLINKPR
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * MESSAGES NONE
- *
- * METHOD
- *
- * FOR EACH KEYWORD ON STATEMENT
- * IF NO VALUE ERROR
- * IF KEYWORD = LLNAME
- * SEARCH LOGLINK TABLE FOR LLNAME VALUE
- * IF LLNAME IN LOGLINK TABLE
- * IF CURRENT NPU NODE MATCHES LOGLINK ENTRY
- * BUILD SUPLINK TABLE ENTRY
- * ELSE
- * SEND ERROR MESSAGE - NO LOGLINK TO THIS NPU
- * ELSE
- * LLNAME NOT VALID LOGLINK
- * IF LLNAME PARAMETER NOT SPECIFIED
- * SEND ERROR MESSAGE - REQUIRED PARAMETER MISSING
- * END
- *
- #
- *ENDIF
- XREF
- BEGIN
- PROC NDLEM2; # MAKES ENTRY IN PASS 2 ERROR FILE #
- END
- DEF LLNAME$PAR # "LLNAME" #; # USED FOR NDLEM2 #
- ITEM I; # LOOP COUNTER #
- ITEM J; # LOOP COUNTER #
- ITEM LL$ENT; # LOGLINK TABLE ENTRY THAT MATCHES LLNAME #
- ITEM LLNAME$FLG B; # LLNAME PARAMETER IS SPECIFIED IF SET #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- LLNAME$FLG = FALSE;
- FOR I=FSTKID1 STEP 1 UNTIL STWC[0]
- DO
- BEGIN
- LLNAME$FLG = TRUE; # SET LLNAME SPECIFIED FLAG #
- IF NOT STVLERR[I]
- THEN # NO VALUE ERROR EXISTS #
- BEGIN
- IF STKWID[I] EQ KID"LLNAME"
- THEN # NEXT KEYWORD = LLNAME #
- BEGIN
- LL$ENT = 0;
- FOR J=FSTLLT STEP LLTENTSZ UNTIL LLTENT[0]
- DO # SEARCH LOGLINK TABLE FOR SAME LLNAME #
- BEGIN
- IF LLTNAME[J] EQ STVALNAM[I]
- THEN
- LL$ENT = J;
- END
- IF LL$ENT NQ 0
- THEN # FOUND LLNAME IN LOGLINK TABLE #
- BEGIN
- IF LLTNID[LL$ENT] EQ CRNT$NID
- THEN # CURRENT NPU NODE MATCHES LOGLINK ENTRY #
- SLINKXR(LL$ENT); # BUILD SUPLINK TABLE ENTRY #
- ELSE
- NDLEM2(ERR128,STLNUM[0],STVALNAM[I]);
- END
- ELSE # LLNAME NOT IN LOGLINK TABLE #
- NDLEM2(ERR129,STLNUM[0],STVALNAM[I]);
- END
- END # NO VALUE ERROR #
- END # I LOOP #
- IF NOT LLNAME$FLG # LLNAME PARAMETER NOT SPECIFIED ON SUPLNK#
- THEN # STATEMENT #
- NDLEM2(ERR103,STLNUM[0],LLNAME$PAR);
- RETURN;
- END # SLINKPR PROC #
- CONTROL EJECT;
- PROC SLINKXR(LLENT); # MAKES ENTRIES IN SUPLINK TABLE #
- BEGIN
- *IF,DEF,IMS
- #
- ** SLINKXR - SUPLINK CROSS REFERINCE
- *
- * S.M. ILMBERGER 81/11/2
- *
- * MAKE ENTRIES IN SUPLINK TABLE
- *
- * PROC SLINKXR(LLENT)
- *
- * ENTRY LLENT - NUMBER ASSOCIATED W/LOGLINK TABLE ENTRY
- *
- * EXIT NONE
- *
- * MESSAGES NONE
- *
- * METHOD
- *
- * SET SUPLINK TABLE NAME AND HOST NODE FROM LOGLINK ENTRY
- * SEARCH COUPLER TABLE TO SEE IF SUPLINK IS LOCAL OR REMOTE
- * SET SUPLINK TYPE
- * END
- *
- #
- *ENDIF
- ITEM LLENT; # NUMBER ASSOCIATED W/LLINK TABLE ENTRY #
- DEF REMOTE # 1 #; # NPU IS REMOTE TO NPU #
- ITEM K; # LOOP COUNTER #
- ITEM MATCH B; # INDICATES COUPLER TABLE ENTRY AND #
- # SUPLINK TABLE ENTRY MATCH #
- ITEM NENTSL; # NEXT ENTRY IN SUPLINK TABLE #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- NENTSL = SLTWC[0] + 1; # MAKE ENTRIES IN SUPLINK TABLE #
- SLTNAME[NENTSL] = LLTNAME[LLENT];
- SLTHNID[NENTSL] = LLTHNID[LLENT];
- SLTNID[NENTSL] = CRNT$NID;
- MATCH = FALSE;
- FOR K=FSTCT STEP CTENTSZ WHILE K LQ CTENT[0] AND NOT MATCH
- DO # SEARCH COUPLER TABLE TO DETERMINE IF #
- BEGIN # SUPLINK IS LOCAL OR REMOTE TO THIS NPU #
- IF CTHNID[K] EQ SLTHNID[NENTSL]
- AND CTNID[K] EQ CRNT$NID
- THEN
- BEGIN
- MATCH = TRUE;
- END
- END
- IF NOT MATCH
- THEN
- SLTTYPE[NENTSL] = REMOTE; # SET SUPLINK TYPE TO "REMOTE" #
- SLTWC[0] = SLTWC[0] + SLTENTSZ;
- RETURN;
- END # SLINKXR #
- CONTROL EJECT;
- # #
- # CODE BEGINS HERE #
- # #
- FOR I=0 WHILE STMT$STAT EQ TRNS$OK #STMT IS NETWORK ELEMENT TYPE #
- AND (STMT$TYPE[STSTID[0]] EQ "NETWORK" # AND NO READ ERRORS #
- OR STMT$TYPE[STSTID[0]] EQ "TRUNK")
- DO
- BEGIN
- READW(STFET,STMT$TABLE[1],STWC[0],STMT$STAT); # READ FULL STMT #
- IF STMT$STAT NQ TRNS$OK
- THEN
- GOTO ERR$NET;
- ELSE
- GOTO NET$ELEM[STSTID[0]];
- NFILE$ST:
- PTWORD0[0] = 0; # CLEARS WORD 0 OF PRFX$TABLE TABLE #
- PTWORD1[0] = 0; # CLEARS WORD 1 OF PRFX$TABLE TABLE #
- VEWORD0[0] = 0; # CLEARS VERIFY$ENTRY TABLE #
- VEWORD1[0] = 0;
- NFILEPR; # CALL NFILE STATEMENT PROCESSOR #
- FWAWSA = LOC(PTWORD0[0]); #SAVE 1ST WORD ADDRESS OF FH TABLE #
- NDLWNCF(TABLE"FH",FWAWSA,LEN$FH$TAB); # WRITE FILE HEADER REC #
- GOTO RDNXT;
- NPU$ST:
- NPWORD[NPWC[0]+1] = 0; #CLEAR NEXT 2 WORDS OF NPU$XREF TABLE #
- NPWORD1[NPWC[0]+1] = 0;
- NPUPR; # CALLS NPU STATEMENT PROCESSOR #
- GOTO RDNXT;
- SLINK$ST:
- IF ( SLTWC[0]+1+SLTENTSZ ) GR SLT$LENG
- THEN # NOT ENOUGH SPACE IN SUPLINK$TAB #
- BEGIN
- SSTATS(P<SUPLINK$TABL>,SLTENTSZ); # ALLOCATE 1 MORE WORD FOR #
- END # SUPLINK TABLE #
- SLTWORD[SLTWC[0]+1] = 0; # CLEARS NEW WORD OF TABLE #
- SLINKPR; # CALL SUPLINK STMT PROCESSOR #
- GOTO RDNXT;
- COUP$ST:
- IF ( (PLWC[0]*PLENTSZ)+1+PLENTSZ ) GR PL$LENG
- THEN # NEED MORE SPACE IN PLINK$XREF TABLE #
- BEGIN
- SSTATS(P<PLINK$XREF>,PLENTSZ); # ALLOCATE 2 WORDS #
- END
- PLWORD[PLWC[0]+1] = 0; # CLEAR NEW TABLE ENTRIES #
- PLWORD1[PLWC[0]+1] = 0;
- CPLERPR; # CALL COUPLER PROCESSOR #
- GOTO RDNXT;
- LLINK$ST:
- LLWORD[LLWC[0]+1] = 0; # CLEAR NEW TABLE ENTRIES #
- LLWORD1[LLWC[0]+1] = 0;
- LLINKPR; # CALL LOGLINK STMT PROCESSOR #
- GOTO RDNXT;
- TRNK$ST:
- IF ( (PLWC[0]*PLENTSZ)+1+PLENTSZ ) GR PL$LENG
- THEN # NEED MORE ROOM IN PLINK$XREF TABLE #
- BEGIN
- SSTATS(P<PLINK$XREF>,PLENTSZ); # ALLOCATE 2 MORE WORDS #
- END
- PLWORD[PLWC[0]+1] = 0; # CLEAR NEW TABLE ENTRIES #
- PLWORD1[PLWC[0]+1] = 0;
- NDLTRNK; # CALL TRUNK STMT PROCESSOR #
- GOTO RDNXT;
- ERR$NET:
- EPRC1[0] = "NCFNET";
- MESSAGE(ABRTMSG1,0);
- ABORT;
- TEST I;
- RDNXT:
- READW(STFET,STMT$TABLE,1,STMT$STAT); # READ NXT STMT HEADER #
- TEST I;
- END # I LOOP #
- RETURN;
- END # NDLNFNT #
- TERM
cdc/nos2.source/nam5871/ndlnfnt.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator