User Tools

Site Tools


cdc:nos2.source:nam5871:ndlims

NDLIMS

Table Of Contents

  • [00002] PROC NDLIMS
  • [00006] NDLP - A BRIEF OVERVIEW

Source Code

NDLIMS.txt
  1. *DECK NDLIMS
  2. PROC NDLIMS;
  3. BEGIN
  4. *IF,DEF,IMS
  5. #
  6. ** NDLP - A BRIEF OVERVIEW
  7. *
  8. * D.K. ENDO 82/02/04
  9. *
  10. * THE PURPOSE OF THIS SECTION IS TO GIVE A BRIEF AND CONCISE
  11. * OVERVIEW OF THE NETWORK DEFINITION LANGUAGE PROCESSOR(NDLP).
  12. * IT HAS BEEN ASSUMED THAT THE READER OF THIS OVERVIEW IS ALREADY
  13. * FAMILIAR WITH THE NETWORK DEFINITION LANGUAGE(NDL) SYNTAX, THE
  14. * OVERALL STRUCTURES OF NETWORK AND LOCAL CONFIGURATION FILES
  15. * (NCF AND LCF), AND HOW THE CONFIGURATION FILES ARE USED BY THE
  16. * NETWORK.
  17. *
  18. * THIS OVERVIEW HAS TWO MAJOR SECTIONS. THE FIRST SECTION DESCRIBES
  19. * NDLP IN TERMS OF DATA FLOW. IT IDENTIFIES THE MAJOR PROCESSES OF
  20. * NDLP AND THE FILES AND TABLES USED TO TRANSFER DATA BETWEEN
  21. * THE PROCESSES. THE SECOND SECTION IS MORE OF A FUNCTIONAL
  22. * EXPLANATION. IT DESCRIBES THE MAJOR MODULES OF NDLP AND THE
  23. * BASIC STRUCTURE AND LOGIC OF EACH ONE.
  24. *
  25. *
  26. * SECTION I: DATA FLOW
  27. *
  28. * NDLP IS BASICALLY A TWO PASS COMPILER. DURING THE FIRST PASS,
  29. * OR READING, OF THE INPUT SOURCE NDLP DOES SYNTAX CRACKING AND
  30. * CHECKING. IN ADDITION IT REFORMATS THE INPUT SOURCE INTO A
  31. * MORE STRUCTURED FORM. USING THE MORE STRUCTURED FORM OF THE
  32. * SOURCE NDLP DOES A SECOND PASS, OR READING, OF THE INPUT.
  33. * DURING THE SECOND PASS IT DOES COMPATIBILITY CHECKING BETWEEN
  34. * PARAMETERS ON THE SAME STATEMENT AND OTHER STATEMENTS AND CREATES
  35. * A CONFIGURATION FILE BASED ON THE SOURCE. A THIRD PROCESS NDLP
  36. * DOES IS TO CREATE VARIOUS LISTINGS SUCH AS A SOURCE LISTING OR
  37. * A FILE CONTENTS SUMMARY LISTING. SUMMING IT UP IN ONE SENTENCE,
  38. * NDLP IS PARTITIONED INTO THREE MAJOR PROCESSES: 1)PASS 1, 2)PASS 2
  39. * AND 3)LISTING CREATION.
  40. *
  41. * THE FOLLOWING LISTS THE FILES AND TABLES WHICH ARE USED TO PASS
  42. * INFORMATION BETWEEN EACH PROCESS:
  43. *
  44. * 1)BETWEEN PASS 1 AND PASS 2 --
  45. * STATEMENT TABLE - EACH ENTRY IN THIS TABLE CORRESPONDS TO A
  46. * STATEMENT,IN THE INPUT SOURCE,IN A STRUCTURED
  47. * FORM. AN EXCEPT IS THE TERMDEV STATEMENT IN
  48. * WHICH 2 ENTRIES ARE MADE:TERMINAL AND DEVICE.
  49. * THIS TABLE IS CREATED BY PASS 1 AND IS THE
  50. * MAJOR INTERFACE BETWEEN PASS 1 AND PASS 2.
  51. * PASS 1 WRITES THIS TABLE TO A LOCAL FILE:
  52. * ZZZZZU3.
  53. *
  54. * THE REMAINDER OF THE TABLES PASSED BETWEEN PASS 1 TO PASS 2
  55. * ARE ONLY CREATED WHEN PARSING A SOURCE FOR AN NCF.
  56. *
  57. * CONSOLE MAP - EACH BIT IN THIS MAP CORRESPONDS TO EACH
  58. * TERMINAL STATEMENT. A BIT IS SET ONLY IF
  59. * A CONSOLE WAS DEFINED FOR THE TERMINAL.
  60. * COUPLER TABLE - THERE IS A ENTRY FOR EACH COUPLER DEFINED IN
  61. * THE NETWORK. EACH ENTRY CONTAINS A COUPLER
  62. * NAME, COUPLER/HOST NODE I.D., AND THE NODE
  63. * I.D. OF THE NPU THAT SUPPORTS THE COUPLER.
  64. * IT IS USED TO CREATE ENTRIES IN THE LOGLINK
  65. * XREF TABLE.
  66. * LABEL TABLE - CONTAINS ALL THE ELEMENT NAMES DEFINED BY
  67. * THE SOURCE AND GENERATED BY NDLP. USED
  68. * BY PASS 2 TO CREATE DEVICE AND LINE XREF
  69. * TABLE ENTRIES.
  70. * LOGLINK TABLE - HAS AN ENTRY FOR EACH LOGICAL LINK DEFINED
  71. * BY THE SOURCE. EACH ENTRY CONTAINS THE
  72. * LOGLINK NAME AND THE NODE I.D.-S OF THE
  73. * NODES WHICH THE LINK CONNECTS. USED TO
  74. * DEFAULT OR CHECK SUPERVISORY LINKS.
  75. * NPU TABLE - CONTAINS AN ENTRY FOR EACH NPU DEFINED.
  76. * EACH ENTRY CONTAINS AN NPU NAME, FLAG IF
  77. * AT LEAST ONE SUPLINK IS DEFINED, NPU NODE
  78. * I.D., AND A BIT MAP USED TO CHECK UNIQUENESS
  79. * OF PORT NUMBERS. USED TO CHECK AND CREATE
  80. * ENTRIES IN THE PHYSICAL LINK AND LOGICAL LINK
  81. * TABLES.
  82. * TRUNK NODE ID TBL-HAS AN ENTRY FOR EACH TRUNK. EACH ENTRY HAS
  83. * THE NODE I.D.-S OF THE NPU-S THAT THE TRUNK
  84. * CONNECTS. USED TO VALIDATE LOGLINK-S
  85. * SPANNING ONLY ONE TRUNK.
  86. *
  87. * 2)BETWEEN PASS 1 AND LIST --
  88. * DEFINE TABLE - CONTAINS AN ENTRY FOR EACH DEFINE NAME AND
  89. * CORRESPONDING REPLACEMENT STRING. USED
  90. * BY PASS 1 TO DO DEFINE STRING PROCESSING.
  91. * USED BY LIST TO CREATE THE DEFINE COMMAND
  92. * LISTING.
  93. * EXPANDED SECONDARY
  94. * INPUT FILE- CONTAINS ONLY SOURCE LINE WITH DEFINE NAMES
  95. * REPLACED BY ITS CORRESPONDING DEFINE STRING.
  96. * USED BY LIST TO CREATE THE EXPANDED SOURCE
  97. * LISTING. WRITTEN BY PASS 1 TO FILE ZZZZU4A.
  98. * PASS 1 ERROR FILE-CONTAINS AN ENTRY FOR EACH SYNTAX ERROR
  99. * DETECTED BY PASS 1. EACH ENTRY HAS AN ERROR
  100. * CODE, LINE NUMBER, AND A CLARIFIER WORD.
  101. * USED BY LIST TO CREATE AN ERROR SUMMARY
  102. * LISTING. WRITTEN BY PASS 1 TO FILE ZZZZZU1.
  103. * SECONDARY INPUT
  104. * FILE - CONTAINS COPY OF ORIGINAL SOURCE PARSED BY
  105. * PASS 1. USED BY PASS 2 TO CREATE THE SOURCE
  106. * LISTING AND THE EXPANDED SOURCE LISTING
  107. * WRITTEN BY PASS 1 TO FILE ZZZZZU4.
  108. * 3)BETWEEN PASS 2 AND LIST --
  109. * PASS 2 ERROR FILE-CONTAINS AN ENTRY FOR EACH ERROR DETECTED BY
  110. * PASS 2. FORMAT IS SAME AS PASS 1 ERROR FILE.
  111. * USED BY LIST TO CREATE AN ERROR SUMMARY
  112. * LISTING. WRITTEN BY PASS 2 TO FILE ZZZZZU2.
  113. * NCF/LCF - USED BY LIST TO CREATE A FILE CONTENTS
  114. * SUMMARY LISTING. FILE WRITTEN TO BY PASS 2
  115. * DEPENDS ON THE NFILE/LFILE STATEMENT.
  116. *
  117. * THERE ARE TABLES USED WITHIN EACH MAJOR PROCESS THAT ARE NOT
  118. * PASSED TO OTHERS. THEY ARE:
  119. *
  120. * 1) WITHIN PASS 1 --
  121. * KEYWORD TABLE - CONTAINS AN ENTRY FOR EACH STATEMENT NAME,
  122. * KEYWORD, AND DELIMITER VALID IN NDL. IF THE
  123. * ENTRY IS A STATEMENT NAME IT CONTAINS THE
  124. * NAME, THE STATEMENT NAME FLAG SET, LABEL
  125. * REQUIRED FLAG, STATEMENT I.D., AND A
  126. * STATEMENT ALLOWED BIT MAP. IF THE ENTRY
  127. * IS A KEYWORD, IT CONTAINS THE NAME, KEYWORD
  128. * NAME FLAG SET, VALUE REQUIRED FLAG, KEYWORD
  129. * I.D., AND KEYWORD ALLOW MAP. IF THE ENTRY
  130. * IS A DELIMITER, IT CONTAINS THE DELIMITER,
  131. * THE DELIMITER FLAG SET, AND A DELIMITER I.D.
  132. * THIS TABLE IS SORTED IN ALPHABETICAL ORDER
  133. * WITH THE DELIMITERS AT THE END FOR THE TABLE.
  134. * LEXICAL TABLE - CONTAINS AN ENTRY FOR EACH LETTER IN THE
  135. * ALPHABET AND ONE ENTRY FOR DELIMITERS. EACH
  136. * ENTRY POINTS TO ITS CORRESPONDING CHARACTER
  137. * GROUP IN THE KEYWORD TABLE AND HOW MANY
  138. * ENTRIES THERE ARE IN THE GROUP. FOR EXAMPLE:
  139. * THE 13TH ENTRY IN THE LEXICAL TABLE WOULD
  140. * POINT TO THE FIRST ENTRY, IN THE KEYWORD
  141. * TABLE, BEGINNING WITH THE LETTER -M- AND,
  142. * ALSO, GIVE THE TOTAL NUMBER OF STATEMENT
  143. * NAMES AND KEYWORDS BEING WITH THAT SAME
  144. * LETTER.
  145. * TNN TABLE - TRUNK NPU NAME TABLE CONTAINS AN ENTRY FOR
  146. * EACH TRUNK DEFINED IN THE NETWORK. EACH
  147. * ENTRY HAS THE N1 AND N2 VALUE SPECIFIED FOR
  148. * THAT TRUNK. IT IS USED, WITH THE NPU TABLE,
  149. * TO BUILD THE TRUNK NODE I.D. TABLE. THIS
  150. * TABLE IS ONLY GENERATED WHEN PARSING AN
  151. * NCF DIVISION.
  152. * LNT TABLE - LOGICAL LINK NODE NAME TABLE CONTAINS AN
  153. * ENTRY FOR EACH LOGLINK DEFINE IN THE
  154. * NETWORK. EACH ENTRY HAS THE NCNAME VALUE FOR
  155. * THE LOGLINK. IT IS USED, WITH THE NPU AND
  156. * COUPLER TABLE, IO BUILD THE LOGICAL LINK
  157. * TABLE. THIS TABLE IS ONLY GENERATED WHEN
  158. * PARSING AN NCF DIVISION.
  159. *
  160. * 2)WITHIN PASS 2:
  161. * LINE CONFIGURA-
  162. * TION FILE - CONTAINS A RECORD FOR EACH NPU DEFINED. EACH
  163. * RECORD CONTAINS AN ENTRY FOR EACH LINE OR
  164. * GROUP DEFINED ON THE NPU. EACH ENTRY
  165. * CONTAINS LINE CONFIGURATION INFORMATION FOR
  166. * THE LINE. IT IS USED TO BUILD THE CONFIGURA-
  167. * TION TABLE IN THE NCB-S. IT IS ONLY BUILT WHEN
  168. * CHECKING PARAMETERS FOR AN NCF.
  169. * LINE CONFIGURA-
  170. * TION FILE INDEX - CONTAINS AN ENTRY FOR EACH RECORD IN THE
  171. * LINE CONFIGURATION FILE. EACH ENTRY POINTS TO
  172. * A UNIQUE RECORD. IT ALSO CONTAINS THE NPU
  173. * NAME AND NODE I.D. THAT CORRESPONDS TO THE
  174. * RECORD. IT IS ONLY BUILT WHEN CHECKING
  175. * PARAMETERS FOR AN NCF.
  176. * SUPLINK TABLE - CONTAINS AN ENTRY FOR EACH SUPLINK DEFINED OR
  177. * DEFAULTED BY NDLP. EACH ENTRY CONTAINS THE
  178. * SUPLINK NAME AND THE HOST NODE I.D. THAT THE
  179. * NPU WILL BE SUPERVISED BY. IT IS USED TO
  180. * BUILD THE SUPERVISOR TABLE IN THE NCB-S. IT
  181. * IS ONLY BUILT WHEN CHECKING PARAMETERS FOR
  182. * AN NCF.
  183. *
  184. * THE THREE TABLES ABOVE ARE USED TO BUILD THE NPU CONFIGURE BLOCKS.
  185. * THE REMAINDER OF THE INFORMATION NEEDED TO BUILD THE NCB-S
  186. * ARE GOTTEN FROM THE NPU, PHYSICAL LINK, LOGICAL LINK CROSS
  187. * REFERENCE TABLES, WHICH ARE PART OF THE NCF.
  188. *
  189. * 3)WITHIN LIST --
  190. * THERE ARE NO TABLES BUILT BY LIST PER SE, BUT RATHER BUFFERS
  191. * USED TO FORMAT THE LINE IMAGES. THERE ARE TWO BIT MAPS USED
  192. * IN CREATING AN NCF SUMMARY. ONE IS A TIPTYPE MAP USED TO
  193. * LIST WHICH ONES WERE DEFINED FOR AN NPU. THE OTHER IS A
  194. * NODE I.D. MAP USED TO LIST WHICH NODE I.D.-S WERE NOT USED.
  195. * FINALLY THERE ARE BUFFERS USED TO READ IN VARIOUS FILES CREATED
  196. * BY PASS 1 AND PASS 2.
  197. *
  198. * AGAIN, THE PURPOSE OF THIS SECTION WAS TO IDENTIFY THE MAJOR
  199. * PROCESSES OF NDLP AND THE TABLES AND FILES USED TO TRANSFER DATA
  200. * BETWEEN THEM. IN SUMMARY, THERE ARE THREE MAJOR PROCESSES:
  201. * 1)PASS 1 -- SYNTAX CRACKING AND CHECKING.
  202. * 2)PASS 2 -- PARAMETER COMPATIBILITY CHECKING AND CONFIGURATION
  203. * FILE CREATION.
  204. * 3)LIST -- LISTING CREATION.
  205. * THE TABLES PASSED FROM PASS 1 TO PASS 2 ARE:
  206. * 1)STATEMENT TABLE 5)LOGLINK TABLE
  207. * 2)CONSOLE MAP 6)NPU TABLE
  208. * 3)COUPLER TABLE 7)TRUNK NODE I.D. TABLE
  209. * 4)LABEL TABLE
  210. * THE TABLES PASSED FROM PASS 1 TO LIST ARE:
  211. * 1)DEFINE TABLE.
  212. * 2)EXPANDED SECONDARY INPUT FILE.
  213. * 3)SECONDARY INPUT FILE.
  214. * 4)PASS 1 ERROR FILE
  215. * THE TABLES PASSED FROM PASS 2 TO LIST ARE:
  216. * 1)PASS 2 ERROR FILE.
  217. * 2)NCF OR LCF.
  218. *
  219. * SECTION II: FUNCTIONAL DESCRIPTION --
  220. *
  221. * NDLP IS MADE UP OF SIX MAIN MODULES: NDLMAIN, NDLINIT, NDLPSS1,
  222. * NDLP2NF, NDLP2LF, AND NDLLIST. NDLMAIN IS THE EXECUTIVE ROUTINE
  223. * FOR NDLP. IT LOADS AND EXECUTES THE OTHER MAIN MODULES AS
  224. * THEY ARE NEEDED. NDLINIT DOES INITIALIZATION TASKS FOR NDLP WHICH
  225. * INCLUDE CONTROL CARD CRACKING, MANAGED TABLES INITIALIZATION, AND
  226. * SETTING UP FET-S. THE REMAINDER OF THE MODULES CORRESPOND TO THE
  227. * THREE MAJOR PROCESSES AS DESCRIBED BY THE FIRST SECTION. NDLPSS1
  228. * HAS THE FUNCTION OF PASS 1 WHICH IS TO DO SYNTAX CRACKING AND
  229. * CHECKING. PASS 2 IS BROKEN UP INTO TWO MODULES, NDLP2NF AND
  230. * NDLP2LF. BOTH ESSENTIALLY HAVE THE SAME FUNCTION: TO DO PARAMETER
  231. * COMPATIBILITY CHECKING AND CONFIGURATION FILE CREATION. NDLP2NF
  232. * CHECKS STATEMENTS DEFINING AN NCF AND NDLP2LF CHECKS STATEMENTS
  233. * DEFINING AN LCF. NDLLIST CORRESPONDS TO LIST WHICH DOES ALL THE
  234. * LISTING GENERATION.
  235. *
  236. * NDLMAIN -- THIS MODULE IS THE EXECUTIVE FOR NDLP. IT BEGINS BY
  237. * EXECUTING THE INITIALIZATION ROUTINE. THE INITIALIZATION ROUTINE
  238. * DETERMINES FROM THE CONTROL CARD WHETHER NDLP WAS CALLED TO DO A
  239. * FILE SUMMARY RUN OR A FILE CREATION RUN. IF A FILE SUMMARY WAS
  240. * REQUESTED NDLMAIN WILL EXECUTE NDLLIST TO GENERATE THE SUMMARY.
  241. * IF IT IS A CREATION RUN THEN FOR EACH CONFIGURATION FILE DEFINED
  242. * IN THE INPUT SOURCE NDLMAIN CALLS NDLPSS1, NDLP2NF OR NDLP2LF, AND
  243. * NDLLIST. FINALLY NDLMAIN RETURNS SCRATCH FILE AND ISSUES A
  244. * DAYFILE MESSAGE THAT NDLP IS COMPLETE.
  245. *
  246. * NDLINIT --THIS MODULE DOES ALL THE INITIALIZATION TASKS FOR NDLP.
  247. * IT FIRST CRACKS THE CONTROL CARD TO DETERMINE THE TYPE OF RUN,
  248. * ALTERNATE INPUT/OUTPUT FILE NAMES, AND LISTING OPTIONS REQUESTED.
  249. * NDLINIT THEN INITIALIZES THE DYNAMIC TABLE MANAGER. FINALLY IT
  250. * INITIALIZES VARIOUS FET-S NEEDED TO DO I/O.
  251. *
  252. * NDLPSS1 -- THIS MODULE UTILIZES THE SYNGEN SUBSYSTEM. THE SYNTAX
  253. * TABLE DRIVER (NDLSTD) IS THE MAIN ROUTINE. NDLSTD CALLS FIVE
  254. * OTHER PROCEDURES AS NEEDED TO PARSE AND CHECK THE SOURCE INPUT.
  255. * DIAG DOES DIAGNOSTIC PROCESSING, WHICH BASICALLY MEANS CALLING
  256. * ERRMS1 TO MAKE ENTRIES IN THE PASS 1 ERROR FILE. LEXSCAN FORMS
  257. * THE NEXT TOKEN FROM THE SOURCE. LEXSNC CAUSES SCANNING TO BEGIN
  258. * TO CONTINUE ON THE NEXT CARD OR LINE IMAGE. PRINTRC IS USED TO
  259. * PRINT TRACE INFORMATION. SUBR CONTAINS ALL THE SYNTATIC ROUTINES
  260. * USED TO DO ERROR CHECKING AND TABLE CREATION.(SEE THE IMS CODE FOR
  261. * NDLSTD TO GET MORE DETAILS OF THE SYNGEN SUBSYSTEM)
  262. *
  263. * NDLP2LF -- THIS MODULE DOES FURTHER CHECKING OF LCF STATEMENTS AND
  264. * DOES CREATION OF THE LCF DEFINED BY THE SOURCE. NDLP2LF CONTAINS
  265. * SUB-MODULES, ONE FOR EACH STATEMENT, AND A PASS 2 LCF TERMINATION
  266. * ROUTINE. IT FIRST INITIALIZES ALL THE TABLES NEEDED TO CREATE AN
  267. * LCF. THEN FOR EACH ENTRY IN THE STATEMENT TABLE, NDLP2LF CALL THE
  268. * APPROPRIATE PROC TO CHECK THE ENTRY. THIS IS DONE BY SWITCHING
  269. * ON THE STATEMENT I.D. NUMBER. THEN IN EACH STATEMENT PROC IT
  270. * SWITCHES ON KEYWORD I.D. TO CHECK EACH VALUE DECLARATION. NDLP2LF
  271. * FINALLY CALLS LCFTERM TO WRITE THE LCF TABLES AND RECORDS OUT TO
  272. * A LOCAL FILE.
  273. *
  274. * NDLP2NF -- THIS MODULE DOES FURTHER CHECKING OF NCF STATEMENTS AND
  275. * DOES CREATION OF THE NCF DEFINED BY THE SOURCE. NDLP2NF THREE
  276. * OTHER MODULE: 1)NDLNFNT, 2)NDLNFCM, AND 3)NDLNFTM. NDLNFNT
  277. * CONTAINS SUB-MODULE, ONE FOR EACH STATEMENT, WHICH CHECK THE
  278. * NETWORK ELEMENT STATEMENTS(NFILE, NPU, SUPLINK, COUPLER, LOGLINK,
  279. * AND TRUNK). NDLNFCM CONTAINS SUB-MODULES WHICH CHECK THE COMMU-
  280. * NICATION ELEMENT STATEMENTS(LINE, TERMINAL, DEVICE). NDLNFTM DOES
  281. * NCB CREATION AND WRITES THE NCF TABLE TO A LOCAL FILE.
  282. *
  283. * NDLLIST -- THIS MODULE, BASED ON FLAGS SET BY NDLINIT, GENERATES
  284. * LISTINGS FOR NDLP. THERE IS A SUB-PROC FOR EACH TYPE OF LISTING.
  285. * IN ADDITION THERE IS A SUB-PROC FOR EACH NDL STATEMENT AND A
  286. * CALLED WHEN A FILE SUMMARY IS NEEDED.
  287. *
  288. * AS FOR THE OVERLAY STRUCTURE FOR NDLP THERE ARE FIVE PRIMARY
  289. * OVERLAYS AND THREE SECONDARY OVERLAYS. NDLMAIN IS IN THE MAIN
  290. * OVERLAY(0,0). THE PRIMARY OVERLAYS ARE NDLINIT(1,0), NDLPSS1(2,0)
  291. * NDLP2NF(3,0), NDLP2LF(4,0), AND NDLLIST(5,0). THE SECONDARY
  292. * OVERLAYS ARE ALL CALLED BY NDLP2NF. THEY ARE NDLNFNT(3,1),
  293. * NDLNFCM(3,2), AND NDLNFTM(3,3). THE FAST OVERLAY LOADER IS USED
  294. * TO LOAD ALL THE OVERLAYS(SEE LOADER MANUAL FOR DESCRIPTION). THE
  295. * OVERLAY LOADER IS CALLED THRU NDLOVLD. NDLOVLD INITIALIZES THE
  296. * CALL TO THE FAST OVERLAY LOADER AND SETS UP A RETURN-JUMP TO THE
  297. * OVERLAY ONCE IT HAS BEEN LOADED.
  298. *
  299. * THE DYNAMIC TABLE MANAGER IS THE ONE USED BY NVF/CS. THE DESIGN
  300. * OF THE MANAGER IS ROUGHLY EQUIVALENT TO THE STANDARD COMMON DECK
  301. * -COMCMTP- WHICH CONTAINS A COMPASS MANAGED TABLE PACKAGE. THE
  302. * DYNAMIC TABLE AREA IS LOCATED IN HIGH CORE. THE AREA IS ALLOCATED
  303. * BY THE MANAGER THRU A SERIES OF TWO WORD ENTRIES. EACH ENTRY
  304. * CORRESPONDS TO A TABLE DEFINED FOR USE BY NDLP. THIS IS A PRE-
  305. * DETERMINED NUMBER OF TABLE DEFINED AT COMPILATION TIME. THE FIRST
  306. * WORD IN THE ENTRY IS A POINTER INTO THE DYNAMIC TABLE AREA WHICH
  307. * IS THE FIRST WORD ALLOCATED TO THE TABLE. THE SECOND WORD IN THE
  308. * ENTRY SPECIFIES THE NUMBER CP WORDS ALLOCATED TO THAT TABLE. AS
  309. * MORE SPACE IS NEEDED FOR EACH TABLE AND TABLES NEED TO BE MOVED
  310. * AROUND THE MANAGER UPDATES THE TABLE POINTERS AND ALLOCATED WORD
  311. * COUNTS AS NEEDED. THE TABLE MANAGER AND THE TABLE POINTERS ARE
  312. * LOCATED IN THE MAIN OVERLAY. THE TABLE POINTERS ARE IN A COMMON
  313. * BLOCK LABELED -TABLES-.
  314. *
  315. * THERE ARE EIGHT SYMPL TEXTS DEFINE FOR NDLP:
  316. *
  317. * NDLDATT -- THIS TEXT CONTAIN A COMMON BLOCK LABELED -NDLDATA-.
  318. * NDLDATA CONTAINS ALL THE FLAGS SET BY NDLINIT, FILE
  319. * NAMES, ERROR/WARNING COUNTS, NAME OF CURRENT OVERLAY
  320. * LOADED, AND THE TITLE TEXT. IT ALSO CONTAINS THE
  321. * STATUS LIST FOR ALL THE STATEMENT AND KEYWORD I.D.-S.
  322. *
  323. * NDLER1T -- THIS TEXT DEFINES THE TABLE CONTAINING ALL THE PASS 1
  324. * ERROR MESSAGE INFORMATION.
  325. *
  326. * NDLER2T -- THIS TEXT DEFINES THE TABLE CONTAINING ALL THE PASS 2
  327. * ERROR MESSAGE INFORMATION.
  328. *
  329. * NDLFETT -- DEFINES ALL THE FILE ENVIRONMENT TABLES USED BY NDLP,
  330. * ALSO ALL THE CIRCULAR BUFFERS AND WORKING STORAGE
  331. * AREAS FOR I/O PROCESSING.
  332. *
  333. * NDLNCFT -- CONTAINS COMMON INFORMATION USED IN NCF CREATION.
  334. *
  335. * NDLOVLT -- DEFINES THE TABLE TABLE CONTAINING ALL THE OVERLAY
  336. * NAMES AND THEIR LEVELS.
  337. *
  338. * NDLPS2T -- CONTAINS INFORMATION COMMON TO ALL PASS 2 TYPE
  339. * ROUTINES.
  340. *
  341. * NDLTBLT -- CONTAINS DEFINITIONS OF ALL THE TABLES MANAGED BY THE
  342. * DYNAMIC TABLE MANAGER. IF YOU NOTICE, EACH TABLE IS
  343. * DEFINED BY A BASED ARRAY FOLLOWED BY A ONE WORD ITEM.
  344. * THIS CORRESPONDS TO THE TWO WORD ENTRY AS DESCRIBED
  345. * PREVIOULSY. ONE WORD IS ALLOCATED TO THE BASED ARRAY
  346. * AND IS USED AS THE TABLE POINTER INTO THE DYNAMIC
  347. * TABLE AREA. THE ONE WORD ITEM IS USED AS THE COUNT
  348. * OF THE NUMBER OF CP WORDS ALLOCATED TO THE TABLE.
  349. * THIS TEXT ALSO CONTAINS A DEFINE OF THE ENTRY SIZE
  350. * OF EACH TABLE AND THE INITIAL SIZE ALLOCATED FOR EACH
  351. * TABLE WHEN USED.
  352. *
  353. *
  354. * IT IS HOPED THAT THIS OVERVIEW WILL GIVE AN OVER-ALL UNDERSTANDING
  355. * OF HOW NDLP IS DESIGNED AND STRUCTURED. FOR A MORE DETAILED
  356. * DESCRIPTION OF EACH MODULE SEE THE IMS CODE LOCATED AT THE
  357. * BEGINNING OF EACH MODULE.
  358. *
  359. * APPENDIX A.
  360. *
  361. * A NOTE ON MODIFYING NDLP IN TERMS OF ADDING AND DELETING A
  362. * KEYWORD.
  363. *
  364. * A KEYWORD MAY BE ANY PARAMETER NAME (E.G. - NODE, TIPTYPE,
  365. * NAME1, ETC.) OR STATEMENT NAME (E.G. - NFILE, LINE, INCALL, ETC.)
  366. *
  367. * ADDING A KEYWORD --
  368. *
  369. * STEP I.
  370. *
  371. * KEYWORD LIST:
  372. *
  373. * IN DECK NDLSDAT, INSERT THE NEW KEYWORD IN ALPHABETICAL
  374. * ORDER,ALSO ON THE SAME LINE INSERT THE FOLLOWING MASKS,
  375. * ACCORDING TO THE FORMAT AND DEFINITION AS FOLLOWS:
  376. *
  377. * FLAGS/
  378. * KEYWORD NAME ID ---SAMAP/KAMAP---
  379. *
  380. * AUTO 04001 00050 00000
  381. * INCALL 60173 00006 50000
  382. *
  383. * WHERE:
  384. *
  385. * FLAG1(BIT 0) FLAG TO INDICATE THAT THIS IS A STATEMENT
  386. * NAME ENTRY.
  387. *
  388. * FLAG2(BIT 1) FLAG TO INDICATE WHETHER LABEL IS REQUIRED,
  389. * 0 - LABEL NOT REQUIRED.
  390. * 1 - LABEL REQUIRED.
  391. *
  392. * FLAG3(BIT 2) RESERVED FOR CDC USE.
  393. *
  394. * FLAG4(BIT 3) FLAG TO INDICATE THAT THIS IS A KEYWORD
  395. * ENTRY.
  396. *
  397. * FLAG5(BIT 4) VALUE REQUIRED FLAG.
  398. *
  399. * FLAG6(BIT 5) RESERVED FOR CDC USE.
  400. *
  401. * STID/KWID(BIT 6-14) NUMERIC IDENTIFIER FOR THE DELIMITER,
  402. * STATEMENT, OR KEYWORD.
  403. *
  404. * SAMAP/KAMAP(BIT 15-44) BIT MAP FOR:
  405. * STATEMENT NAMES - A BIT IS SET ACCORDING TO
  406. * THE ID OF THE STATEMENT
  407. * IT CAN FOLLOW.
  408. * PARAMETER NAMES - A BIT SET CORRESPONDING
  409. * TO THE ID OF THE STATE-
  410. * IT CAN APPEAR ON.
  411. *
  412. * NO FURTHER CHANGES ARE NEEDED FOR SYNGEN CODE.
  413. *
  414. * STEP II.
  415. *
  416. * PASS 1 -- STATEMENT NAMES:
  417. *
  418. * IF THE NEW KEYWORD IS A STATEMENT NAME THEN MAKE THE APPROPRI-
  419. * ATE CHANGES IN PROC CKSTMTDEC WHICH HAS SWITCHES FOR STATEMENT
  420. * DECLARATIONS.
  421. *
  422. * PASS 1 -- PARAMETER NAMES:
  423. *
  424. * IF THE NEW KEYWORD IS A PARAMETER ON A STATEMENT THEN SWITCHES
  425. * IN PROC CKVDEC HAS TO BE MODIFIED TO REFLECT THE NEW KEYWORD
  426. * AND ALSO THE KIND OF VALUES (E.G. DECIMAL,HEXIDECIMAL, ALPHA-
  427. * NUMERIC ETC) IT CAN ASSUME. ALSO, CHANGED ARE THE SWITCHES IN
  428. * ENTVAL FOR ENTERING APPROPRIATE VALUES INTO THE CORRECT OFF-
  429. * SETS IN STATEMENT TABLE.
  430. *
  431. * IF THE NEW KEYWORD ASSUMES RESERVED LITERALS SUCH AS "YES",
  432. * "NO","CCP" ETC., THEN PROC CHKTABL HAS TO BE CHANGED TO UPDATE
  433. * THE CORRESPONDING TABLES.
  434. *
  435. * STEP III.
  436. *
  437. * PASS2 -- COMMUNICATION ELEMENTS (NDLNFCM):
  438. *
  439. * IF THE NEW KEYWORD IS A DEVICE PARAMETER THEN DEPENDING ON THE
  440. * TIPTYPE USED, THE SWITCHES IN THE CORRESPONDING DEVICE HAND-
  441. * LING PROC (E.G., PROC ASYDEV FOR ASYNC DEVICE) ARE MODIFIED.
  442. *
  443. * SIMILARLY,THE SAME APPROACH APPLIES FOR LINE AND TERMINAL
  444. * PARAMETERS.
  445. *
  446. * PASS2 -- NETWORK ELEMENTS (NDLNFNT):
  447. *
  448. * IF THE NEW KEYWORD IS A TRUNK, COUPLER,NPU,LOGLINK, SUPLINK,
  449. * OR NFILE PARAMETER, THE SWITCHES FOR THE CORRESPONDING
  450. * PROCEDURES HAVE TO BE MODIFIED.
  451. *
  452. * PASS 2 -- STATEMENT NAMES:
  453. *
  454. * IF THE NEW KEYWORD IS A NEW STATEMENT NAME,THEN SWITCHES FOR
  455. * NDLNFCM,NDLNFTN OR NDLP2LF ARE MODIFIED TO REFLECT THE
  456. * NEW STATEMENT DEPENDING ON WHICH GROUP THE NEW KEYWORD BELONGS
  457. * TO. THE RELATED CROSS REFERENCE TABLES HAVE TO BE CHANGED
  458. * OR CREATED ACCORDINGLY.
  459. *
  460. * PASS 2 -- CHECK RANGE:
  461. *
  462. * IF THE NEW PARAMETER REQUIRES A NUMERIC VALUE, THEN NDLCKRG
  463. * HAS TO BE CHANGED TO REFLECT THE NEWLY ADDED KEYWORD AND ITS
  464. * LEGAL RANGE.
  465. *
  466. * STEP IV.
  467. *
  468. * LIST:
  469. *
  470. * IN MOST CASES, NDLLIST HAS TO BE CHANGED TO REFLECT THE
  471. * EXISTENCE OR NON-EXISTENCE OF A KEYWORD OR STATEMENT. (E.G. -
  472. * IF A NEW PARAMETER ON DEVICE STATEMENT IS ADDED THEN PROC
  473. * DEVLIST HAS TO BE MODIFIED TO REFLECT THE NEW CHANGE)
  474. *
  475. * DELETING A KEYWORD --
  476. *
  477. * DELETING A KEYWORD WOULD GO THROUGH A SIMILAR PROCESS MENTIONED
  478. * ABOVE, IN THAT INSTEAD OF ADDING EXTRA SWITCHES OR KEYWORDS
  479. * TO ACCOMMODATE THE NEW KEYWORD IN EACH OF THE STEP MENTIONED
  480. * ABOVE, DELETION OF SWITCHES OR KEYWORD(S) WILL OCCUR IN THESE
  481. * STEPS.
  482. *
  483. #
  484. *ENDIF
  485. END
  486. TERM
cdc/nos2.source/nam5871/ndlims.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator