home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / MN325SRC.ZIP / makenl-3.2.5 / docs / makenl.txt < prev    next >
Text File  |  2005-02-06  |  86KB  |  1,899 lines

  1. MakeNL -- Version 2.51
  2. ======================
  3.  
  4. NODELIST Generator Program
  5.  
  6. by Ben Baker
  7.  
  8. Copyright 1987-1992 -- All Rights Reserved
  9.  
  10. 1. Introduction
  11. ---------------
  12.  
  13. FidoNet, a trade mark of Tom Jennings, was the name of the first amateur
  14. electronic mail program. There are now several mail server programs that
  15. support FidoNet protocols. Many amateur networks, large and small, are
  16. using one or more of these mail servers to communicate regularly.
  17.  
  18. The glue that holds an amateur network together is its nodelist, a
  19. document that describes the nodes in the network, and the relationship
  20. between them. To be effective, this document must use a consistent
  21. format, so that programs may process its information automatically. The
  22. FidoNet Technical Standards Committee maintains, among others, a
  23. document called FTS-0005.TXT that defines the format for a FidoNet
  24. compatible nodelist. A copy of that document is included in this
  25. distribution.
  26.  
  27. Furthermore, a nodelist must be accurate and current. An out-of-date
  28. phone number, for example, is useless. It must be updated regularly, and
  29. most networks publish a new nodelist each week. This is an enormous task
  30. in any network of more than a few dozen nodes. No one person can do it.
  31. But division of labor adds complexity.
  32.  
  33. Obviously, we need a tool that can help verify consistency, maximize
  34. accuracy and currency, minimize effort, and minimize cost. MakeNL is
  35. such a tool.
  36.  
  37. MakeNL supports the multilevel nodelist generation techniques presently
  38. in use in several FidoNet compatible electronic mail networks. It helps
  39. maintain nodelist segments at any level from Hub through Network, Region
  40. and Zone to the composite distribution nodelist.
  41.  
  42. MakeNL's main purpose for being is to create a "submittal file" (see
  43. definitions - section 3 on page 14) containing your nodelist update, and
  44. to send it to your coordinator. It can do this automatically, if you
  45. set up its control file properly. It is a complex program and looks
  46. intimidating, but it is not really difficult.
  47.  
  48. MakeNL has features to help in nodelist preparation at any level, but it
  49. is also adaptable. Features you don't need you may safely ignore, and
  50. MakeNL will not complain.
  51.  
  52.  
  53. 1.1 How to use this manual
  54. --------------------------
  55.  
  56. Section 2 is a tutorial on setting up and operating MakeNL. It starts
  57. with the simplest case -- the lowest level of nodelist maintenance --
  58. and expands in steps to Zone Coordinator.
  59.  
  60. Sections 3 through 8 contain detailed reference information. Section 2
  61. necessarily refers to information contained in later sections. The early
  62. paragraphs of section 2 contain frequent forward references to assist
  63. the reader.
  64.  
  65. I recommend you read the entire document through once. Pay particular
  66. attention to those parts of section 2 that pertain to you, but at least
  67. skim the rest. Familiarize yourself with the layout and content of the
  68. various sections, but do not read for thorough understanding on your
  69. first pass.
  70.  
  71. Carefully study section 2 a second time. Refer to other sections for
  72. clarification of terms as necessary.
  73.  
  74. Select the sample control file that best represents your particular
  75. needs. Edit it to fit your particular environment, as indicated in
  76. section 2 and the comments in the control file.
  77.  
  78. Make copies of your master data files in a safe place (floppy diskette,
  79. or a directory tucked away in a far corner of your hard disk).
  80.  
  81. Familiarize yourself with MakeNL by actually running it, in both test
  82. and process mode. During this phase, I suggest you comment out any
  83. "Submit" or "Notify" statements in your control file to avoid generating
  84. spurious messages.
  85.  
  86. Introduce data errors to see how MakeNL handles them. Make sure you're
  87. comfortable with it before you put it on line.
  88.  
  89. When you're satisfied, delete all "test case" files. Copy your master
  90. files to your master directory. Make the necessary changes to enable
  91. your mail server's "external event" for MakeNL and you're up.
  92.  
  93. MakeNL simplifies your life. It looks imposing, but it's really not very
  94. difficult.
  95.  
  96.  
  97.                Test Mode            Directory          Process Mode
  98.                               +------------------+
  99.                    +----------|                  |----------+
  100.                    |          |      UPLOADS     |          |
  101.                    |    +-----|                  |-----+    |
  102.                    |    |     +------------------+     |    |
  103.                    |    |                              |    |
  104.                    |    |     +------------------+     |    |
  105.                    |    | /---|                  |---\ |    |
  106.                    |    |<    |     MAILFILES    |    >|    |
  107.                    |    | \---|                  |---/ |    |
  108.                    |    |     +------------------+     |    |
  109.                    |    |                              |    |
  110.                    |    |     +------------------+     |    |
  111.                    |    +---\ |                  |---\ |    |
  112.         Received   |         >|      UPDATE      |    >|    |
  113.         Update     +--------/ |                  |---/ |    |
  114.         Files                 +------------------+     |    |
  115.          - - - - - - - - - - - - - - - - - - - - - - - |    | - - - - - -
  116.         Master                +------------------+     |    |
  117.         Files                 |                  | /---+    |
  118.                               |      MASTER      |<         |
  119.                               |                  | \--------+
  120.                               +------------------+
  121.                                      |    |
  122.                                      |    +-------\   OUTPUT
  123.                                      |             >
  124.                                      +------------/   FILES
  125.  
  126.  
  127.                 Figure 1.  Data Flow - Test Mode vs. Process Mode
  128.  
  129.  
  130. 2. MakeNL Operation
  131. -------------------
  132.  
  133. 2.1 Operational overview
  134. ------------------------
  135.  
  136. MakeNL operates in two distinct modes, test mode and process mode. The
  137. mode of operation is controlled by the "PROcess" statement in your
  138. control file (see section 6.1.4 on page 23), or by the "/T" and "/P"
  139. command line switches (see sections 4.2 and 4.3 on page 17).
  140.  
  141. In test mode your personal nodelist segment, the part of the nodelist
  142. you maintain, and any update segments you have received from others are
  143. tested for errors. Submitters of any received files are notified as
  144. indicated by the NOTify statements in the control file, and their files
  145. are moved to the UPDate directory. (See section 5 on page 20 for a
  146. description of MakeNL's directories.)
  147.  
  148. In process mode your MASter directory is updated by any files received
  149. since the last time MakeNL was executed in process mode. Master data
  150. files are used to produce your submittal and/or distribution files.
  151.  
  152. In general, MakeNL should be run in process mode once and only once each
  153. week. Ideally, this will be done by an "external event" from your mail
  154. server. It is then automatic, and one less thing you have to worry
  155. about.
  156.  
  157. It may be run in test mode as often as desired to test received files or
  158. changes in your own data.
  159.  
  160. MakeNL uses several directories to store data. Section 5 describes
  161. them in detail. Figure 1 illustrates the data flow from directory to
  162. directory in the two modes of operation. Above the dashed line, the data
  163. flow all deals with files received from others -- perhaps from your Hubs
  164. if you are a Network Host, or from Network Hosts if you are a Regional
  165. Coordinator. It is clear from this picture that if you do not receive
  166. nodelist updates from others (and many of you don't), you have no use
  167. for three of MakeNL's data directories, and a good deal of MakeNL's
  168. complexity disappears.
  169.  
  170. The following paragraphs give recommended set-up and operating
  171. procedures for various types of coordinators.
  172.  
  173. 2.2 Operation at a Hub or simple Network
  174. ----------------------------------------
  175.  
  176. Here is where the nodelist update process begins. You have a small
  177. nodelist segment that you maintain. You do not receive any update files
  178. from anyone else. If you are a Network Coordinator and your network has
  179. Hubs, YOU maintain their data -- they just forward the mail. Yours is
  180. the easiest task, so your set-up for MakeNL is the simplest for you.
  181.  
  182. Figure 2 shows two variations of a MakeNL control file tailored to your
  183. needs. You may maintain your nodelist segment as a separate file, or
  184. you may embed your data in your MakeNL control file. (I prefer the
  185. latter method, but it is a matter of taste.) If you wish to maintain
  186. your data in a separate file, refer to the top half of Figure 2 (a
  187. facsimile of file HUB.CTL in your distribution package). If you want to
  188. keep your data in your control file, refer to the bottom half of Figure
  189. 2 (a facsimile of file NET-S.CTL in your distribution package). Refer to
  190. sections 5 and 6 as you study these files.
  191.  
  192. In either case, some minor editing of the control file you chose as
  193. indicated by comments in the file will have you nearly ready to go. When
  194. you have edited the control file to your liking, rename it MAKENL.CTL
  195. and move it to your mail server's home directory.
  196.  
  197.         +---------------------------------------------------------------+
  198.         | ; This variation uses a "master data file" for input and      |
  199.         | ; sends output to the same file name.                         |
  200.         |                                                               |
  201.         | make hub <100> <hub.100>  ; note explicit name of file        |
  202.         |                           ; simplifies processing             |
  203.         | outfile   <hub.100>       ; master and output files have SAME |
  204.         |                           ; name                              |
  205.         |                                                               |
  206.         | submit   <host's address> ; where you send updates, CRASH     |
  207.         |                           ; and/or HOLD optional              |
  208.         | netaddress <your address> ; your network address here         |
  209.         | messages   <directory>    ; path name to mail server's        |
  210.         |                           ; mail area                         |
  211.         |                                                               |
  212.         | ; No other options are needed.  Master directory and output   |
  213.         | ; directory will default to the current directory.            |
  214.         +---------------------------------------------------------------+
  215.         | ; This variation uses "internal" data at the bottom of the    |
  216.         | ; control file.                                               |
  217.         |                                                               |
  218.         | make network <nbr>        ; No "master data file"  input data |
  219.         |                           ; is below.                         |
  220.         | outfile <explicit name>   ; output file                       |
  221.         |                                                               |
  222.         | submit     <RC's address> ; where you send updates, CRASH     |
  223.         |                           ; and/or HOLD optional              |
  224.         | netaddress <your address> ; your network address here         |
  225.         | messages   <directory>    ; path name to mail server's        |
  226.         |                           ; mail area                         |
  227.         |                                                               |
  228.         | ; No other options are needed.  Master directory and output   |
  229.         | ; directory will default to the current directory.            |
  230.         |                                                               |
  231.         | data                                                          |
  232.         |                                                               |
  233.         | ; Your source data goes here.  The advantage of this over     |
  234.         | ; the version above is that MAKENL will not reformat or change|
  235.         | ; your source data, even if you have errors.                  |
  236.         +---------------------------------------------------------------+
  237.  
  238.  
  239.      Figure 2.  Sample control files for Hubs and small Nets
  240.  
  241. Since you don't have many files to keep track of, you will execute
  242. MakeNL from your mail server's home directory, and let your MASter
  243. directory default to this directory as well.
  244.  
  245. Set up an external event in your mail server to execute once a week at a
  246. day and time early enough to meet the deadline set by your coordinator,
  247. but not much earlier than that. The batch file
  248.  
  249. fragment corresponding to this external event will execute the
  250. statement:
  251.  
  252.      MAKENL
  253.  
  254. You will normally ignore MakeNL. It will take care of itself. When a
  255. change occurs in your data, edit your file using your favorite editor.
  256. After editing, execute the following DOS command:
  257.  
  258.      MAKENL /T
  259.  
  260. just to be sure there are no errors. If MakeNL reports an error, repeat
  261. the above steps until you've got it right.
  262.  
  263. If you have added new nodes to your list, and wish to inform them of
  264. their node number assignments immediately, you need to get your changes
  265. into your mail server's nodelist. MakeNL can perform the first step
  266. for you if you execute the DOS command:
  267.  
  268.      MAKENL /T /M[[=<path>\]<filename>]
  269.  
  270. The /M switch tells MakeNL to merge your data with an existing
  271. distribution nodelist into a temporary nodelist with an extension of
  272. ".999". To do this, MakeNL must find a distribution list not more than
  273. two weeks old. If /M is used by itself, MakeNL will look for
  274. NODELIST.htu (see section 3.2 on page 14 for a description of this
  275. notation) in the current directory. If either the directory or the stem
  276. generic name are different, they must be given as a value in the /M
  277. switch.
  278.  
  279.      Examples
  280.  
  281.           MAKENL /T /M               ; use NODELIST in current
  282.           MAKENL /T /M=\BBS\NODELIST ; use NODELIST in \BBS\
  283.           MAKENL /T /M=R10-LIST      ; use R10-LIST in current
  284.  
  285. When the external event triggers MakeNL in process mode (you are in bed,
  286. sound asleep) It will create a new copy of your master file, compare it
  287. to the old copy, and if nothing has changed, it will simply delete the
  288. new copy. If the file has changed, it will update your master file and
  289. create a submittal message to send it to your coordinator.
  290.  
  291. That's all there is to it! MakeNL will take care of getting your
  292. nodelist changes in on time if and when they occur.
  293.  
  294. 2.3 Operation at a large Network
  295. --------------------------------
  296.  
  297. Your life is a little more complicated than above. You assemble your
  298. submittal segment from your own file plus files received from your Hubs.
  299. Not only do you need to figure out this section. You need to understand
  300. the forgoing one too, so that you may render assistance to your Hubs
  301. if necessary. But cheer up, it's not too bad!
  302.  
  303.     +---------------------------------------------------------------+
  304.     |                                                               |
  305.     | make network <nbr>        ; No "master data file"  input data |
  306.     |                           ; is below.                         |
  307.     |                                                               |
  308.     | outfile <explicit name>   ; use generic name if output file   |
  309.     |                           ; is very large                     |
  310.     |                                                               |
  311.     | process    Wednesday      ; Set this day to meet deadline RC  |
  312.     |                           ; gives you                         |
  313.     |                                                               |
  314.     | master     <directory>    ; where master files reside         |
  315.     |                           ; (default - current)               |
  316.     | update     <directory>    ; where to save received files      |
  317.     |                           ; 'till processing                  |
  318.     | mailfiles  <directory>    ; where mail server places received |
  319.     |                           ; files                             |
  320.     | uploads    <directory>    ; where BBS places uploaded files   |
  321.     |                           ; (if needed)                       |
  322.     | badfiles   <directory>    ; optional "waste can" for files    |
  323.     |                           ; with fatal errors                 |
  324.     |                                                               |
  325.     | notify  receipt           ; notify both receipt and errors    |
  326.     |                           ; CRASH and/or HOLD optional        |
  327.     | submit     <RC's address> ; where you send updates, CRASH     |
  328.     |                           ; and/or HOLD optional              |
  329.     | netaddress <your address> ; your network address here         |
  330.     | messages   <directory>    ; path name to mail server's        |
  331.     |                           ; mail area                         |
  332.     |                                                               |
  333.     | ; No other options are needed.                                |
  334.     |                                                               |
  335.     | data                                                          |
  336.     |                                                               |
  337.     | ; Your source data goes here.                                 |
  338.     |                                                               |
  339.     | files                                                         |
  340.     |                                                               |
  341.     | Hub <nbr> <file name>     ; either generic or explicit file   |
  342.     |                           ; name, but must match convention   |
  343.     | Hub <nbr> <file name>     ; used by Hub.                      |
  344.     | Hub <nbr> <file name> <notification address>; if not "net/hub"|
  345.     | Hub <nbr> <file name>                                         |
  346.     | ;      etc.                                                   |
  347.     +---------------------------------------------------------------+
  348.  
  349.           Figure 3.  Sample control file for large Nets
  350.  
  351. Refer to the figure 3 (a facsimile of file NET-L.CTL in your
  352. distribution package).
  353.  
  354. The submittal file for most local networks will be less than five
  355. kilobytes in size. For files this small, there is no advantage in using
  356. a generic output file name (see section 3.2 on page 14). Your Regional
  357. Coordinator will probably tell you to use an explicit file name. There
  358. is certainly no reason for you to require your Hubs to use generic
  359. submittal file names. Notice that the OUTFile statement in figure 3
  360. indicates the use of an explicit name.
  361.  
  362. Rename NET-L.CTL to MAKENL.CTL and move it to the directory you wish to
  363. use as the current directory when you execute MakeNL. Usually, this will
  364. be your mail server's home directory. Edit the file as indicated in the
  365. comments in NET-L.CTL. If you only have two or three hubs, you may wish
  366. to comment out the MASter directory statement and let it default to the
  367. current directory.
  368.  
  369. Copy your own source data, the part you maintain which contains the
  370. "Host" statement into the control file between the DATa and FILes
  371. statements. Following the FILes statement, edit the HUB definition
  372. statements to match the Hubs who submit update files to you. Make sure
  373. the directories exist for all path names, that they are all distinct
  374. directories, and if you used relative path names, that they are relative
  375. to the directory from which you will execute MakeNL. Make sure the
  376. process statement names the right day so that you can meet your RC's
  377. submittal deadline. That should get your control file in order.
  378.  
  379. Move your current copies of your Hubs' segment files to the directory
  380. defined as MASter in your control file.
  381.  
  382. Set up an external event in your mail server to execute daily at a time
  383. early enough that, on your process day, you will meet the deadline set
  384. by your Regional Coordinator, but not much earlier than that. The batch
  385. file fragment corresponding to this external event will execute the
  386. statement:
  387.  
  388.      MAKENL
  389.  
  390.           or if you want to keep a log of activity
  391.  
  392.      MAKENL    >>MAKENL.LOG
  393.  
  394. MakeNL is now set up to pretty well take care of itself. On nonprocess
  395. days the external event will execute MakeNL in test mode. It will scan
  396. the UPLoads and MAIlfiles directories for received files, test them for
  397. errors, send out notifications and move the files to the UPDate
  398. directory.
  399.  
  400. On the process day MakeNL will be executed in process mode. It will scan
  401. the UPLoads and MAIlfiles directories for late files, the UPDate
  402. directory for files received earlier in the week, and the MASter
  403. directory for files not updated this week.
  404.  
  405.     +---------------------------------------------------------------+
  406.     | make region <nbr>         ; No "master data file"  input data |
  407.     |                           ; is below.                         |
  408.     |                                                               |
  409.     | outfile <generic name>    ; use generic name for output file  |
  410.     |                                                               |
  411.     | process    Thursday       ; Set this day to meet deadline ZC  |
  412.     |                           ; gives you                         |
  413.     |                                                               |
  414.     | arc 5      ; force ARC 6 or 7 to generate level 5 archives    |
  415.     |            ; DO NOT use ARC5 with ARC versions earlier than 6 |
  416.     |                                                               |
  417.     | master     <directory>    ; where master files reside         |
  418.     |                           ; (default - current)               |
  419.     | update     <directory>    ; where to save received files      |
  420.     |                           ; 'till processing                  |
  421.     | mailfiles  <directory>    ; where mail server places received |
  422.     |                           ; files                             |
  423.     | uploads    <directory>    ; where BBS places uploaded files   |
  424.     |                           ; (if needed)                       |
  425.     | badfiles   <directory>    ; optional "waste can" for files    |
  426.     |                           ; with fatal errors                 |
  427.     |                                                               |
  428.     | notify  errors CRASH      ; notify of errors (CRASH and/or    |
  429.     |                           ; HOLD optional)                    |
  430.     | notify  receipt           ; use either of these or both with  |
  431.     |                           ; different attributes.             |
  432.     |                                                               |
  433.     | submit     <ZC's address> ; where you send updates, CRASH     |
  434.     |                           ;  and/or HOLD optional             |
  435.     | netaddress <your address> ; your network address here         |
  436.     | messages   <directory>    ; path name to mail server's        |
  437.     |                           ; mail area                         |
  438.     |                                                               |
  439.     | data                                                          |
  440.     |                                                               |
  441.     | ; Your region source data goes here.                          |
  442.     |                                                               |
  443.     | files                                                         |
  444.     |                                                               |
  445.     | Net <nbr> <file name>     ; either generic or explicit file   |
  446.     | Net <nbr> <file name>     ; name, but must match convention   |
  447.     |                           ; used by Net.                      |
  448.     | Net <nbr> <file name> <notification address> ; if not "net/0" |
  449.     | Net <nbr> <file name>                                         |
  450.     +---------------------------------------------------------------+
  451.  
  452.          Figure 4.  Sample control file for Regional Coordinator
  453.  
  454. All files will be tested (again) for errors, and sent to your master
  455. output file. Your master copies of your Hubs' files will be updated as
  456. necessary.
  457.  
  458. If (and only if) this week's output is changed from last week's, your
  459. submittal file will be created in the current directory, and a "file
  460. attach" message will be generated to send it to your Regional
  461. Coordinator. All untouched by human hands!
  462.  
  463. When the data changes in your own nodelist segment, edit your data file
  464. (usually your control file) and execute the DOS command:
  465.  
  466.      MAKENL /T
  467.         or
  468.      MAKENL /T /M   ; see discussion in the previous section
  469.  
  470. Given a chance, MakeNL will do the right things at the right times. You
  471. worry about other things, like "Why can't Hub 999 send me a file without
  472. errors? I gotta get him to use MakeNL!"
  473.  
  474. 2.4 Operation by a Regional Coordinator
  475. ---------------------------------------
  476.  
  477. For the most part, section 2.3 applies to you too, but there are some
  478. differences.
  479.  
  480. Figure 4 is a facsimile of REGION.CTL, the prototype control file you
  481. will use.
  482.  
  483. You have enough files you will want to get them out of the clutter of
  484. your mail server's home directory. You will set up a separate MASter
  485. directory (see section 5.1 on page 20).
  486.  
  487. Your output file is probably large enough that you will want to take
  488. advantage of the benefits of using a generic output file name. In fact,
  489. your ZC may require it.
  490.  
  491. If your region file is larger than 10 kilobytes, MakeNL will create a
  492. compressed archive by executing the program ARC. If you have version 6
  493. or 7 of ARC and your ZC does not, you may want to force ARC to produce
  494. level-5 compatible archives.
  495.  
  496. Other than that, substitute Network for Hub, Region for Network and Zone
  497. for Region, and follow the procedures in 2.3 using the file REGION.CTL
  498. from your distribution package.
  499.  
  500. 2.5 Operation by a Zone Coordinator
  501. -----------------------------------
  502.  
  503. Life gets still more complicated, but is still manageable.
  504.  
  505. Preparing a zone segment is much the same as preparing the region
  506. segments of which it is made. Refer to sections 2.3 and 2.4 above,
  507. figure 5 (a facsimile of the file ZONE.CTL from your distribution
  508. package).
  509.  
  510.     +---------------------------------------------------------------+
  511.     | make zone <nbr>           ; No "master data file"  input data |
  512.     |                           ; is below.                         |
  513.     | outfile <explicit name>   ; use generic name for output file  |
  514.     |                           ; if very large                     |
  515.     | process    Thursday       ; Set this day to meet deadline ITC |
  516.     |                           ; gives you or Friday after         |
  517.     |                           ; cut-over to zone based nodelist   |
  518.     | arc 5      ; force ARC 6 or 7 to generate level 5 archives    |
  519.     |            ; DO NOT use ARC5 with ARC versions earlier than 6 |
  520.     |                                                               |
  521.     | master     <directory>    ; where master files reside         |
  522.     |                           ; (default - current)               |
  523.     | update     <directory>    ; where to save received files      |
  524.     |                           ; 'till processing                  |
  525.     | mailfiles  <directory>    ; where mail server places received |
  526.     |                           ; files                             |
  527.     | uploads    <directory>    ; where BBS places uploaded files   |
  528.     |                           ; (if needed)                       |
  529.     | badfiles   <directory>    ; optional "waste can" for files    |
  530.     |                           ; with fatal errors                 |
  531.     | notify  errors CRASH      ; notify of errors (CRASH optional) |
  532.     |                           ; Errors should not occur at this   |
  533.     |                           ; level, but. . .                   |
  534.     | submit     1:1/0          ; where you send updates, CRASH     |
  535.     |                           ; and/or HOLD optional              |
  536.     | netaddress <your address> ; your network address here         |
  537.     | messages   <directory>    ; path name to mail server's        |
  538.     |                           ; mail area                         |
  539.     |                                                               |
  540.     | data                                                          |
  541.     |                                                               |
  542.     | ; Your zone source data goes here.  Note that first           |
  543.     | ; non-comment statement must begin with the keyword "Zone"    |
  544.     | ; not "Region"                                                |
  545.     |                                                               |
  546.     | files                                                         |
  547.     |                                                               |
  548.     | Region <nbr> <generic name>                                   |
  549.     | Region <nbr> <generic name>                                   |
  550.     | Region <nbr> <generic name> <notification address> ; if not   |
  551.     |                                          ; "region/0"         |
  552.     | Region <nbr> <generic name>                                   |
  553.     | ;      etc.                                                   |
  554.     +---------------------------------------------------------------+
  555.  
  556.           Figure 5.  Sample control file for Zone Coordinators
  557.  
  558. On your process day, after generating your zone segment, you will
  559. execute MakeNL a second time with a special control file to create your
  560. zone's version of the distribution nodelist. Section
  561.  
  562.     +---------------------------------------------------------------+
  563.     | make composite                                                |
  564.     | name <network name>    ; eg. FidoNet or AlterNet or EGGnet    |
  565.     |                                                               |
  566.     | threshold  0 -1 ; force ARC -- no submittal difference file   |
  567.     |                                                               |
  568.     | arc 5      ; force ARC 6 or 7 to generate level 5 archives    |
  569.     |            ; DO NOT use ARC5 with ARC versions earlier than 6 |
  570.     |                                                               |
  571.     | outfile <generic name> ; recommended names:                   |
  572.     |                        ;  NODELIST - complete composite list  |
  573.     |                        ;  Zn-LIST  - zone distribution list   |
  574.     |                        ;  Rnn-LIST - region distribution list |
  575.     |                        ;  NnnnLIST - network distribution list|
  576.     |                                                               |
  577.     | outdiff <generic name> ; recommended names:                   |
  578.     |                        ;  NODEDIFF - complete composite list  |
  579.     |                        ;  Zn-DIFF  - zone distribution list   |
  580.     |                        ;  Rnn-DIFF - region distribution list |
  581.     |                        ;  NnnnDIFF - network distribution list|
  582.     |                                                               |
  583.     | master     <directory> ; same as OUTPath or MASter in         |
  584.     |                        ; previous run                         |
  585.     | outpath    .           ; put <name>.nnn in current directory  |
  586.     |                                                               |
  587.     | copyright <cpy-dist.txt>; if these three files are not path-  |
  588.     | prolog    <file name>   ; qualified, they are lodated in the  |
  589.     | epilog    <file name>   ; master directory                    |
  590.     |                                                               |
  591.     | files                                                         |
  592.     |                                                               |
  593.     | Network <nbr> <explicit name>  ; must match OUTFile name of   |
  594.     |                                ;  previous run                |
  595.     | ;   or                                                        |
  596.     | Region  <nbr> <generic name>   ; must match OUTFile name      |
  597.     | ;   or                                                        |
  598.     | Zone    <nbr> <generic name>   ; must match OUTFile name      |
  599.     | Zone    <nbr> <generic name>   ; file(s) received from        |
  600.     | ;  etc. . .                    ;  other ZC(s)                 |
  601.     +---------------------------------------------------------------+
  602.  
  603.           Figure 6,  Sample control file for distribution lists
  604.  
  605. (?) deals with distribution lists. The only difference for ZCs is that
  606. they will need to define the MAIlfiles path to pick up the files from
  607. the other ZCs.
  608.  
  609. There are several advantages to "zone specific" distribution NODELISTs.
  610. Prologue and epilogue comments may be "zone localized." The local zone
  611. may be placed first in the list, a significant convenience to the
  612. nodes in your zone. There will probably be quicker and better NODELIST
  613. availability.
  614.  
  615. 2.6 Putting together a Distribution Nodelist Segment
  616. ----------------------------------------------------
  617.  
  618. Distribution lists (see section 3.7 on page 15) may be prepared at any
  619. level except Hub, though it is not recommended below Region. In theory,
  620. a distribution list may be prepared at the same time your submittal file
  621. is prepared (MakeNL will support this method). In practice, it is better
  622. to make a distribution list in a separate run of MakeNL so that the
  623. distribution list may have a distinct file name, and different copyright
  624. notices and comments.
  625.  
  626. Refer to figure 6 (a facsimile of the file DISTRIB.CTL in your
  627. distribution package). Now that you thoroughly understand all of the
  628. forgoing (you do, don't you?), this file is fairly selfexplanatory.
  629. After you edit it to fit your specific needs, your MakeNL external event
  630. can use it to create your distribution files. If your MakeNL external
  631. event executes once a week, the batch file fragment is trivial:
  632.  
  633.      MAKENL
  634.      MAKENL  DISTRIB
  635.  
  636. If your MakeNL external event is a daily event then:
  637.  
  638.      MAKENL
  639.        IF ERRORLEVEL 3 GOTO LOOP
  640.      MAKENL  DISTRIB
  641.  
  642. Here you make use of the fact that a return code of 3, 4 or 5 means that
  643. MakeNL was executed in test mode. That means it was not your normal
  644. process day, so the batch file simply restarts your mail server after
  645. testing any received files. On process day you will "drop through" and
  646. create distribution files.
  647.  
  648. 3. Definitions
  649. --------------
  650.  
  651. Before we proceed further, we need to define some terms in use
  652. throughout this document.
  653.  
  654. 3.1 Composite Nodelist
  655. ----------------------
  656.  
  657. The composite nodelist is defined, for our purposes, as the complete
  658. list of all nodes in the network. It includes all Zones, all Regions and
  659. all local nets.
  660.  
  661. 3.2 Generic File Name
  662. ---------------------
  663.  
  664. To MakeNL, a generic file name is one which does not have a file type
  665. (or file extension). For example, NODELIST and FILES\ZONE1 are generic
  666. file names. MakeNL does special processing on files when you specify
  667. them by generic names. It creates file types for them based on
  668. publication date and contents of the files.
  669.  
  670. The publication date is translated into a 3-digit day-of-year,
  671. represented here as "htu" where "h" is the hundreds digit, "t" is the
  672. tens digit and "u" is the units digit of day-of-year. MakeNL recognizes
  673. and/or creates the following file types for files with generic names:
  674.  
  675. .htu - Master files, uncompressed submittal and distribution files, distribution difference files
  676.  
  677. .Atu - Archived submittal and distribution files, archived distribution difference files
  678.  
  679. .Dtu - Submittal difference files
  680.  
  681. .ADu - Archived submittal difference files
  682.  
  683. 3.3 Explicit File Name
  684. ----------------------
  685.  
  686. An explicit file name, on the other hand, has a specified file type.
  687. PROLOG.TXT is an example. When data files are specified this way, MakeNL
  688. does only limited processing on them, specifically checking them for
  689. errors and copying them from directory to directory. It makes no attempt
  690. to deal with archives or difference files.
  691.  
  692. 3.4 Archive File
  693. ----------------
  694.  
  695. An archive file is a compressed file created by the ARC program from
  696. System Enhancement Associates. You must have a copy of this program in
  697. your current directory or on your DOS path (see "PATH" command in your
  698. DOS manual) to make use of this capability of MakeNL.
  699.  
  700. The ARC program, version 6 and later, has the ability to create archives
  701. compatible with earlier versions of ARC. MakeNL provides a
  702. configuration verb to permit the use of this capability. (See section
  703. 6.3.4 on page 30)
  704.  
  705. 3.5 Difference File
  706. -------------------
  707.  
  708. A difference file is a file which defines the differences between an
  709. older version of a file and a newly created one. In fact, the difference
  710. file (sometimes called a "diff" file from the NODEDIFF naming
  711. convention) contains a simple editing language. With a copy of the old
  712. file and the difference file, MakeNL can accurately recreate the new
  713. version of file.
  714.  
  715. 3.6 Submittal File
  716. ------------------
  717.  
  718. A submittal file is one which you will send forward up the ladder to be
  719. merged with other files from your level. A Hub sends his submittal file
  720. to his network host. The host sends his submittal file to his regional
  721. coordinator, etc.. MakeNL will create your submittal file for you each
  722. week, and can even create the "file attach" message to send the file
  723. over the network.
  724.  
  725. 3.7 Distribution File
  726. ---------------------
  727.  
  728. Distribution files, on the other hand go the other way. They are meant
  729. for distribution down the ladder. NODELIST.htu and NODEDIFF.htu are well
  730. known examples, but let's say you are a regional coordinator, and some
  731. of the nodes in your region have no interest in communicating with nodes
  732. outside the region. To conserve valuable disk space, they might wish
  733. to use a nodelist which only contains your region. MakeNL can create
  734. such files. They differ from submittal files only in the naming
  735. conventions they observe.
  736.  
  737. 3.8 Absolute Directory Path
  738. ---------------------------
  739.  
  740. An absolute path name is one specified from the disk's root directory.
  741. It will always begin with a back-slant (\) or a drive specifier followed
  742. by a back-slant (C:\) C:\BBS and \MASTER are examples of absolute path
  743. names.
  744.  
  745. 3.9 Relative Directory Path
  746. ---------------------------
  747.  
  748. A relative path name is one specified as a subdirectory from the current
  749. working directory, without specifying what that is. It never begins with
  750. a back-slant. FILES\RECEIVED and D:OPUS are examples of relative path
  751. names. In the latter case the path is relative to the current directory
  752. of the D drive.
  753.  
  754. See your DOS manual for additional information on path names.
  755.  
  756. 3.10 Publication Date
  757. ---------------------
  758.  
  759. The "publication date" is the date of the next publication of the
  760. composite nodelist. It is always the same day of the week. It is usually
  761. a Friday, but can be any day of the week.
  762.  
  763. The publication date is specifically, the next occurring publication day
  764. (today, if this is your publication day).
  765.  
  766. NOTE: Most FidoNet compatible networks publish their nodelist on Friday,
  767. but a few publish on other days. A special verb is provided to control
  768. publication day. (See section 6.1.3 on page 22.)
  769.  
  770. 4. MakeNL Command Line
  771. ----------------------
  772.  
  773. MakeNL is invoked with the following command line:
  774.  
  775.      MakeNL [<control_file_name>] [/PROCESS | /TEST]
  776.           [/MERGE[=<list_name>] [/NAME=<composite_name>]
  777.  
  778. The switch names may be spelled out (/TEST), or abbreviated to as few as
  779. one letter (/T).
  780.  
  781. 4.1 Control file name
  782. ---------------------
  783.  
  784. By default, MakeNL expects to find a control file named MAKENL.CTL in
  785. the current directory. This can be overridden by placing the name
  786. (optionally qualified with a path) on the command line. The control
  787. file may have any file extension, but if none is given .CTL is assumed.
  788. For example:
  789.  
  790.      MakeNL ZONE1
  791.  
  792. causes MakeNL to use ZONE1.CTL in the current directory, and:
  793.  
  794.      MakeNL MASTER\NET100.CFG
  795.  
  796. causes MakeNL to use NET100.CFG in the subdirectory named MASTER as its
  797. control file.
  798.  
  799. MakeNL must have a control file and will abort if it can find none. See
  800. section 6 on page 21 for the contents of the control file.
  801.  
  802. In operation, MakeNL writes a number of progress messages to "standard
  803. output." By default, DOS sends these messages to your screen, but you
  804. may redirect them to a file to retain a log of MakeNL's activity:
  805.  
  806.      MAKENL   >MAKENL.LOG
  807.  
  808.      MAKENL  >>MAKENL.LOG
  809.  
  810. In the first case, the log file is recreated fresh each time MakeNL is
  811. executed. In the second case, MakeNL appends the results of each
  812. execution to the end of the log file.
  813.  
  814. 4.2 /TEST switch
  815. ----------------
  816.  
  817. The optional "/TEST" switch, if given, will force MakeNL to operate in
  818. test mode, even on the normal process day.
  819.  
  820. 4.3 /PROCESS switch
  821. -------------------
  822.  
  823. The optional "/PROCESS" switch, if given, will force MakeNL to operate
  824. in process mode, overriding the effect of a PROcess statement in the
  825. control file.
  826.  
  827. 4.4 /MERGE switch
  828. -----------------
  829.  
  830. The optional "/MERGE" switch, if given, will cause MakeNL to merge your
  831. updated nodelist segment with an existing distribution nodelist to
  832. produce a temporary nodelist containing your updates.
  833.  
  834. If <list_name> is given, it must have the form:
  835.  
  836.      /M=[path\]<generic_name>
  837.  
  838. See discussion of MERge control file verb on page 24 for more details.
  839.  
  840. 4.5 /NAME=<network_name>
  841. ------------------------
  842.  
  843. The optional /NAME switch is a specialized cosmetic switch. When you
  844. MAKe a composite list (see section 6.1.1 on page 21), the generated list
  845. begins, by default, with the line " Nodelist for. . ."
  846.  
  847. The /NAME switch may be used to insert a network name in front of the
  848. first word in that line. If the specified replacement name contains
  849. spaces, the entire parameter must be enclosed in quotes.
  850.  
  851. For example, the coordinator for a network operated by the US Parks
  852. Service might use:
  853.  
  854.      MAKENL "/N=Parks Service"
  855.  
  856. The first line of his generated list would read "Parks Service Nodelist
  857. for. . ." Note that to the right of the equal sign case is significant.
  858. Any capitalization present will be preserved.
  859.  
  860. A FidoNet ZC might use:
  861.  
  862.      MAKNL /N=FidoNet
  863.  
  864. If the MAKe statement in your control file (see page 21) is not "MAKE
  865. COMPOSITE" the /NAME switch will have no effect.
  866.  
  867. See also the NAMe verb in section (?), page (?).
  868.  
  869. 4.6 Error return codes
  870. ----------------------
  871.  
  872. MakeNL terminates with ERRORLEVEL (see your DOS manual) set to one of
  873. the following values:
  874.  
  875.      0  = Process mode - no errors encountered
  876.      1  = Process mode - no fatal errors encountered
  877.      2  = Process mode - one or more fatal errors encountered
  878.      3  = Test mode - no errors encountered
  879.      4  = Test mode - no fatal errors encountered
  880.      5  = Test mode - one or more fatal errors encountered
  881.    254  = MakeNL aborted - I/O error
  882.    255  = MakeNL aborted - Control file error
  883.  
  884. 5. MakeNL Directories
  885. ---------------------
  886.  
  887. MakeNL uses several disk directories in the performance of its tasks.
  888. Some are required -- others are needed only to make use of special
  889. features. In this text, MakeNL's directories will be referred to by the
  890. following names.
  891.  
  892. 5.1 Master Directory
  893. --------------------
  894.  
  895. The master directory is where MakeNL stores all of its master files.
  896. Received files will migrate to this directory. MakeNL requires a master
  897. directory.
  898.  
  899. 5.2 Update Directory
  900. --------------------
  901.  
  902. The update directory provides interim storage for received files. It is
  903. needed only if you process files received from others, and notify them
  904. on receipt or when errors occur. It prevents multiple notification.
  905.  
  906. 5.3 Mailfiles Directory
  907. -----------------------
  908.  
  909. The mailfiles directory is the directory in which your mail server
  910. receives files. It is required if you receive nodelist segments from
  911. others via the network.
  912.  
  913. 5.4 Upload Directory
  914. --------------------
  915.  
  916. The upload directory is the directory in which your BBS stores uploaded
  917. files. It is required if others upload nodelist segments to your BBS.
  918.  
  919. 5.5 Other Directories
  920. ---------------------
  921.  
  922. Depending on the options selected in the control file, MakeNL may need
  923. access to other directories.
  924.  
  925. If MakeNL will be generating network messages it must be told in which
  926. directory your mail server expects to find these messages.
  927.  
  928. By default, MakeNL places the master copy of its output file in the
  929. directory with your other master files. You can, however, define another
  930. directory to receive output files.
  931.  
  932. When a received file has a "fatal error," one which renders the entire
  933. file unusable, MakeNL must get it out of the way to prevent further
  934. attempts to process it. By default, it simply deletes the offending
  935. file, but you may define a "bad files" directory and MakeNL will move
  936. such files there.
  937.  
  938. The "current directory" when MakeNL is invoked is the default directory
  939. for MakeNL's control file.
  940.  
  941. 6. MakeNL Control File
  942. ----------------------
  943.  
  944. MakeNL requires a control file to define its operating parameters. By
  945. default, this file is named MAKENL.CTL, but you may specify another
  946. control file name on the command line.
  947.  
  948. The contents of the control file is a series of statements which tell
  949. MakeNL what it is to do, and how it is to do it. Each statement begins
  950. with a verb, and may have as many as three additional arguments.
  951.  
  952. MakeNL is not sensitive to "case" of characters in the control file.
  953. Upper, lower or mixed case may be used. In the discussion of the control
  954. verbs below, upper case is used to indicate the minimum abbreviation
  955. required.
  956.  
  957. The definitions of the control file verbs are grouped by type for
  958. clarity. Except for DATA and FILES, they may appear in your control
  959. file in any order.
  960.  
  961. 6.1 Control statements
  962. ----------------------
  963.  
  964. The following statements control the overall operation of MakeNL.
  965.  
  966. 6.1.1 MAKe <segment_type> [<number> [<source_file>]]
  967. ----------------------------------------------------
  968.  
  969. A MAKe statement is required in every control file.  It tells MakeNL
  970. what type of nodelist segment it is to produce and what kind of input to
  971. expect.
  972.  
  973. <segment_type> is one of HUB, NETwork, REGion, ZONe or COMposite.
  974.  
  975. <number> is shown above as "optional." This isn't strictly correct.  For
  976. all segment types except COMposite, it is required. It must NOT be
  977. used for COMposite. <number> is the network address number associated
  978. with the segment being made.
  979.  
  980. Even if you are a Zone Coordinator, there is a part of the nodelist
  981. segment you prepare which you, yourself maintain -- the list of nodes
  982. associated directly with your segment heading.  In the case of a ZONe
  983. segment type, this includes the "zone gate" nodes. In the case of an RC
  984. it is the list of "independent" nodes in your region. There are two ways
  985. to input your sub-segment into MakeNL. One is through the use of the
  986. DATa statement (see section (?) on page (?). The other is by specifying
  987. a source file in the MAKe statement.
  988.  
  989. <source_file> must be an explicit file name without a path qualifier.
  990. The named file must exist in the directory named as your master
  991. directory.  The first non-comment statement in the file must match the
  992. MAKe statement in <segment_type> and <number>.
  993.  
  994. Examples:
  995.  
  996.   MAKE COMPOSITE      ; make a complete nodelist
  997.  
  998.   MAKE NET 100 MASTER.DAT ; input data from "master"
  999.  
  1000.   MAKE REGION 10      ; use DATA statement
  1001.  
  1002. 6.1.2 NAMe <network_name>
  1003. -------------------------
  1004.  
  1005. When you MAKe a composite list (see section 6.1.1), the generated list
  1006. begins, by default, with the line " Nodelist for. . ."
  1007.  
  1008. With the NAMe verb, you can define a <network_name> that will be
  1009. inserted in front of the first word of that line. <network_name> is the
  1010. only parameter in your control file that is case-sensitive. It will
  1011. appear in the list exactly the way it appears in your control file. This
  1012. verb is almost identical to the /NAME switch (see section 4.5 on page
  1013. 18).
  1014.  
  1015. There are two restrictions imposed by the NAMe verb that do not apply to
  1016. the /NAME switch. <network_name> can be no more than 15 characters long,
  1017. and can not contain any spaces or tabs.
  1018.  
  1019. If you use both the NAMe verb in the control file and the /NAME switch
  1020. on the command line, the command line switch will override.
  1021.  
  1022. 6.1.3 PUBlish <day_of_week>
  1023. ---------------------------
  1024.  
  1025. Most FidoNet compatible networks publish their nodelists each Friday.
  1026. For that reason, MakeNL assumes a Friday publication day.
  1027.  
  1028. As noted earlier, the file extensions MakeNL computes for generic file
  1029. names are determined by publication date, which is defined as the next
  1030. occurrence of your publication day, expressed as day of year. Obviously,
  1031. your next publication date if different if you publish on Saturday, than
  1032. if you publish on Friday.
  1033.  
  1034. The PUBlish statement let's you inform MakeNL that you publish your
  1035. list on some day other than Friday, and he will adjust his generic file
  1036. name extensions accordingly. The <day_of_week> may be a full day name,
  1037. or may be abbreviated to as few as three characters.
  1038.  
  1039. Example:
  1040.  
  1041.   PUBLISH SUNDAY      ; sets file extensions according to
  1042.               ; Sunday's date
  1043.  
  1044. CAUTION: Some nodelist processors may fail to operate correctly with
  1045. file name extensions keyed to a day of week other than Friday. For
  1046. example, versions of EditNL earlier than 4.20 will never find such
  1047. files. On the other hand, XLATLIST handles all such extensions, but
  1048. has a problem with the first list of a new year if you don't delete the
  1049. list(s) from the previous year first.
  1050.  
  1051. 6.1.4 PROcess <day_of_week>
  1052. ---------------------------
  1053.  
  1054. MakeNL has two fundamental modes of operation, "test" and "process."
  1055.  
  1056. In test mode, it scans input data and checks it for errors and it moves
  1057. received update files to the update directory. Unless the MERge
  1058. statement or the /M command line switch is used, it does not produce any
  1059. output.
  1060.  
  1061. In process mode MakeNL produces an updated master file for your nodelist
  1062. segment and any required submittal or distribution files. Normally you
  1063. will do this once each week.
  1064.  
  1065. If no PROcess statement is present, MakeNL will operate in process mode
  1066. unless the /T command line switch is used. If the PROcess statement is
  1067. present, it controls MakeNL's mode of operation. Except on the day
  1068. specified in this statement, MakeNL will operate in test mode. When
  1069. MakeNL is executed on the defined process day, it operates in process
  1070. mode.
  1071.  
  1072. This statement is most useful to coordinators who receive update files
  1073. from others. It permits them to operate MakeNL daily in an "external
  1074. event" of their mail server. It error checks received files and sends
  1075. back notification on a daily basis as files are received, but only on
  1076. the appropriate day does it create a submittal file and forward it up
  1077. the ladder.
  1078.  
  1079. The <day_of_week> may be a full day name, or may be abbreviated to as
  1080. few as three characters. It should be chosen so that you may meet the
  1081. submittal deadline set by the next higher coordinator.
  1082.  
  1083. Example:
  1084.  
  1085.    PROCESS THURSDAY
  1086.  
  1087. 6.1.5 MERge [<nodelist_name>]
  1088. -----------------------------
  1089.  
  1090. When you add new nodes (or nets, as the case may be) to your list, you
  1091. might like to notify them immediately that their applications have been
  1092. acted upon. This is complicated by the fact that your mail server needs
  1093. to know about these new nodes (or nets), and that information comes from
  1094. the distribution nodelist. It may be several days before you receive
  1095. the updated version of the distribution nodelist containing the new
  1096. listing.
  1097.  
  1098. The MERge statement tells MakeNL to merge your updated segment into an
  1099. existing distribution nodelist to create a temporary nodelist your
  1100. mail server can use. This action will occur even if MakeNL is operating
  1101. in test mode.
  1102.  
  1103. By default, MakeNL will search for NODELIST.htu not more than two weeks
  1104. old in the current directory, create a temporary list named
  1105. NODELIST.999, copy from the distribution list to the temporary list
  1106. until it finds your segment in the distribution list, generate an
  1107. updated version of your segment in the temporary list and finally, copy
  1108. the remainder of the distribution list to the temporary list.
  1109.  
  1110. In order to find your segment in the distribution list, MakeNL uses
  1111. information from the MAKe and NETaddress statements in your control
  1112. file.
  1113.  
  1114. If you are MAKing a HUB, NETaddress must provide the net number. If no
  1115. NETaddress is given, the MERge command will be canceled.
  1116.  
  1117. If you are MAKing anything other than a ZONE, and if the distribution
  1118. list is a zone-based list, the zone number from the NETaddress command
  1119. is used to place your segment in the correct zone. If no zone number is
  1120. given, MakeNL assumes that your segment goes in the first zone it
  1121. encounters in the distribution list.
  1122.  
  1123. If present, <nodelist_name> must be a generic file name, but may be
  1124. qualified by a path name. It overrides the name and location of the
  1125. distribution list, but the rest of the actions are the same. The
  1126. temporary list is placed in the same directory as the distribution list
  1127. being merged.
  1128.  
  1129. If the MERge statement is used in your control file, it will ALWAYS be
  1130. executed. If you prefer to "merge on demand" use the /M command line
  1131. switch instead. It is exactly equivalent to the MERge statement. (See
  1132. section 4.4 on page 18.)
  1133.  
  1134. Example:
  1135.  
  1136.   MERGE \BBS\NODELIST
  1137.  
  1138. 6.1.6 PRIvate <disposition>
  1139. ---------------------------
  1140.  
  1141. Private nodes (identified by the PVT keyword in the nodelist) are not
  1142. universally permitted by all networks. In a commercial network, for
  1143. example, a node with no phone number listing is not particularly
  1144. useful. By default, MakeNL will accept these node entries contrary to a
  1145. network coordinator's intentions.
  1146.  
  1147. The PRIvate statement permits you to define other dispositions for
  1148. such entries. <disposition> must be one of OK, NONE, ZONE, REGION, HOST
  1149. or HUB.
  1150.  
  1151. "PRIvate OK" is equivalent to the default action -- private nodes are
  1152. permitted (but, of course, only within nets).
  1153.  
  1154. NONE says they are not permitted. The PVT keyword will be treated as an
  1155. error, with a note that "Private nodes are not permitted in this
  1156. network."
  1157.  
  1158. If <disposition> is any of the hierarchical keywords, a private node
  1159. will be transformed into an "open" node by removing the PVT keyword
  1160. and substituting a known phone number in the phone number field. The
  1161. number used is that of the nearest node at least as high in the
  1162. hierarchy as the keyword specified. For instance, if "PRIvate HOST" is
  1163. given, a private node will become a normal node with the phone number of
  1164. the most recently encountered Host, Region or Zone statement. Even if
  1165. the previous entry were a Hub, his phone number would not be used
  1166. unless "PRIvate HUB" had been given.
  1167.  
  1168. For fairly obvious reasons, if you are MAKing a NETwork and enter the
  1169. statement "PRIvate ZONE," MakeNL will abort with a control file error.
  1170. It must be able to find at least one phone number to make the
  1171. substitution, and your file can't have any zones or regions in it! The
  1172. hierarchical level of <disposition> must be equal to or lower than the
  1173. level you are MAKing. In the case you MAKe COMPosite, MakeNL will take
  1174. your word for anything your PRIvate statement tells it, but if no
  1175. matching phone number has been found before it encounters a private
  1176. node, the private node will be treated as though the statement were
  1177. "PRIvate NONE," and will generate an error.
  1178.  
  1179. 6.1.7 MINphone <minimum_parts>
  1180. ------------------------------
  1181.  
  1182. The sixth field of a nodelist entry is the phone number field. MakeNL
  1183. insures that it meets certain minimum standards. It must begin and end
  1184. with a digit. It must contain only digits and hyphens. There must not be
  1185. two hyphens in a row.
  1186.  
  1187. Phone numbers usually consist of several parts, separated by hyphens.
  1188. For example, a number might have a country code, and area code, an
  1189. exchange code and a line number. To MakeNL, a phone number is a phone
  1190. number. It attaches no special meaning the number's various parts.
  1191.  
  1192. Some nodelist processing programs do attach meaning to the parts of a
  1193. phone number, and complain if they are not there! For this reason MakeNL
  1194. will enforce an additional constraint, if told to do so. It will
  1195. insure that every phone number has a certain minimum number of parts.
  1196.  
  1197. Example:
  1198.  
  1199.   MINPHONE 4
  1200.  
  1201. This statement in a control file instructs MakeNL to reject any entry
  1202. with a phone number that does not have at least four parts. The number
  1203. "123-4567" would not be valid and would cause an error message to be
  1204. issued.
  1205.  
  1206. In a large hierarchical network of international scope, the MINphone
  1207. verb should only be used at the lower levels. Hubs and Hosts may expect
  1208. all phone numbers to fit some standard format. Except in North America,
  1209. regional coordinators are likely to find variability in phone number
  1210. format from country to country. A zone coordinator will certainly
  1211. encounter such variability. Attempts to enforce a standard number of
  1212. parts in a phone number at these levels will not be very successful.
  1213.  
  1214. This is not a serious constraint on the use of MINphone. The files
  1215. received by RCs and ZCs have already been processed at least once by
  1216. MakeNL at a lower level where format can be enforced. There should be no
  1217. need to do it again.
  1218.  
  1219. 6.1.8 BAUdrate <valid_baud_rates>
  1220. ---------------------------------
  1221.  
  1222. The seventh field of a nodelist entry is the baud rate field. MakeNL
  1223. checks the value in this field against a table of valid baud rates.
  1224. Experience has shown this to be necessary. Certain types of errors can
  1225. cause a part of the phone number to appear to be in the baud rate field.
  1226. Without a validity check, these errors could go undetected. By
  1227. default, the valid rates are 300, 1200, 2400, 4800, and 9600.
  1228.  
  1229. To accommodate future growth, the "valid baud rate" table is
  1230. configurable through the use of the BAUdrate verb. The
  1231. <valid_baud_rates> parameter is a list of up to twelve (12) valid baud
  1232. rates (numeric strings) separated by commas. It may contain no spaces of
  1233. tabs. It must be the complete list, and will replace MakeNL's internal
  1234. table.
  1235.  
  1236. For example:
  1237.  
  1238.   BAUDRATE 1200,2400,4800,9600
  1239.  
  1240. This statement would effectively eliminate 300 baud nodes from your
  1241. list, while:
  1242.  
  1243.   BAUDRATE 300,1200,2400,4800,9600,14400
  1244.  
  1245. would permit nodes to use 14400 baud in their entries. A caveat in this
  1246. case. Any new values must be authorized from the top down. If you used
  1247. this statement and submitted a list with 14400 baud nodes, the first
  1248. coordinator who did not have a similar BAUdrate statement would reject
  1249. those nodes as having invalid baud rates.
  1250.  
  1251. In general, you can be more restrictive than the coordinator(s) above
  1252. you, but you cannot be more liberal!
  1253.  
  1254. 6.2 Defining nodelist segment directories
  1255. -----------------------------------------
  1256.  
  1257. MakeNL uses several directories for various purposes for storage of
  1258. nodelist segment data. The following statements are used to define to
  1259. MakeNL where these directories are located. They all have the same
  1260. format:
  1261.  
  1262.   <verb> <directory_path_name>
  1263.  
  1264. <verb> is one of MASter, UPDate, MAIlfiles, UPLoads or BADfiles as
  1265. defined below.
  1266.  
  1267. <directory_path_name> is a relative or absolute directory path name,
  1268. with or without a disk specifier.
  1269.  
  1270. 6.2.1 MASter <directory_path_name>
  1271. ----------------------------------
  1272.  
  1273. This is the directory in which MakeNL keeps all its "master" files. This
  1274. includes the master copy of your submittal file, master copies of
  1275. nodelist segments received from others, your input source file, if used,
  1276. and the three "comments" text files, if used. In addition, for each
  1277. segment given a generic name, week-old copies are kept here and used
  1278. create and/or apply difference files.
  1279.  
  1280. MakeNL always uses a master directory. If this statement is absent, the
  1281. current directory is used as the master directory.
  1282.  
  1283. 6.2.2 UPLoads <directory_path_name>
  1284. -----------------------------------
  1285.  
  1286. If others upload update files to your BBS, this statement tells MakeNL
  1287. where to look for them. Only one upload directory may be named. If
  1288. your BBS supports more than one, you need to inform your submitters how
  1289. to upload their updates so that they wind up in the right directory.
  1290.  
  1291. If you don't receive update files via upload, omit this statement and
  1292. MakeNL will ignore it.
  1293.  
  1294. 6.2.3 MAIlfiles <directory_path_name>
  1295. -------------------------------------
  1296.  
  1297. If you receive update files from others via network mail, this statement
  1298. tells MakeNL where your file server will put the files.
  1299.  
  1300. If you don't receive update files via network mail, omit this statement
  1301. and MakeNL will ignore it.
  1302.  
  1303. 6.2.4 UPDate <directory_path_name>
  1304. ----------------------------------
  1305.  
  1306. If you receive update files from others by any means, this statement
  1307. defines a temporary holding directory for them. When MakeNL is operated
  1308. in test mode, files it finds in the UPLoads or MAIlfiles directories are
  1309. moved to this directory. If you use notification (and you should use
  1310. at least error notification), MakeNL will generate a notification
  1311. message each time it finds a submitter's update file in one of those
  1312. directories. Moving received files to the update directory prevents
  1313. multiple notification.
  1314.  
  1315. If received files were moved to the master directory in test mode, and
  1316. if a subsequent difference file were received from one of your
  1317. submitters, you might have already lost the file MakeNL needs to apply
  1318. the difference file against!
  1319.  
  1320. When MakeNL operates in process mode, it moves files found in any of
  1321. these directories to the master directory as part of its update process.
  1322.  
  1323. If you don't receive update files from others, omit this statement and
  1324. MakeNL will ignore it.
  1325.  
  1326. 6.2.5 BADfiles <directory_path_name>
  1327. ------------------------------------
  1328.  
  1329. When a received file generates a fatal error, MakeNL refuses to process
  1330. it further. By default, it simply deletes the offending file, but if
  1331. this directory is defined, MakeNL will move files with fatal errors
  1332. here. This gives you a chance (if you feel so inclined) to edit the file
  1333. to correct the error, then move it back to say the MAIlfiles directory
  1334. and process it again.
  1335.  
  1336. If you don't receive update files from others or don't want to correct
  1337. their errors for them, omit this statement and MakeNL will ignore it.
  1338.  
  1339. 6.3 Defining output
  1340. -------------------
  1341.  
  1342. The following statements tell MakeNL what output to generate and how to
  1343. generate it. They only have effect when MakeNL operates in process mode.
  1344.  
  1345. 6.3.1 OUTFile <filename>
  1346. ------------------------
  1347.  
  1348. This statement is required in your control file. It defines the name of
  1349. your master and submittal files. These are the same file unless MakeNL
  1350. creates an archive or a difference file. These files are placed in your
  1351. OUTFile directory, or if it is not defined, your MASter directory.
  1352.  
  1353. <filename> may be either explicit or generic, but the choice carries
  1354. some implications with it. Using an explicit output file name inhibits
  1355. some of MakeNL's features, but if your output file is small they may not
  1356. be of interest to you. Specifically, MakeNL will create neither an
  1357. archive file nor a difference file for explicitly named files. The
  1358. reason is that to do so, MakeNL must have the freedom to manipulate file
  1359. extensions, but it cannot do that if you give it an explicit file
  1360. extension.
  1361.  
  1362. 6.3.2 OUTPath <directory_path_name>
  1363. -----------------------------------
  1364.  
  1365. By default, MakeNL keeps all of its output (except a merge file) in the
  1366. MASter directory. This includes the output master file, the submittal
  1367. file (if different), and distribution files. The OUTPath statement, if
  1368. present, tells MakeNL to keep its output in a different directory.
  1369.  
  1370. 6.3.3 THReshold <arc_size> [<diff_size>]
  1371. ----------------------------------------
  1372.  
  1373. When you use a generic output file name, MakeNL will do its best to
  1374. insure that your submittal file is small enough to send to your
  1375. coordinator in a one-minute phone call. It has two ways to compress a
  1376. file.
  1377.  
  1378. First, it can create an archive file, using the ARC program. This will
  1379. typically achieve about 40% reduction in size.
  1380.  
  1381. Second, it can create a difference file. This is a file which contains
  1382. only the differences between your new output file and your previous one.
  1383. This technique can achieve dramatic file size reduction, but is not as
  1384. safe as the former. It assumes that your coordinator has a copy of your
  1385. previous file (usually a safe assumption). With it and the new
  1386. difference file he can reconstruct your new output file.
  1387.  
  1388. At 2400 baud, you can transmit a file about 10000 characters long in a
  1389. one-minute phone call. If an archive file is at least 40% smaller than
  1390. its uncompressed version, a file of up to 16666 characters can be
  1391. archived and transmitted in a minute. These are the two default
  1392. thresholds MakeNL uses to determine what to do with your submittal file.
  1393. The THReshold statement can override these defaults.
  1394.  
  1395. If your submittal file is larger than <arc_size> (in bytes), MakeNL will
  1396. use ARC to create an archive of it, and submit the archive file.
  1397.  
  1398. If your submittal file is greater than <diff_size>, MakeNL will create a
  1399. difference file and submit it. If a difference file is still larger
  1400. than <arc_size>, MakeNL will create an archive of the difference file
  1401. and submit that, but that is the best it can do.
  1402.  
  1403. If <diff_size> is given, it must be greater than or equal to <arc_size>.
  1404. If <diff_size> is not given it is calculated by MakeNL as 5/3 *
  1405. <arc_size>.
  1406.  
  1407. Examples:
  1408.  
  1409.   THRESHOLD 5000 ; recommended value for 1200 baud
  1410.  
  1411.   THR 0          ; always create an archived diff file
  1412.  
  1413.   THR 0 -1       ; always archive -- no diff
  1414.  
  1415.   THR -1 -1      ; turn compression off
  1416.  
  1417. 6.3.4 ARC <n>
  1418. -------------
  1419.  
  1420. MakeNL creates compressed archive files by executing the program ARC by
  1421. System Enhancement Associates.
  1422.  
  1423. ARC will, by default, produce the maximum compression of which it is
  1424. capable. This may not always be desirable. If you have version 6 or 7 of
  1425. ARC, and the recipient of your archived file does not, he will be unable
  1426. to unpack your archives.
  1427.  
  1428. The ARC <n> verb will force these versions to create level-5 or level-6
  1429. compatible archives, thus insuring compatibility. The parameter <n> must
  1430. be either "5" or "6."
  1431.  
  1432. Do not use ARC <n> if you have ARC version 5 or earlier. It will cause
  1433. errors, as will the use of "ARC 6" with version 6! The compatibility
  1434. level must always be LOWER that your version level. 
  1435.  
  1436. 6.3.5 OUTDiff <generic_filename>
  1437. --------------------------------
  1438.  
  1439. MakeNL's primary mission is to gather segments of the nodelist and
  1440. assemble larger segments for submittal to the next higher coordinator,
  1441. until finally all the segments have been assembled and the result is the
  1442. network's distribution nodelist. However, if desired, distribution lists
  1443. may be created at any step along the way.
  1444.  
  1445. Distribution lists are actually created in pairs. A familiar pair is
  1446. NODELIST.htu and NODEDIFF.htu, the files which define the Public FidoNet
  1447. Network.
  1448.  
  1449. There is no reason why a node must use the full network list if a
  1450. smaller list will suit his needs. Indeed, programs such as PRUNE are
  1451. based on this philosophy.
  1452.  
  1453. When the OUTDiff statement appears in your control file, MakeNL will
  1454. produce a pair of distribution files. OUTFile and OUTDiff must specify
  1455. distinct generic names, and they will become the "stem" names of your
  1456. distribution files.
  1457.  
  1458. Distribution files differ from submittal files in the naming conventions
  1459. used to determine file extensions. For example, assume:
  1460.  
  1461.   OUTFILE REGION10
  1462.   OUTDIFF R10-DIFF
  1463.  
  1464. Then the following table defines the file names of generated submittal
  1465. and distribution files:
  1466.  
  1467.   Compression         Submittal           Distribution
  1468.  
  1469.   None                REGION10.htu        REGION10.htu
  1470.   Archive             REGION10.Atu        REGION10.Atu
  1471.   Difference          REGION10.Dtu        R10-DIFF.htu
  1472.   Both                REGION10.ADu        R10-DIFF.Atu
  1473.  
  1474. Note that the full list and its archive bear the same name in both
  1475. columns. Indeed, they are the same files. But submittal files use the
  1476. same filename stem for all types of files, while distribution difference
  1477. files have unique filename stems. The reason for this is to support
  1478. the traditional names NODELIST and NODEDIFF as painlessly as possible.
  1479.  
  1480. Distribution files, as with submittal files, are placed in the OUTPath
  1481. directory. Once created, these files are ignored by MakeNL, unless
  1482. explicitly told to clean up its old files (see the CLEanup command
  1483. below).
  1484.  
  1485. The following control file fragment would create NODELIST distribution
  1486. files for the Public FidoNet Network.
  1487.  
  1488. Example:
  1489.  
  1490.   MAKE COMPOSITE
  1491.   THRESHOLD 0 -1 ; force archiving -- no submittal diff
  1492.   OUTPATH  .        ; master list to current directory
  1493.   OUTFILE  NODELIST ; create NODELIST.Atu
  1494.   OUTDIFF  NODEDIFF ; create NODEDIFF.Atu
  1495.  
  1496. When MakeNL has finished, three files are left in the current
  1497. directory; NODELIST.htu, NODELIST.Atu and NODEDIFF.Atu. Note that with
  1498. "THRESHOLD 0 0," NODELIST.ADu would be created with contents identical
  1499. to NODEDIFF.Atu.
  1500.  
  1501. 6.3.6 CLEanup
  1502. -------------
  1503.  
  1504. If you use a generic OUTFILE name, and if you create difference and/or
  1505. archive files, they tend to accumulate in your OUTPATH directory over
  1506. time. By default, MakeNL ignores them completely. This is done so that
  1507. OUTPATH can point to a "download" directory where several editions might
  1508. be made available to users.
  1509.  
  1510. When MakeNL operates in process mode and CLEanup (no arguments) appears
  1511. in the control file, after all other processing is done, it searches the
  1512. OUTPATH directory for old difference and/or archive files and deletes
  1513. any it finds.
  1514.  
  1515. CLEanup has no effect on current files or the handling of output master
  1516. files. It has no effect whatever when MakeNL is operated in test mode.
  1517.  
  1518. 6.4 External message transmission
  1519. ---------------------------------
  1520.  
  1521. MakeNL can generate two kinds of network messages, notification messages
  1522. and submittal messages.
  1523.  
  1524. Notification messages are addressed to submitters to notify them of
  1525. receipt of and/or errors in their submittal files.
  1526.  
  1527. A submittal message is addressed to your coordinator, and has your
  1528. submittal file attached.
  1529.  
  1530. Messages created by MakeNL are compatible with SEAdog by System
  1531. Enhancement Associates. Except for CRASH and HOLD attribute flags, they
  1532. are compatible with Fido v11, and (I think) Fido v12 by Tom Jennings.
  1533. They are probably compatible with other mail servers, but I cannot
  1534. guarantee it.
  1535.  
  1536. The following statements control the generation of these messages.
  1537.  
  1538. 6.4.1 NETaddress [<zone>:]<net>/<node>
  1539. --------------------------------------
  1540.  
  1541. This statement is used to tell MakeNL what your network address is.
  1542. MakeNL must know your network address in order to generate the "From:"
  1543. field in submittal or notification messages. If MakeNL must create
  1544. inter-zone messages, it needs to know your zone number. In addition,
  1545. your zone number, and if you are MAKing a HUB, your net number may be
  1546. needed to properly perform a MERge operation.
  1547.  
  1548. If your control file does not contain a NETaddress statement, MakeNL
  1549. will try to guess you network address from your MAKe statement. If you
  1550. are MAKing a ZONE, your default network address is <nbr>:<nbr>/0. If you
  1551. are MAKing a REGION or NETWORK, your default network address is
  1552. 0:<nbr>/0. If you are MAKing a HUB, MakeNL hasn't a clue!
  1553.  
  1554. If the default network address MakeNL selects for you is satisfactory,
  1555. you don't need a NETaddress statement, but it is recommended that you
  1556. include one to remove all doubt.
  1557.  
  1558. Examples:
  1559.  
  1560.   NETADDRESS  100/76
  1561.  
  1562.   NETADDRESS  1:1/0
  1563.  
  1564. 6.4.2 MESsages <directory_path_name>
  1565. ------------------------------------
  1566.  
  1567. This statement is required if MakeNL is to generate ANY outgoing
  1568. messages. It tells MakeNL the name of the directory used by your mail
  1569. server for network mail messages.
  1570.  
  1571. Example:
  1572.  
  1573.   MESSAGES  D:\BBS\MAIL
  1574.  
  1575. 6.4.3 SUBmit <address> [<flags>]
  1576. --------------------------------
  1577.  
  1578. The SUBmit statement tells MakeNL that in process mode it is to create a
  1579. "file attach" message to send your submittal file to your coordinator.
  1580. <address> is his network address.
  1581.  
  1582. Optional <flags> may be any or all of CRASH, HOLD or INTL. These should
  1583. not be used unless your mail server supports them.
  1584.  
  1585. Example:
  1586.  
  1587.   SUBMIT  13/0  CRASH
  1588.  
  1589. The INTL flag is a special case. It forces MakeNL to add the "^AINTL:
  1590. <from> <to>" extended address line to all messages it creates, even if
  1591. they are not leaving your zone. Indiscriminate use of this flag is not
  1592. recommended. You should use it only if your mail server needs all
  1593. messages to contain the expanded address.
  1594.  
  1595. NOTE: If you don't know what I'm talking about, don't use the INTL flag.
  1596. It may cause you trouble. Consult your mail server's documentation for
  1597. guidance. Most mail servers do not require this feature and many
  1598. consider these messages malformed. Two which may need the INTL flag are
  1599. D'Bridge and FrontDoor.
  1600.  
  1601. 6.4.4 NOTify <type> [<flags>]
  1602. -----------------------------
  1603.  
  1604. If the NOTify statement is used, when MakeNL finds a received update
  1605. file in either the UPLoads or MAIlfiles directory, it will notify the
  1606. submitter that the file was received and/or that the file contained
  1607. errors.
  1608.  
  1609. Optional <flags> may be any or all of CRASH, HOLD or INTL. These should
  1610. not be used unless your mail server supports them. (INTL need only be
  1611. specified once, and it applies to all messages.)
  1612.  
  1613. <type> is one of RECeipt, ERRors or SELF.
  1614.  
  1615. RECeipt and ERRors control notification of nodes submitting files to
  1616. you. If only NOTIFY RECEIPT is used, all notification messages will
  1617. have the same attributes, as defined by <flags>. If only NOTIFY ERRORS
  1618. is used, the submitter is NOT notified unless his update file has
  1619. errors. NOTIFY RECEIPT and NOTIFY ERRORS may both be used with different
  1620. message attribute flags, if desired. In other words, normal receipt
  1621. notification may be sent "regular" mail, while error messages are sent
  1622. "CRASH."
  1623.  
  1624. Unless you execute MakeNL with the "/T" switch, NOTIFY SELF instructs
  1625. MakeNL to enter a message to you if it encounters any errors in your
  1626. input data. If you edit your master file without testing it and you goof
  1627. (shame), the error could go unnoticed for some time. When MakeNL is
  1628. executed by your external event, the error will cause a message to you
  1629. to appear in you network mail area.
  1630.  
  1631. 6.5 Defining special files
  1632. --------------------------
  1633.  
  1634. MakeNL uses a number of special files in the performance of its duties.
  1635. The statements in this section provide the means to define these files
  1636. and/or alter defaults.
  1637.  
  1638. 6.5.1 Output comments files
  1639. ---------------------------
  1640.  
  1641. When MakeNL processes nodelist segment data, it ignores comments
  1642. embedded in the data files. These comments are assumed to be your
  1643. notes to yourself. They might be anything -- voice phone numbers,
  1644. suspense dates when "down" nodes are expected to come back on line,
  1645. etc..
  1646.  
  1647. Comments may be placed in submittal files to communicate information to
  1648. your coordinator, or in distribution files to communicate information to
  1649. your users, but not by embedding them in your data.
  1650.  
  1651. Instead, comments are placed in your output files by creating and
  1652. maintaining three special text files in your MASter directory. In
  1653. process mode, MakeNL searches for these files and, if they exist, copies
  1654. them into your submittal file. It is not an error if any of them does
  1655. not exist. Missing comments are simply ignored.
  1656.  
  1657. When MakeNL copies any of these files to the output file, it examines
  1658. the first character of each line to see if it contains a "comments
  1659. flag," a semicolon (;) character. Any line beginning with a semicolon is
  1660. copied as is to the output file. MakeNL inserts ";S " at the beginning
  1661. of any line which does not begin with a semicolon.
  1662.  
  1663. 6.5.1.1 COPyright <explicit_filename>
  1664. -------------------------------------
  1665.  
  1666. By default, MakeNL looks for a file named CPYRIGHT.TXT in the MASter
  1667. directory. If it exists, it is assumed to be a copyright notice, and is
  1668. copied into the output file immediately under the identification
  1669. header line.
  1670.  
  1671. The copyright file gets a special treatment the other comments files
  1672. do not get. If a string of four pound signs (####) is found in the first
  1673. line, it is replaced with the current year. Thus "Copyright ####"
  1674. becomes "Copyright 1987" automatically. You don't have to remember to
  1675. edit your copyright notice in January.
  1676.  
  1677. The COPyright statement lets you override the default name
  1678. "CPYRIGHT.TXT" with any other explicit name. You might need to do this
  1679. if, for example, you are a Regional Coordinator and use two different
  1680. control files to create your submittal file and distribution files. You
  1681. may use the same MASter directory for both and have different copyright
  1682. notices on each. In fact, you might name a nonexistent file when
  1683. generating your submittal file, thus eliminating the notice.
  1684.  
  1685. Examples:
  1686.  
  1687.   COPYRIGHT  CPY-DIST.TXT
  1688.  
  1689.   COPYRIGHT  NONE  ; file "NONE" does not exist
  1690.  
  1691. 6.5.1.2 PROlog <explicit_filename>
  1692. ----------------------------------
  1693.  
  1694. By default, MakeNL looks for a file named PROLOG.TXT in the MASter
  1695. directory. If it exists, it is copied into the output file immediately
  1696. under any copyright notice.
  1697.  
  1698. The PROlog statement allows you to override the default filename,
  1699. "PROLOG.TXT" with any explicit file name. If the named file does not
  1700. exist in the MASter directory, the effect is to turn off prologue
  1701. comments.
  1702.  
  1703. 6.5.1.3 EPIlog <explicit_filename>
  1704. ----------------------------------
  1705.  
  1706. By default, MakeNL looks for a file named EPILOG.TXT in the MASter
  1707. directory. If it exists, it is copied into the output file following
  1708. all nodelist segment data.
  1709.  
  1710. The EPIlog statement allows you to override the default filename,
  1711. "EPILOG.TXT" with any explicit file name. If the named file does not
  1712. exist in the MASter directory, the effect is to turn off epilogue
  1713. comments.
  1714.  
  1715. 6.5.2 Comments from received files
  1716. ----------------------------------
  1717.  
  1718. As stated earlier, comments in nodelist segment data files are NOT
  1719. copied into output files. But comments in your received files are
  1720. probably there to communicate information to YOU. Like the old dairy
  1721. cream separator, MakeNL can separate comments from received files out
  1722. into their own file.
  1723.  
  1724. 6.5.2.1 COMments <explicit_filename>
  1725. ------------------------------------
  1726.  
  1727. When the COMments statement appears in your control file, it tells
  1728. MakeNL to write the name of each input file to the named comments file,
  1729. followed by any comments statements that appear in that file.
  1730.  
  1731. The file name MUST be explicit, but may have a path name. The comments
  1732. file will appear in the current directory if no path is given.
  1733.  
  1734. If the COMments statement is omitted, comments in received files are
  1735. ignored by MakeNL.
  1736.  
  1737. 6.6 DATa
  1738. --------
  1739.  
  1740. The DATa statement is used as an alternative method of entering your
  1741. nodelist segment (see MAKe on page 21). If used, the DATa statement MUST
  1742. follow all control statements except FILes.
  1743.  
  1744. The DATa statement actually causes MakeNL to shift gears. It has been
  1745. processing control information. After the DATa statement, it begins
  1746. processing nodelist data, which immediately follows it in your control
  1747. file. The format and rules for this data are the same as for any
  1748. nodelist data.
  1749.  
  1750. The first non-comment statement encountered must match the MAKe
  1751. statement in <segment_type> and <number>, or a fatal error will occur.
  1752.  
  1753. 6.7 FILes
  1754. ---------
  1755.  
  1756. If you receive segment updates from others, you must use the FILes
  1757. statement to define the files you receive and process. If you furnish
  1758. all the input data yourself, you will not use a FILes statement.
  1759.  
  1760. When used, the FILes statement MUST be the last control statement in the
  1761. control file. It is followed by a list of file entry statements in the
  1762. following format:
  1763.  
  1764.      <segment_type> <number> <filename> [<notify>]
  1765.  
  1766. <segment_type> is one of HUB, NETwork, REGion or ZONe, but it must be
  1767. hierarchically lower than the MAKe <segment_type>. In other words, if
  1768. MAKing a region segment, <segment_type> must be either NETwork or HUB --
  1769. it may not be REGion or higher.
  1770.  
  1771. <number> is, of course the network address number associated with the
  1772. segment.
  1773.  
  1774. <filename> is used by MakeNL to search through the various directories
  1775. for the file defining this segment. You and your submitter must agree
  1776. on this filename. His MakeNL must generate what your MakeNL will look
  1777. for. <filename> may be either explicit or generic, but it must be
  1778. defined the same by both you and your submitter.
  1779.  
  1780. The first non-comment statement in an input segment file must match
  1781. <segment_type> and <number>, or a fatal error occurs.
  1782.  
  1783. When you use notification, MakeNL will calculate a network address for
  1784. notification messages. If you are MAKing a network segment for, say net
  1785. 107, and receiving update segments from your Hubs, notification messages
  1786. will be sent to 107/<number>. In all other cases, MakeNL sends
  1787. notification messages to <number>/0 by default.
  1788.  
  1789. The optional argument <notify> is the network address MakeNL should use
  1790. for notification messages and will override the calculated address.
  1791.  
  1792.      Examples:
  1793.  
  1794.           REGION    14   REGION14       14/61
  1795.           NETWORK  100   NETWORK.100
  1796.  
  1797. 7. Disk and Memory Space Considerations
  1798. ---------------------------------------
  1799.  
  1800. If you do not use archiving compression, MakeNL should execute
  1801. satisfactorily in about 160 kilobytes. If you are using archiving, you
  1802. should have about 290 kilobytes of memory. IF YOU ATTEMPT TO EXECUTE ARC
  1803. WITH TOO LITTLE MEMORY, YOU MAY LOSE FILES!
  1804.  
  1805. MakeNL is not as extravagant with disk space as it sounds, but if you
  1806. are a Regional or Zone Coordinator, you should do a little planning.
  1807.  
  1808. Your MASter directory will hold one copy of each .TXT comments file you
  1809. use (plus backups if your editor creates them), one copy of each data
  1810. file with an explicit name, two copies of each data file with a generic
  1811. name, and, if you use it, one copy of your master input file. MakeNL
  1812. automatically manages the data files in the MASter directory so that
  1813. this is true. Obviously, there can only be one copy of a file with an
  1814. explicit name in any directory. Generically named data files more that
  1815. two weeks old are automatically deleted. (The most current file is
  1816. always kept, no matter how old it is.)
  1817.  
  1818. Your OUTPath directory (usually the same as your MASter) will hold one
  1819. copy of your output master file if it is explicitly named, and two
  1820. copies if it is generically named. In addition, when MakeNL executes in
  1821. process mode, it creates a temporary new output master file, and the
  1822. OUTPath directory must have room to hold it. At least one of these
  1823. copies (and occasionally two, if there were no changes) will be deleted
  1824. before MakeNL attempts to do anything with or about your submittal file.
  1825.  
  1826. If your submittal file is to be compressed, the compressed copy will
  1827. also be placed in the OUTPath directory. On completion, there will be
  1828. only one submittal file, but if, for example, an archived diff file is
  1829. being produced, there must be space enough for both until ARC completes.
  1830. Then the diff file will be deleted.
  1831.  
  1832. It is conceivable (though most unlikely) that you could have a copy of
  1833. each of your data files in each of the subdirectories UPLoads, MAIlfiles
  1834. and UPDate. It is probable that by the end of each process cycle you
  1835. will have at least one copy of at least half of these files in one of
  1836. these directories. When a file is received in compressed form, MakeNL
  1837. decompresses it in the directory that received it, and the compressed
  1838. version is deleted. When files are moved from one directory to another
  1839. on the same drive, they are moved by renaming them. No additional space
  1840. is required for this operation.
  1841.  
  1842. "So how much !@#$%^ space do I need!?" If you are a Hub or network
  1843. coordinator, not much. Here is a guide I would suggest for Regional or
  1844. Zone coordinators. Make sure you have three times the space required for
  1845. one set of your generically named files plus two times the space
  1846. required for one set of your explicitly named files.
  1847.  
  1848. With experience, you'll get a better feel for how much space you need to
  1849. operate MakeNL. Before cutting yourself too fine, remember that MakeNL
  1850. needs some temporary working space while executing.
  1851.  
  1852. 8. Contents of MakeNL Distribution Package
  1853. ------------------------------------------
  1854.  
  1855. The MakeNL distribution package consists of the following files:
  1856.  
  1857.    MAKENL.EXE   The MakeNL program
  1858.    MAKENL.PRN   This documentation file
  1859.    HUB.CTL      Sample control file for Hub Coordinators
  1860.    NET-S.CTL    Sample control file for Network Coordinators
  1861.    NET-L.CTL    Sample control file for Network Coordinators
  1862.    REGION.CTL   Sample control file for Regional Coordinators
  1863.    ZONE.CTL     Sample control file for Zone Coordinators
  1864.    DISTRIB.CTL  Sample control file for Distribution Lists
  1865.    CPYRIGHT.TXT Sample copyright notice
  1866.    PROLOG.TXT   Sample prologue file
  1867.    EPILOG.TXT   Sample epilogue file
  1868.    FTS-0005.TXT Nodelist Format Specifications
  1869.  
  1870. 9. MakeNL License Information
  1871. -----------------------------
  1872.  
  1873. MakeNL is distributed under the "shareware" concept. It may be freely
  1874. copied and distributed provided all the files listed in section 8 are
  1875. included in the distribution. But MakeNL is NOT FREE.
  1876.  
  1877. If you are a non-commercial user of MakeNL, you are asked to support
  1878. its development and maintenance both with your suggestions and bug
  1879. reports and with your dollars. No particular fee is set for
  1880. non-commercial use. Let your conscience be your guide.
  1881.  
  1882. Commercial users, and users participating in a commercial network are
  1883. required to pay a license fee of twenty five (25) U. S. dollars for
  1884. each computer on which MakeNL is installed for use.
  1885.  
  1886. The Coordinator of a commercial network may obtain a network license
  1887. for a one-time fee of $1,500 US. This will license all current and
  1888. future nodes of the network for the use of MakeNL. MakeNL and EditNL may
  1889. be licensed as a set for a one-time fee of $2,250.
  1890.  
  1891. Please address all correspondence to:
  1892.  
  1893.      Ben Baker
  1894.      Baker & Associates
  1895.      One Mark Twain Plaza, Ste 325G
  1896.      Edwardsville, IL 62025
  1897.  
  1898.      (618) 656-8850
  1899.