*DECK NDLIMS
PROC NDLIMS;
BEGIN
*IF,DEF,IMS
#
** NDLP - A BRIEF OVERVIEW
*
* D.K. ENDO 82/02/04
*
* THE PURPOSE OF THIS SECTION IS TO GIVE A BRIEF AND CONCISE
* OVERVIEW OF THE NETWORK DEFINITION LANGUAGE PROCESSOR(NDLP).
* IT HAS BEEN ASSUMED THAT THE READER OF THIS OVERVIEW IS ALREADY
* FAMILIAR WITH THE NETWORK DEFINITION LANGUAGE(NDL) SYNTAX, THE
* OVERALL STRUCTURES OF NETWORK AND LOCAL CONFIGURATION FILES
* (NCF AND LCF), AND HOW THE CONFIGURATION FILES ARE USED BY THE
* NETWORK.
*
* THIS OVERVIEW HAS TWO MAJOR SECTIONS. THE FIRST SECTION DESCRIBES
* NDLP IN TERMS OF DATA FLOW. IT IDENTIFIES THE MAJOR PROCESSES OF
* NDLP AND THE FILES AND TABLES USED TO TRANSFER DATA BETWEEN
* THE PROCESSES. THE SECOND SECTION IS MORE OF A FUNCTIONAL
* EXPLANATION. IT DESCRIBES THE MAJOR MODULES OF NDLP AND THE
* BASIC STRUCTURE AND LOGIC OF EACH ONE.
*
*
* SECTION I: DATA FLOW
*
* NDLP IS BASICALLY A TWO PASS COMPILER. DURING THE FIRST PASS,
* OR READING, OF THE INPUT SOURCE NDLP DOES SYNTAX CRACKING AND
* CHECKING. IN ADDITION IT REFORMATS THE INPUT SOURCE INTO A
* MORE STRUCTURED FORM. USING THE MORE STRUCTURED FORM OF THE
* SOURCE NDLP DOES A SECOND PASS, OR READING, OF THE INPUT.
* DURING THE SECOND PASS IT DOES COMPATIBILITY CHECKING BETWEEN
* PARAMETERS ON THE SAME STATEMENT AND OTHER STATEMENTS AND CREATES
* A CONFIGURATION FILE BASED ON THE SOURCE. A THIRD PROCESS NDLP
* DOES IS TO CREATE VARIOUS LISTINGS SUCH AS A SOURCE LISTING OR
* A FILE CONTENTS SUMMARY LISTING. SUMMING IT UP IN ONE SENTENCE,
* NDLP IS PARTITIONED INTO THREE MAJOR PROCESSES: 1)PASS 1, 2)PASS 2
* AND 3)LISTING CREATION.
*
* THE FOLLOWING LISTS THE FILES AND TABLES WHICH ARE USED TO PASS
* INFORMATION BETWEEN EACH PROCESS:
*
* 1)BETWEEN PASS 1 AND PASS 2 --
* STATEMENT TABLE - EACH ENTRY IN THIS TABLE CORRESPONDS TO A
* STATEMENT,IN THE INPUT SOURCE,IN A STRUCTURED
* FORM. AN EXCEPT IS THE TERMDEV STATEMENT IN
* WHICH 2 ENTRIES ARE MADE:TERMINAL AND DEVICE.
* THIS TABLE IS CREATED BY PASS 1 AND IS THE
* MAJOR INTERFACE BETWEEN PASS 1 AND PASS 2.
* PASS 1 WRITES THIS TABLE TO A LOCAL FILE:
* ZZZZZU3.
*
* THE REMAINDER OF THE TABLES PASSED BETWEEN PASS 1 TO PASS 2
* ARE ONLY CREATED WHEN PARSING A SOURCE FOR AN NCF.
*
* CONSOLE MAP - EACH BIT IN THIS MAP CORRESPONDS TO EACH
* TERMINAL STATEMENT. A BIT IS SET ONLY IF
* A CONSOLE WAS DEFINED FOR THE TERMINAL.
* COUPLER TABLE - THERE IS A ENTRY FOR EACH COUPLER DEFINED IN
* THE NETWORK. EACH ENTRY CONTAINS A COUPLER
* NAME, COUPLER/HOST NODE I.D., AND THE NODE
* I.D. OF THE NPU THAT SUPPORTS THE COUPLER.
* IT IS USED TO CREATE ENTRIES IN THE LOGLINK
* XREF TABLE.
* LABEL TABLE - CONTAINS ALL THE ELEMENT NAMES DEFINED BY
* THE SOURCE AND GENERATED BY NDLP. USED
* BY PASS 2 TO CREATE DEVICE AND LINE XREF
* TABLE ENTRIES.
* LOGLINK TABLE - HAS AN ENTRY FOR EACH LOGICAL LINK DEFINED
* BY THE SOURCE. EACH ENTRY CONTAINS THE
* LOGLINK NAME AND THE NODE I.D.-S OF THE
* NODES WHICH THE LINK CONNECTS. USED TO
* DEFAULT OR CHECK SUPERVISORY LINKS.
* NPU TABLE - CONTAINS AN ENTRY FOR EACH NPU DEFINED.
* EACH ENTRY CONTAINS AN NPU NAME, FLAG IF
* AT LEAST ONE SUPLINK IS DEFINED, NPU NODE
* I.D., AND A BIT MAP USED TO CHECK UNIQUENESS
* OF PORT NUMBERS. USED TO CHECK AND CREATE
* ENTRIES IN THE PHYSICAL LINK AND LOGICAL LINK
* TABLES.
* TRUNK NODE ID TBL-HAS AN ENTRY FOR EACH TRUNK. EACH ENTRY HAS
* THE NODE I.D.-S OF THE NPU-S THAT THE TRUNK
* CONNECTS. USED TO VALIDATE LOGLINK-S
* SPANNING ONLY ONE TRUNK.
*
* 2)BETWEEN PASS 1 AND LIST --
* DEFINE TABLE - CONTAINS AN ENTRY FOR EACH DEFINE NAME AND
* CORRESPONDING REPLACEMENT STRING. USED
* BY PASS 1 TO DO DEFINE STRING PROCESSING.
* USED BY LIST TO CREATE THE DEFINE COMMAND
* LISTING.
* EXPANDED SECONDARY
* INPUT FILE- CONTAINS ONLY SOURCE LINE WITH DEFINE NAMES
* REPLACED BY ITS CORRESPONDING DEFINE STRING.
* USED BY LIST TO CREATE THE EXPANDED SOURCE
* LISTING. WRITTEN BY PASS 1 TO FILE ZZZZU4A.
* PASS 1 ERROR FILE-CONTAINS AN ENTRY FOR EACH SYNTAX ERROR
* DETECTED BY PASS 1. EACH ENTRY HAS AN ERROR
* CODE, LINE NUMBER, AND A CLARIFIER WORD.
* USED BY LIST TO CREATE AN ERROR SUMMARY
* LISTING. WRITTEN BY PASS 1 TO FILE ZZZZZU1.
* SECONDARY INPUT
* FILE - CONTAINS COPY OF ORIGINAL SOURCE PARSED BY
* PASS 1. USED BY PASS 2 TO CREATE THE SOURCE
* LISTING AND THE EXPANDED SOURCE LISTING
* WRITTEN BY PASS 1 TO FILE ZZZZZU4.
* 3)BETWEEN PASS 2 AND LIST --
* PASS 2 ERROR FILE-CONTAINS AN ENTRY FOR EACH ERROR DETECTED BY
* PASS 2. FORMAT IS SAME AS PASS 1 ERROR FILE.
* USED BY LIST TO CREATE AN ERROR SUMMARY
* LISTING. WRITTEN BY PASS 2 TO FILE ZZZZZU2.
* NCF/LCF - USED BY LIST TO CREATE A FILE CONTENTS
* SUMMARY LISTING. FILE WRITTEN TO BY PASS 2
* DEPENDS ON THE NFILE/LFILE STATEMENT.
*
* THERE ARE TABLES USED WITHIN EACH MAJOR PROCESS THAT ARE NOT
* PASSED TO OTHERS. THEY ARE:
*
* 1) WITHIN PASS 1 --
* KEYWORD TABLE - CONTAINS AN ENTRY FOR EACH STATEMENT NAME,
* KEYWORD, AND DELIMITER VALID IN NDL. IF THE
* ENTRY IS A STATEMENT NAME IT CONTAINS THE
* NAME, THE STATEMENT NAME FLAG SET, LABEL
* REQUIRED FLAG, STATEMENT I.D., AND A
* STATEMENT ALLOWED BIT MAP. IF THE ENTRY
* IS A KEYWORD, IT CONTAINS THE NAME, KEYWORD
* NAME FLAG SET, VALUE REQUIRED FLAG, KEYWORD
* I.D., AND KEYWORD ALLOW MAP. IF THE ENTRY
* IS A DELIMITER, IT CONTAINS THE DELIMITER,
* THE DELIMITER FLAG SET, AND A DELIMITER I.D.
* THIS TABLE IS SORTED IN ALPHABETICAL ORDER
* WITH THE DELIMITERS AT THE END FOR THE TABLE.
* LEXICAL TABLE - CONTAINS AN ENTRY FOR EACH LETTER IN THE
* ALPHABET AND ONE ENTRY FOR DELIMITERS. EACH
* ENTRY POINTS TO ITS CORRESPONDING CHARACTER
* GROUP IN THE KEYWORD TABLE AND HOW MANY
* ENTRIES THERE ARE IN THE GROUP. FOR EXAMPLE:
* THE 13TH ENTRY IN THE LEXICAL TABLE WOULD
* POINT TO THE FIRST ENTRY, IN THE KEYWORD
* TABLE, BEGINNING WITH THE LETTER -M- AND,
* ALSO, GIVE THE TOTAL NUMBER OF STATEMENT
* NAMES AND KEYWORDS BEING WITH THAT SAME
* LETTER.
* TNN TABLE - TRUNK NPU NAME TABLE CONTAINS AN ENTRY FOR
* EACH TRUNK DEFINED IN THE NETWORK. EACH
* ENTRY HAS THE N1 AND N2 VALUE SPECIFIED FOR
* THAT TRUNK. IT IS USED, WITH THE NPU TABLE,
* TO BUILD THE TRUNK NODE I.D. TABLE. THIS
* TABLE IS ONLY GENERATED WHEN PARSING AN
* NCF DIVISION.
* LNT TABLE - LOGICAL LINK NODE NAME TABLE CONTAINS AN
* ENTRY FOR EACH LOGLINK DEFINE IN THE
* NETWORK. EACH ENTRY HAS THE NCNAME VALUE FOR
* THE LOGLINK. IT IS USED, WITH THE NPU AND
* COUPLER TABLE, IO BUILD THE LOGICAL LINK
* TABLE. THIS TABLE IS ONLY GENERATED WHEN
* PARSING AN NCF DIVISION.
*
* 2)WITHIN PASS 2:
* LINE CONFIGURA-
* TION FILE - CONTAINS A RECORD FOR EACH NPU DEFINED. EACH
* RECORD CONTAINS AN ENTRY FOR EACH LINE OR
* GROUP DEFINED ON THE NPU. EACH ENTRY
* CONTAINS LINE CONFIGURATION INFORMATION FOR
* THE LINE. IT IS USED TO BUILD THE CONFIGURA-
* TION TABLE IN THE NCB-S. IT IS ONLY BUILT WHEN
* CHECKING PARAMETERS FOR AN NCF.
* LINE CONFIGURA-
* TION FILE INDEX - CONTAINS AN ENTRY FOR EACH RECORD IN THE
* LINE CONFIGURATION FILE. EACH ENTRY POINTS TO
* A UNIQUE RECORD. IT ALSO CONTAINS THE NPU
* NAME AND NODE I.D. THAT CORRESPONDS TO THE
* RECORD. IT IS ONLY BUILT WHEN CHECKING
* PARAMETERS FOR AN NCF.
* SUPLINK TABLE - CONTAINS AN ENTRY FOR EACH SUPLINK DEFINED OR
* DEFAULTED BY NDLP. EACH ENTRY CONTAINS THE
* SUPLINK NAME AND THE HOST NODE I.D. THAT THE
* NPU WILL BE SUPERVISED BY. IT IS USED TO
* BUILD THE SUPERVISOR TABLE IN THE NCB-S. IT
* IS ONLY BUILT WHEN CHECKING PARAMETERS FOR
* AN NCF.
*
* THE THREE TABLES ABOVE ARE USED TO BUILD THE NPU CONFIGURE BLOCKS.
* THE REMAINDER OF THE INFORMATION NEEDED TO BUILD THE NCB-S
* ARE GOTTEN FROM THE NPU, PHYSICAL LINK, LOGICAL LINK CROSS
* REFERENCE TABLES, WHICH ARE PART OF THE NCF.
*
* 3)WITHIN LIST --
* THERE ARE NO TABLES BUILT BY LIST PER SE, BUT RATHER BUFFERS
* USED TO FORMAT THE LINE IMAGES. THERE ARE TWO BIT MAPS USED
* IN CREATING AN NCF SUMMARY. ONE IS A TIPTYPE MAP USED TO
* LIST WHICH ONES WERE DEFINED FOR AN NPU. THE OTHER IS A
* NODE I.D. MAP USED TO LIST WHICH NODE I.D.-S WERE NOT USED.
* FINALLY THERE ARE BUFFERS USED TO READ IN VARIOUS FILES CREATED
* BY PASS 1 AND PASS 2.
*
* AGAIN, THE PURPOSE OF THIS SECTION WAS TO IDENTIFY THE MAJOR
* PROCESSES OF NDLP AND THE TABLES AND FILES USED TO TRANSFER DATA
* BETWEEN THEM. IN SUMMARY, THERE ARE THREE MAJOR PROCESSES:
* 1)PASS 1 -- SYNTAX CRACKING AND CHECKING.
* 2)PASS 2 -- PARAMETER COMPATIBILITY CHECKING AND CONFIGURATION
* FILE CREATION.
* 3)LIST -- LISTING CREATION.
* THE TABLES PASSED FROM PASS 1 TO PASS 2 ARE:
* 1)STATEMENT TABLE 5)LOGLINK TABLE
* 2)CONSOLE MAP 6)NPU TABLE
* 3)COUPLER TABLE 7)TRUNK NODE I.D. TABLE
* 4)LABEL TABLE
* THE TABLES PASSED FROM PASS 1 TO LIST ARE:
* 1)DEFINE TABLE.
* 2)EXPANDED SECONDARY INPUT FILE.
* 3)SECONDARY INPUT FILE.
* 4)PASS 1 ERROR FILE
* THE TABLES PASSED FROM PASS 2 TO LIST ARE:
* 1)PASS 2 ERROR FILE.
* 2)NCF OR LCF.
*
* SECTION II: FUNCTIONAL DESCRIPTION --
*
* NDLP IS MADE UP OF SIX MAIN MODULES: NDLMAIN, NDLINIT, NDLPSS1,
* NDLP2NF, NDLP2LF, AND NDLLIST. NDLMAIN IS THE EXECUTIVE ROUTINE
* FOR NDLP. IT LOADS AND EXECUTES THE OTHER MAIN MODULES AS
* THEY ARE NEEDED. NDLINIT DOES INITIALIZATION TASKS FOR NDLP WHICH
* INCLUDE CONTROL CARD CRACKING, MANAGED TABLES INITIALIZATION, AND
* SETTING UP FET-S. THE REMAINDER OF THE MODULES CORRESPOND TO THE
* THREE MAJOR PROCESSES AS DESCRIBED BY THE FIRST SECTION. NDLPSS1
* HAS THE FUNCTION OF PASS 1 WHICH IS TO DO SYNTAX CRACKING AND
* CHECKING. PASS 2 IS BROKEN UP INTO TWO MODULES, NDLP2NF AND
* NDLP2LF. BOTH ESSENTIALLY HAVE THE SAME FUNCTION: TO DO PARAMETER
* COMPATIBILITY CHECKING AND CONFIGURATION FILE CREATION. NDLP2NF
* CHECKS STATEMENTS DEFINING AN NCF AND NDLP2LF CHECKS STATEMENTS
* DEFINING AN LCF. NDLLIST CORRESPONDS TO LIST WHICH DOES ALL THE
* LISTING GENERATION.
*
* NDLMAIN -- THIS MODULE IS THE EXECUTIVE FOR NDLP. IT BEGINS BY
* EXECUTING THE INITIALIZATION ROUTINE. THE INITIALIZATION ROUTINE
* DETERMINES FROM THE CONTROL CARD WHETHER NDLP WAS CALLED TO DO A
* FILE SUMMARY RUN OR A FILE CREATION RUN. IF A FILE SUMMARY WAS
* REQUESTED NDLMAIN WILL EXECUTE NDLLIST TO GENERATE THE SUMMARY.
* IF IT IS A CREATION RUN THEN FOR EACH CONFIGURATION FILE DEFINED
* IN THE INPUT SOURCE NDLMAIN CALLS NDLPSS1, NDLP2NF OR NDLP2LF, AND
* NDLLIST. FINALLY NDLMAIN RETURNS SCRATCH FILE AND ISSUES A
* DAYFILE MESSAGE THAT NDLP IS COMPLETE.
*
* NDLINIT --THIS MODULE DOES ALL THE INITIALIZATION TASKS FOR NDLP.
* IT FIRST CRACKS THE CONTROL CARD TO DETERMINE THE TYPE OF RUN,
* ALTERNATE INPUT/OUTPUT FILE NAMES, AND LISTING OPTIONS REQUESTED.
* NDLINIT THEN INITIALIZES THE DYNAMIC TABLE MANAGER. FINALLY IT
* INITIALIZES VARIOUS FET-S NEEDED TO DO I/O.
*
* NDLPSS1 -- THIS MODULE UTILIZES THE SYNGEN SUBSYSTEM. THE SYNTAX
* TABLE DRIVER (NDLSTD) IS THE MAIN ROUTINE. NDLSTD CALLS FIVE
* OTHER PROCEDURES AS NEEDED TO PARSE AND CHECK THE SOURCE INPUT.
* DIAG DOES DIAGNOSTIC PROCESSING, WHICH BASICALLY MEANS CALLING
* ERRMS1 TO MAKE ENTRIES IN THE PASS 1 ERROR FILE. LEXSCAN FORMS
* THE NEXT TOKEN FROM THE SOURCE. LEXSNC CAUSES SCANNING TO BEGIN
* TO CONTINUE ON THE NEXT CARD OR LINE IMAGE. PRINTRC IS USED TO
* PRINT TRACE INFORMATION. SUBR CONTAINS ALL THE SYNTATIC ROUTINES
* USED TO DO ERROR CHECKING AND TABLE CREATION.(SEE THE IMS CODE FOR
* NDLSTD TO GET MORE DETAILS OF THE SYNGEN SUBSYSTEM)
*
* NDLP2LF -- THIS MODULE DOES FURTHER CHECKING OF LCF STATEMENTS AND
* DOES CREATION OF THE LCF DEFINED BY THE SOURCE. NDLP2LF CONTAINS
* SUB-MODULES, ONE FOR EACH STATEMENT, AND A PASS 2 LCF TERMINATION
* ROUTINE. IT FIRST INITIALIZES ALL THE TABLES NEEDED TO CREATE AN
* LCF. THEN FOR EACH ENTRY IN THE STATEMENT TABLE, NDLP2LF CALL THE
* APPROPRIATE PROC TO CHECK THE ENTRY. THIS IS DONE BY SWITCHING
* ON THE STATEMENT I.D. NUMBER. THEN IN EACH STATEMENT PROC IT
* SWITCHES ON KEYWORD I.D. TO CHECK EACH VALUE DECLARATION. NDLP2LF
* FINALLY CALLS LCFTERM TO WRITE THE LCF TABLES AND RECORDS OUT TO
* A LOCAL FILE.
*
* NDLP2NF -- THIS MODULE DOES FURTHER CHECKING OF NCF STATEMENTS AND
* DOES CREATION OF THE NCF DEFINED BY THE SOURCE. NDLP2NF THREE
* OTHER MODULE: 1)NDLNFNT, 2)NDLNFCM, AND 3)NDLNFTM. NDLNFNT
* CONTAINS SUB-MODULE, ONE FOR EACH STATEMENT, WHICH CHECK THE
* NETWORK ELEMENT STATEMENTS(NFILE, NPU, SUPLINK, COUPLER, LOGLINK,
* AND TRUNK). NDLNFCM CONTAINS SUB-MODULES WHICH CHECK THE COMMU-
* NICATION ELEMENT STATEMENTS(LINE, TERMINAL, DEVICE). NDLNFTM DOES
* NCB CREATION AND WRITES THE NCF TABLE TO A LOCAL FILE.
*
* NDLLIST -- THIS MODULE, BASED ON FLAGS SET BY NDLINIT, GENERATES
* LISTINGS FOR NDLP. THERE IS A SUB-PROC FOR EACH TYPE OF LISTING.
* IN ADDITION THERE IS A SUB-PROC FOR EACH NDL STATEMENT AND A
* CALLED WHEN A FILE SUMMARY IS NEEDED.
*
* AS FOR THE OVERLAY STRUCTURE FOR NDLP THERE ARE FIVE PRIMARY
* OVERLAYS AND THREE SECONDARY OVERLAYS. NDLMAIN IS IN THE MAIN
* OVERLAY(0,0). THE PRIMARY OVERLAYS ARE NDLINIT(1,0), NDLPSS1(2,0)
* NDLP2NF(3,0), NDLP2LF(4,0), AND NDLLIST(5,0). THE SECONDARY
* OVERLAYS ARE ALL CALLED BY NDLP2NF. THEY ARE NDLNFNT(3,1),
* NDLNFCM(3,2), AND NDLNFTM(3,3). THE FAST OVERLAY LOADER IS USED
* TO LOAD ALL THE OVERLAYS(SEE LOADER MANUAL FOR DESCRIPTION). THE
* OVERLAY LOADER IS CALLED THRU NDLOVLD. NDLOVLD INITIALIZES THE
* CALL TO THE FAST OVERLAY LOADER AND SETS UP A RETURN-JUMP TO THE
* OVERLAY ONCE IT HAS BEEN LOADED.
*
* THE DYNAMIC TABLE MANAGER IS THE ONE USED BY NVF/CS. THE DESIGN
* OF THE MANAGER IS ROUGHLY EQUIVALENT TO THE STANDARD COMMON DECK
* -COMCMTP- WHICH CONTAINS A COMPASS MANAGED TABLE PACKAGE. THE
* DYNAMIC TABLE AREA IS LOCATED IN HIGH CORE. THE AREA IS ALLOCATED
* BY THE MANAGER THRU A SERIES OF TWO WORD ENTRIES. EACH ENTRY
* CORRESPONDS TO A TABLE DEFINED FOR USE BY NDLP. THIS IS A PRE-
* DETERMINED NUMBER OF TABLE DEFINED AT COMPILATION TIME. THE FIRST
* WORD IN THE ENTRY IS A POINTER INTO THE DYNAMIC TABLE AREA WHICH
* IS THE FIRST WORD ALLOCATED TO THE TABLE. THE SECOND WORD IN THE
* ENTRY SPECIFIES THE NUMBER CP WORDS ALLOCATED TO THAT TABLE. AS
* MORE SPACE IS NEEDED FOR EACH TABLE AND TABLES NEED TO BE MOVED
* AROUND THE MANAGER UPDATES THE TABLE POINTERS AND ALLOCATED WORD
* COUNTS AS NEEDED. THE TABLE MANAGER AND THE TABLE POINTERS ARE
* LOCATED IN THE MAIN OVERLAY. THE TABLE POINTERS ARE IN A COMMON
* BLOCK LABELED -TABLES-.
*
* THERE ARE EIGHT SYMPL TEXTS DEFINE FOR NDLP:
*
* NDLDATT -- THIS TEXT CONTAIN A COMMON BLOCK LABELED -NDLDATA-.
* NDLDATA CONTAINS ALL THE FLAGS SET BY NDLINIT, FILE
* NAMES, ERROR/WARNING COUNTS, NAME OF CURRENT OVERLAY
* LOADED, AND THE TITLE TEXT. IT ALSO CONTAINS THE
* STATUS LIST FOR ALL THE STATEMENT AND KEYWORD I.D.-S.
*
* NDLER1T -- THIS TEXT DEFINES THE TABLE CONTAINING ALL THE PASS 1
* ERROR MESSAGE INFORMATION.
*
* NDLER2T -- THIS TEXT DEFINES THE TABLE CONTAINING ALL THE PASS 2
* ERROR MESSAGE INFORMATION.
*
* NDLFETT -- DEFINES ALL THE FILE ENVIRONMENT TABLES USED BY NDLP,
* ALSO ALL THE CIRCULAR BUFFERS AND WORKING STORAGE
* AREAS FOR I/O PROCESSING.
*
* NDLNCFT -- CONTAINS COMMON INFORMATION USED IN NCF CREATION.
*
* NDLOVLT -- DEFINES THE TABLE TABLE CONTAINING ALL THE OVERLAY
* NAMES AND THEIR LEVELS.
*
* NDLPS2T -- CONTAINS INFORMATION COMMON TO ALL PASS 2 TYPE
* ROUTINES.
*
* NDLTBLT -- CONTAINS DEFINITIONS OF ALL THE TABLES MANAGED BY THE
* DYNAMIC TABLE MANAGER. IF YOU NOTICE, EACH TABLE IS
* DEFINED BY A BASED ARRAY FOLLOWED BY A ONE WORD ITEM.
* THIS CORRESPONDS TO THE TWO WORD ENTRY AS DESCRIBED
* PREVIOULSY. ONE WORD IS ALLOCATED TO THE BASED ARRAY
* AND IS USED AS THE TABLE POINTER INTO THE DYNAMIC
* TABLE AREA. THE ONE WORD ITEM IS USED AS THE COUNT
* OF THE NUMBER OF CP WORDS ALLOCATED TO THE TABLE.
* THIS TEXT ALSO CONTAINS A DEFINE OF THE ENTRY SIZE
* OF EACH TABLE AND THE INITIAL SIZE ALLOCATED FOR EACH
* TABLE WHEN USED.
*
*
* IT IS HOPED THAT THIS OVERVIEW WILL GIVE AN OVER-ALL UNDERSTANDING
* OF HOW NDLP IS DESIGNED AND STRUCTURED. FOR A MORE DETAILED
* DESCRIPTION OF EACH MODULE SEE THE IMS CODE LOCATED AT THE
* BEGINNING OF EACH MODULE.
*
* APPENDIX A.
*
* A NOTE ON MODIFYING NDLP IN TERMS OF ADDING AND DELETING A
* KEYWORD.
*
* A KEYWORD MAY BE ANY PARAMETER NAME (E.G. - NODE, TIPTYPE,
* NAME1, ETC.) OR STATEMENT NAME (E.G. - NFILE, LINE, INCALL, ETC.)
*
* ADDING A KEYWORD --
*
* STEP I.
*
* KEYWORD LIST:
*
* IN DECK NDLSDAT, INSERT THE NEW KEYWORD IN ALPHABETICAL
* ORDER,ALSO ON THE SAME LINE INSERT THE FOLLOWING MASKS,
* ACCORDING TO THE FORMAT AND DEFINITION AS FOLLOWS:
*
* FLAGS/
* KEYWORD NAME ID ---SAMAP/KAMAP---
*
* AUTO 04001 00050 00000
* INCALL 60173 00006 50000
*
* WHERE:
*
* FLAG1(BIT 0) FLAG TO INDICATE THAT THIS IS A STATEMENT
* NAME ENTRY.
*
* FLAG2(BIT 1) FLAG TO INDICATE WHETHER LABEL IS REQUIRED,
* 0 - LABEL NOT REQUIRED.
* 1 - LABEL REQUIRED.
*
* FLAG3(BIT 2) RESERVED FOR CDC USE.
*
* FLAG4(BIT 3) FLAG TO INDICATE THAT THIS IS A KEYWORD
* ENTRY.
*
* FLAG5(BIT 4) VALUE REQUIRED FLAG.
*
* FLAG6(BIT 5) RESERVED FOR CDC USE.
*
* STID/KWID(BIT 6-14) NUMERIC IDENTIFIER FOR THE DELIMITER,
* STATEMENT, OR KEYWORD.
*
* SAMAP/KAMAP(BIT 15-44) BIT MAP FOR:
* STATEMENT NAMES - A BIT IS SET ACCORDING TO
* THE ID OF THE STATEMENT
* IT CAN FOLLOW.
* PARAMETER NAMES - A BIT SET CORRESPONDING
* TO THE ID OF THE STATE-
* IT CAN APPEAR ON.
*
* NO FURTHER CHANGES ARE NEEDED FOR SYNGEN CODE.
*
* STEP II.
*
* PASS 1 -- STATEMENT NAMES:
*
* IF THE NEW KEYWORD IS A STATEMENT NAME THEN MAKE THE APPROPRI-
* ATE CHANGES IN PROC CKSTMTDEC WHICH HAS SWITCHES FOR STATEMENT
* DECLARATIONS.
*
* PASS 1 -- PARAMETER NAMES:
*
* IF THE NEW KEYWORD IS A PARAMETER ON A STATEMENT THEN SWITCHES
* IN PROC CKVDEC HAS TO BE MODIFIED TO REFLECT THE NEW KEYWORD
* AND ALSO THE KIND OF VALUES (E.G. DECIMAL,HEXIDECIMAL, ALPHA-
* NUMERIC ETC) IT CAN ASSUME. ALSO, CHANGED ARE THE SWITCHES IN
* ENTVAL FOR ENTERING APPROPRIATE VALUES INTO THE CORRECT OFF-
* SETS IN STATEMENT TABLE.
*
* IF THE NEW KEYWORD ASSUMES RESERVED LITERALS SUCH AS "YES",
* "NO","CCP" ETC., THEN PROC CHKTABL HAS TO BE CHANGED TO UPDATE
* THE CORRESPONDING TABLES.
*
* STEP III.
*
* PASS2 -- COMMUNICATION ELEMENTS (NDLNFCM):
*
* IF THE NEW KEYWORD IS A DEVICE PARAMETER THEN DEPENDING ON THE
* TIPTYPE USED, THE SWITCHES IN THE CORRESPONDING DEVICE HAND-
* LING PROC (E.G., PROC ASYDEV FOR ASYNC DEVICE) ARE MODIFIED.
*
* SIMILARLY,THE SAME APPROACH APPLIES FOR LINE AND TERMINAL
* PARAMETERS.
*
* PASS2 -- NETWORK ELEMENTS (NDLNFNT):
*
* IF THE NEW KEYWORD IS A TRUNK, COUPLER,NPU,LOGLINK, SUPLINK,
* OR NFILE PARAMETER, THE SWITCHES FOR THE CORRESPONDING
* PROCEDURES HAVE TO BE MODIFIED.
*
* PASS 2 -- STATEMENT NAMES:
*
* IF THE NEW KEYWORD IS A NEW STATEMENT NAME,THEN SWITCHES FOR
* NDLNFCM,NDLNFTN OR NDLP2LF ARE MODIFIED TO REFLECT THE
* NEW STATEMENT DEPENDING ON WHICH GROUP THE NEW KEYWORD BELONGS
* TO. THE RELATED CROSS REFERENCE TABLES HAVE TO BE CHANGED
* OR CREATED ACCORDINGLY.
*
* PASS 2 -- CHECK RANGE:
*
* IF THE NEW PARAMETER REQUIRES A NUMERIC VALUE, THEN NDLCKRG
* HAS TO BE CHANGED TO REFLECT THE NEWLY ADDED KEYWORD AND ITS
* LEGAL RANGE.
*
* STEP IV.
*
* LIST:
*
* IN MOST CASES, NDLLIST HAS TO BE CHANGED TO REFLECT THE
* EXISTENCE OR NON-EXISTENCE OF A KEYWORD OR STATEMENT. (E.G. -
* IF A NEW PARAMETER ON DEVICE STATEMENT IS ADDED THEN PROC
* DEVLIST HAS TO BE MODIFIED TO REFLECT THE NEW CHANGE)
*
* DELETING A KEYWORD --
*
* DELETING A KEYWORD WOULD GO THROUGH A SIMILAR PROCESS MENTIONED
* ABOVE, IN THAT INSTEAD OF ADDING EXTRA SWITCHES OR KEYWORDS
* TO ACCOMMODATE THE NEW KEYWORD IN EACH OF THE STEP MENTIONED
* ABOVE, DELETION OF SWITCHES OR KEYWORD(S) WILL OCCUR IN THESE
* STEPS.
*
#
*ENDIF
END
TERM