*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