home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / filesbbs / dos / flstd201.exe / flstD201.RAR / Fastlst.Doc < prev    next >
Encoding:
Text File  |  1997-10-29  |  122.1 KB  |  3,350 lines

  1.         **************************************************************
  2.         *                                                            *
  3.         *                                                            *
  4.         *   *******   **     ****   ******  ****     ****   ******   *
  5.         *    **   *  ****   **  **  * ** *   **     **  **  * ** *   *
  6.         *    ** *   **  **  **        **     **     **        **     *
  7.         *    ****   **  **   ****     **     **      ****     **     *
  8.         *    ** *   ******      **    **     **   *     **    **     *
  9.         *    **     **  **  **  **    **     **  ** **  **    **     *
  10.         *   ****    **  **   ****    ****   *******  ****    ****    *
  11.         *                                                            *
  12.         *                                                            *
  13.         *                         Version 2.01                       *
  14.         *                                                            *
  15.         *             The ultimate V7+ nodelist processor            *
  16.         *                                                            *
  17.         *                                                            *
  18.         **************************************************************
  19.         *                                                            *
  20.         *        (C) Copyright 1992-1997  by  Alberto Pasquale       *
  21.         *                                                            *
  22.         *            A L L   R I G H T S   R E S E R V E D           *
  23.         *                                                            *
  24.         **************************************************************
  25.         
  26.         
  27.  
  28.                 FastLst 2.01 User's Manual, by Alberto Pasquale
  29.         
  30.         
  31.                                   INTRODUCTION
  32.         
  33.         
  34.         -> For licensing information, please see License.Doc.
  35.         
  36.         Thanks for evaluating FastLst: the ultimate "Version 7+"
  37.         nodelist processor.
  38.         
  39.         Version 7 is a common format for binary nodelists to be used by
  40.         mailers, message editors and all the programs that need fast
  41.         access to a compiled nodelist.
  42.         
  43.         Version 7+ is fully compatible with V7 and adds lots of new
  44.         powerful features for V7+ aware applications.
  45.         
  46.                                  Main Features
  47.         
  48.         
  49.         - Compiles to Version 7+ format nodelist.
  50.         
  51.         - Support for Version 7.
  52.         
  53.         - Support for old "Fidouser.Lst" sysop list.
  54.         
  55.         - Multiple output nodelist (NODEX.*) compilation from one config
  56.           file.
  57.         
  58.         - The complete maintenance of archived lists and diffs is
  59.           achieved through internal flexible configuration, with no need
  60.           for clumsy batch files.
  61.         
  62.         - Uses "Squish Style" Compress.Cfg.
  63.         
  64.         - Can be invoked from a batch file at predefined events: the
  65.           compilation will take place only if some new list/diff is
  66.           found.
  67.         
  68.         - Multitasking friendly
  69.         
  70.         - The OS/2 version allows for priority setting in the
  71.           configuration file.
  72.         
  73.         - Compilation reports can be posted to Fido or Squish format
  74.           message areas.
  75.         
  76.         - Full 4D (point) support, both via the "Point,..." and
  77.           "Boss,..." keywords.
  78.         
  79.         - Internal support for "German type" pointlists.
  80.         
  81.         - Easy addition of nodes via the "Node,<address>,..." keyword
  82.           in a private list.
  83.         
  84.         - Easy specification of phone strings to be taken "verbatim"
  85.           for internet addresses and script names.
  86.         
  87.         - In the case of SysOps of multiple nodes, keeps all the
  88.           name/address entries in the sysop index.
  89.         
  90.         - User Cost (Msg Fee) can be set different from Call Cost.
  91.         
  92.                                     CREDITS
  93.         
  94.         This program uses the Squish "MsgAPI" code, Copyright 1991-1994
  95.         by Lanius Corporation. "Squish" and "Maximus" are trademarks of
  96.         Lanius Corporation.
  97.         
  98.         "BinkleyTerm" is a trademark of Bit Bucket Software Co.
  99.         
  100.         "4OS2" is a trademark of JP Software Inc.
  101.         
  102.         The archivers referred-to throughout this documentation are
  103.         Copyright and/or trademarks of the respective owners.
  104.         
  105.         "VMODEM" and "SIO" are Copyright by Raymond L. Gwinn.
  106.         
  107.         "U.S. Robotics" and "I-modem" are registered trademarks of U.S.
  108.         Robotics Access Corporation.
  109.  
  110.         
  111.                                OVERALL OPERATION
  112.         
  113.         
  114.         FastLst has been designed to be invoked regularly from one of
  115.         your main batch files, after mail has been received or at
  116.         pre-arranged times at your pleasure: if any new (compressed or
  117.         not) nodelist/nodediff is detected, Fastlst processes them as
  118.         required (exiting with Errorlevel 0), otherwise it immediately
  119.         exits (errorlevel 100) with no further delay.
  120.         
  121.         When FastLst detects a changed config or password file, it
  122.         compiles all the affected nodelists even if they are not new.
  123.         
  124.         If you want FastLst to compile all of your nodelists even if no
  125.         new ones are present, you need to use the -f or -i command line
  126.         switch.
  127.         
  128.         For each "output block" in the config file:
  129.         
  130.         - New compressed lists or diffs are detected, unarchived and
  131.           optionally rearchived in supplementary formats.
  132.         
  133.         - New diffs are detected and applied: the resulting new nodelist
  134.           is archived. Before applying a diff, the day number and CRC of
  135.           the old nodelist are compared against the ones requested by
  136.           the diff; after application, the CRC of the new nodelist is
  137.           checked.
  138.         
  139.         - New lists are detected and the pertinent output nodelists are
  140.           rebuilt. If no new list is found for a specific "output
  141.           block", that output nodelist is not compiled, unless the -f or
  142.           -i command line switch is specified.
  143.         
  144.         OS commands can be issued before or after each operation: for
  145.         example you can hatch the just created archive file.
  146.         
  147.         
  148.         ATTENTION:
  149.         
  150.         - Every time a config file is changed, FastLst rebuilds all
  151.           the output nodelists, as if the -f command line switch were
  152.           specified.
  153.         
  154.         - Every time a PasswordFile is changed, FastLst rebuilds the
  155.           nodelists that use it.
  156.         
  157.         - The date of the archive files handled by FastLst is set to
  158.           the same value of the contained file (see ArcDate).
  159.  
  160.         
  161.                              INPUT NODELIST FORMAT
  162.         
  163.         
  164.         The source nodelists and nodediffs must be in standard "St.
  165.         Louis" format, as described in FTS-0005. Anyway, FastLst allows
  166.         some extensions in order to support 4D points, "German style"
  167.         pointlists, easy single node specifications and "verbatim" phone
  168.         strings.
  169.         
  170.         
  171.         
  172.         
  173.                        4D Point Support: POINT and BOSS keywords
  174.         
  175.         
  176.         First method:
  177.         
  178.         Points are entered in the nodelist directly following their
  179.         bossnode.  Each one starts with the "Point,<point>" keyword.
  180.         
  181.         Example:
  182.         
  183.         ...
  184.         ...
  185.         ,504,Videl,Modena_I,Roberto_Zanasi,39-59-450600,9600,CM,XA,V34
  186.         Point,1,Pasquale,Modena_I,Alberto_Pasquale,-!Unpublished-,9600,
  187.         Point,2,SysOp,Modena_I,Roberto_Zanasi,-!Unpublished-,9600,
  188.         Point,3,Carta,Modena,Francesco_Carta,-!Unpublished-,9600,
  189.         ...
  190.         ...
  191.         
  192.         
  193.         Second method:
  194.         
  195.         Points are entered in the nodelist following the
  196.         "Boss,<address>" keyword.
  197.         
  198.         Example:
  199.         
  200.         ...
  201.         ...
  202.         Boss,2:332/504
  203.         ,1,Pasquale,Modena_I,Alberto_Pasquale,-!Unpublished-,9600,
  204.         ,2,SysOp,Modena_I,Roberto_Zanasi,-!Unpublished-,9600,
  205.         ,3,Carta,Modena,Francesco_Carta,-!Unpublished-,9600,
  206.         ...
  207.         ...
  208.  
  209.         
  210.         
  211.                                German Point List
  212.         
  213.         
  214.         This is a "normal" 3D nodelist that lists each Boss as a
  215.         "fakenet" HOST, with the real address as the system name,
  216.         followed by its points listed as nodes.
  217.         
  218.         Example:
  219.         
  220.         The following nodelist segment lists points 2:2400/1.1 .2 .3:
  221.         
  222.         Host,20000,2400/1,City,Sysop_Name,49-951-999999,9600,CM,V34
  223.         ,1,System_Name_1,City_1,Sysop_Name_1,49-951-999999,9600,
  224.         ,2,System_Name_2,City_2,Sysop_Name_2,49-951-999999,9600,
  225.         ,3,System_Name_3,City_3,Sysop_Name_3,49-951-999999,9600,
  226.  
  227.         
  228.         
  229.                                 The NODE Keyword
  230.         
  231.         
  232.         Another extension over FTS-0005 is provided to allow easy
  233.         addition of nodes in small private lists.
  234.         
  235.         When you need to add a node to your nodelist to call it or to
  236.         enforce a session password with it, you can use the
  237.         "Node,<address>[ <region>[ <hub>]],..." keyword to avoid the
  238.         necessity of adding the entries for its coordinators.
  239.         
  240.         You should specify a full 4D address (point optional).
  241.         
  242.         Any subsequent entry will take the current address as a starting
  243.         point.
  244.         
  245.         E.g.: You want to add 9:888/777.3 of Region 88, Hub 700.
  246.         
  247.         Please note that there is no need to specify Region and Hub
  248.         information when using the Node and Boss keywords, since:
  249.         
  250.         - if the point's Boss is included via some other nodelist, the
  251.           Region and Hub information will be taken from its entry;
  252.         
  253.         - if the point's Boss is not present in the compiled lists, this
  254.           point will be removed from the indices (in this case you may
  255.           want to use two entries for including both the Boss and the
  256.           point);
  257.         
  258.         
  259.         With "Node,...":
  260.         ...
  261.         ...
  262.         Node,9:888/777.3,System,City,SysOp,1-234-555-6666,9600,CM
  263.         ...
  264.         ...
  265.         
  266.         With "Boss,...":
  267.         ...
  268.         ...
  269.         Boss,9:888/777
  270.         ,3,System,City,SysOp,1-234-555-6666,9600,CM
  271.         ...
  272.         ...
  273.         
  274.         With the traditional method:
  275.         ...
  276.         ...
  277.         Zone,9,...
  278.         Region,88,...
  279.         Host,888,...
  280.         Hub,700,...
  281.         ,777,...
  282.         Point,3,System,City,SysOp,1-234-555-6666,9600,CM
  283.         ...
  284.         ...
  285.         
  286.         
  287.         Now let's add 8:101/611 and 8:101/612 in region 10, hub 600:
  288.         
  289.         With "Node,...":
  290.         ...
  291.         ...
  292.         Node,8:101/611 10 600,System,City,SysOp,1-234-555-6666,9600,CM
  293.         ,612,System,City,SysOp,1-234-555-6667,9600,CM
  294.         ...
  295.         ...
  296.         
  297.         With the traditional method:
  298.         ...
  299.         ...
  300.         Zone,8,...
  301.         Region,10,...
  302.         Host,101,...
  303.         Hub,600,...
  304.         ,611,System,City,SysOp,1-234-555-6666,9600,CM
  305.         ,612,System,City,SysOp,1-234-555-6666,9600,CM
  306.         ...
  307.         ...
  308.  
  309.         
  310.         
  311.                                 Verbatim Phones
  312.         
  313.         When a phone entry contains non-numeric characters, it is taken
  314.         verbatim (i.e. no dial translation is applied to adjust the area
  315.         code and long distance or international prefixes).
  316.         
  317.         Call defaults are defined by the CostVerbatimPhone statement.
  318.         
  319.         Note: you might need to change the dots '.' in internet
  320.         addresses to asterisks '*', in order to avoid that the mailer
  321.         (e.g. Binkley) translates them: see TypeDef.
  322.         
  323.         Examples:
  324.         
  325.         Internet address:
  326.         
  327.         ,6,System,City,SysOp,Fantasy.Com,9600,CM,VM
  328.         
  329.         IP address:
  330.         
  331.         ,6,System,City,SysOp,123.456.789.012,9600,CM,VM
  332.         
  333.         Script name:
  334.         
  335.         ,6,System,City,SysOp,"Fantasy.Scr",9600,CM,V34
  336.         
  337.         See also the Phone statement.
  338.         
  339.         
  340.         
  341.                        IP addresses (Fido Zone 2 method)
  342.         
  343.         The method used in the Zone 2 Fidonet nodelist wants to be
  344.         completely compatible with the past: an IP address is listed so
  345.         that it looks as a normal phone number.
  346.         
  347.         To avoid PSTN calls to these numbers, an "international" prefix
  348.         of 000 is used.
  349.         
  350.         The flags specify the type of connections allowed (VModem,
  351.         Telnet, BinkD etc.).
  352.         
  353.         Example:
  354.         
  355.         The IP address "194.155.233.455" is listed as
  356.         "000-194-155-233-455", with appropriate flags.
  357.         
  358.         FastLst changes this "fake phone" string back to
  359.         "194.155.233.455" and then processes it just as if it were
  360.         listed this way in the nodelist.
  361.         
  362.         All the processing for "Verbatim Phones" is applied, including
  363.         any switch-based phone translation.
  364.         
  365.         
  366.                                MISCELLANEOUS INFO
  367.         
  368.         
  369.                                 Multiple Sysops
  370.         
  371.         
  372.         In the case of SysOps of more than one system, all the
  373.         name/address couples of compiled entries are output to the SysOp
  374.         index.
  375.         
  376.         
  377.                                Redirected Systems
  378.         
  379.         
  380.         Systems that have no valid phone number (Unpublished, on Hold),
  381.         are redirected, provided you do not exclude redirection using
  382.         the "NoRedir" config keyword.
  383.         
  384.         A redirected system is given the phone number, baud rate, modem
  385.         type, cost and flags of the preceding coordinator, the Board
  386.         name is prepended with '-R-'.
  387.         
  388.         If you have a session password with the system to be redirected
  389.         or with the system it should be redirected to, no redirection is
  390.         done in order to prevent password-mismatch errors in the case
  391.         the Unpublished/Hold system calls you.
  392.         
  393.         Points are never redirected.
  394.         
  395.         The systems that have no valid phone number and cannot be
  396.         redirected take an EMPTY phone number string, so that your
  397.         mailer does not send unexpected strings to your modem attempting
  398.         to call these systems, should something appear in your outbound
  399.         addressed to them.
  400.         
  401.         Pay attention: if you want to directly call these
  402.         null_phone-systems or their coordinators, you have to give them
  403.         a phone number using the "Phone" statement in the configuration
  404.         file.
  405.         
  406.  
  407.         
  408.         
  409.                                   INSTALLATION
  410.         
  411.         
  412.         1) There are 3 versions of FastLst:
  413.         
  414.            OS/2, W32, DOS 32 (with DOS4GW DOS Extender), distributed in
  415.            separate archives (see Readme.1st).
  416.         
  417.            Choose the one that fits you better.
  418.         
  419.         2) Write your FastLst.Cfg.
  420.            You can find useful examples in the Fast_*.Cfg files and
  421.            detailed information in the "CFG REFERENCE" section of this
  422.            documentation.
  423.         
  424.         
  425.         3) Edit your batch file in order to call FastLst whenever you
  426.            would like to test for the presence of new list/diff files
  427.            and process them. If you do not pass a different pathname as
  428.            a command line parameter, FastLst.Cfg must reside in the
  429.            current directory.
  430.         
  431.         
  432.         4) (OS/2): Make sure you have the MSGAPI32.DLL in a directory
  433.              contained in your LIBPATH. MSGAPI32.DLL can be found in the
  434.              Squish 1.11 archive (SQSHP111.LZH).
  435.         
  436.         
  437.            (W32): Make sure you have the MSGAPINT.DLL in a directory
  438.              contained in your PATH. MSGAPINT.DLL can be found in the
  439.              Max 3.01 for Windows archive (MAX301N.ZIP).
  440.         
  441.         
  442.            (DOS32): Make sure you have the DOS4GW.EXE Dos extender (from
  443.              Tenberry Software Inc.) in your path.
  444.         
  445.              The DOS4GW extender requires an XMS or DPMI memory driver
  446.              installed in your config.sys: e.g. HIMEM.SYS, QEMM (by
  447.              QuarterDeck Office Systems Inc.).
  448.         
  449.         
  450.         5) FastLst requires a lot of memory to compile long nodelists.
  451.         
  452.            A set of input nodelists totalling 60,000 nodes requires
  453.            approximately 12MB for V7+ "in memory" compilation, 7MB when
  454.            using "on disk" DTP linking and 4.5MB for simple V7.
  455.         
  456.            You have to decide whether to use the "LinkOnDisk"
  457.            statement in the configuration file. If you have enough
  458.            physical memory available you should use the default "in
  459.            memory" mode. On the other hand, if the execution of FastLst
  460.            is excessively slow, you probably are low on memory and you
  461.            could benefit by the use of "on disk" DTP linking.
  462.         
  463.            (DOS): Even if "in memory" DTP linking is
  464.              configured, FastLst automatically switches to "on disk"
  465.              mode if it cannot allocate the needed memory.
  466.         
  467.              If you experience "out of memory" errors, then you have to
  468.              enable the DOS4GW virtual memory mode, using the DOS4GVM
  469.              environment variable (e.g. for 16MB virtual allocation
  470.              size: SET DOS4GVM=VirtualSize#16384).
  471.         
  472.              This works under real Dos only: if you are using OS/2 dos
  473.              sessions, use a higher DPMI_MEMORY_LIMIT in the Dos
  474.              settings.
  475.         
  476.              Please note that FastLst tells you (on screen, in the
  477.              logs, in the report message) how much memory remains during
  478.              compilation, so that you can realize when you are running
  479.              in marginal conditions and consequently adjust your
  480.              configuration before you run out of memory.
  481.         
  482.         
  483.         
  484.                              COMMAND LINE SWITCHES
  485.         
  486.         
  487.         -c<cfg>
  488.                 Use <cfg> configuration file instead of FASTLST.CFG.
  489.         
  490.         -f
  491.                 Force compilation even if no new list/diff has been
  492.                 detected.
  493.         
  494.         -i
  495.                 Ignore FastLst.Dat: run as if it were the first time.
  496.                 All nodelists compiled, all exports executed.
  497.         
  498.         -p
  499.                 Prepare: Unarc new lists and diffs, Apply diffs and Arc
  500.                 new nodelists, do not compile nodelists.
  501.         
  502.         -r
  503.                 When applying a diff, FastLst usually deletes the newly
  504.                 generated source nodelist file if a CRC error is
  505.                 detected. With this switch the new nodelist is _not_
  506.                 deleted, so that it will be processed anyway.
  507.         
  508.                 When compiling a list, FastLst usually aborts the
  509.                 compilation of the current output nodelist if a CRC
  510.                 error is detected. With this switch the current output
  511.                 nodelist will be entirely compiled anyway.
  512.         
  513.         -h or -?
  514.                 for help
  515.         
  516.         
  517.                                   ERRORLEVELS
  518.         
  519.         
  520.           0 - Normal termination, something compiled
  521.           1 - Help requested
  522.           2 - File Open error
  523.           3 - Abnormal termination
  524.           4 - Disk Full
  525.           5 - Can't find config file
  526.           6 - Configuration error
  527.           7 - Out of memory
  528.           8 - Read error while applying diff
  529.           9 - CRC error (applying diff)
  530.          10 - CRC error (compiling list)
  531.          11 - User Break
  532.          12 - Cannot rename temporary output nodelist files
  533.          13 - Cannot open source nodelist file
  534.          14 - Timeout waiting on V7+ semaphore
  535.          15 - Too many nodelists in inbound directories
  536.          16 - Nothing found after unarchiving a fixed-name nodelist
  537.          17 - Error Linking output files
  538.         
  539.         100 - Normal termination, nothing compiled
  540.         
  541.         250 - MsgApi: Init Error
  542.         251 - MsgApi: Area Open Error
  543.         252 - MsgApi: Area Lock Error
  544.         253 - MsgApi: Area Close Error
  545.  
  546.         
  547.         
  548.                                  CONFIGURATION
  549.         
  550.         
  551.         Before analyzing the cfg keywords in detail, let's introduce the
  552.         overall mechanism that is at the basis of FastLst's
  553.         configuration.
  554.         
  555.         If you are converting from a different nodelist compiler, please
  556.         forget the old configuration and start from scratch.
  557.         
  558.         FastLst.Cfg is divided into several logical blocks and the
  559.         sequence of the various statements is essential: you cannot just
  560.         put keywords somewhere in the config file; they must be arranged
  561.         in the correct order.
  562.         
  563.         At first, this characteristic of FastLst's configuration might
  564.         appear complex to understand, but, as soon as you will grasp its
  565.         logic, you will understand that it's really easy to write a
  566.         correct configuration file and you will appreciate its
  567.         extraordinary flexibility.
  568.         
  569.         The first block of configuration is the "Global" one.
  570.         The verbs in this block refer to the compilation of all the
  571.         nodelists.
  572.         
  573.         Then there are one or more "Output Blocks": each output block
  574.         refers to the compilation of a single nodelist (e.g.
  575.         NODEX.*).
  576.         
  577.         Each "Output Block" has a "Output section" (with statements
  578.         regarding the compilation of the whole <NODEX>.* list) and one
  579.         or more "Input blocks" containing the verbs that describe how to
  580.         compile each of the source nodelists.
  581.         
  582.         The first "Output Block" can optionally be of a special kind: a
  583.         "NoCompile" block, whose "Input Blocks" describe nodelists that
  584.         must be maintained (e.g. diffs applied) but not compiled to any
  585.         <NODEX>.* list.
  586.         
  587.         Some statements can be used in blocks of a particular type only,
  588.         others can be used in many different places depending on what
  589.         nodelists you want to be affected. As a rule of thumb, you can
  590.         use each statement anywhere it seems to be logically acceptable.
  591.         
  592.         If you feel frightened by such abstract considerations, please
  593.         take a look at the example Fast*.Cfg files, so that you can
  594.         quickly realize it's not that difficult.
  595.         
  596.         To write your own configuration file you should start modifying
  597.         the example one that is more adequate to your needs.
  598.         
  599.         Now, let's consider all the verbs that are allowed in FastLst's
  600.         configuration.
  601.  
  602.         
  603.         
  604.                                  CFG REFERENCE
  605.         
  606.         
  607.         
  608.         - Items between square brackets (e.g. [<item>]) are optional.
  609.         
  610.         - The names of the various Keywords are NOT case sensitive.
  611.         
  612.         - When a directory path is required, the trailing backslash '\'
  613.           is optional.
  614.         
  615.         - The ';' character starts comments: any character following the
  616.           ';' is ignored, unless inside quoted strings.
  617.         
  618.         - The maximum length of configuration lines is 254 characters,
  619.           so don't go further (you can always split address lists into
  620.           smaller ones).
  621.         
  622.         - In the OS/2 version, any file specification can be a legal
  623.           OS/2 name, between double quotes if necessary.
  624.         
  625.         - Environment variables can be used anywhere in the
  626.           configuration files.
  627.         
  628.           Variable names must be at least 2 character long, are preceded
  629.           by '%' and followed by either '%' or space.
  630.         
  631.           Environment variable may also be nested.
  632.         
  633.           To specify a '%' character, write two of them "%%".
  634.         
  635.           Example:
  636.         
  637.             in a batch:      SET BBSPATH=d:\bbs\
  638.         
  639.             in FastLst.Cfg:  StatusLog %BBSPATH%log\fastlst.log
  640.         
  641.             expands to:      StatusLog d:\bbs\log\fastlst.log
  642.         
  643.           Nested Example:
  644.         
  645.             in a batch:
  646.                 SET BBSLOGS=%%BBSPATH%%log\
  647.                 SET BBSPATH=d:\bbs\
  648.         
  649.             in FastLst.Cfg:  StatusLog %BBSLOGS%fastlst.log
  650.         
  651.             expands to:      StatusLog d:\bbs\log\fastlst.log
  652.         
  653.         
  654.         ATTENTION
  655.         
  656.         Please, note that the order of the configuration statements
  657.         follows some logical rule. In order not to create confusion in
  658.         the .cfg file and not to break some _necessary_ order relation,
  659.         please follow the scheme proposed in the example Fast*.CFG files
  660.         and in this reference documentation.
  661.         
  662.         Please, be aware that the generation of text files (FidoTxt,
  663.         FidoPrn, FidoUserLst verbs) and the use of lots of options and
  664.         overrides can slow down the compilation process: use only the
  665.         options/overrides that you really need if you mind compilation
  666.         time.
  667.  
  668.         
  669.         
  670.         Include <filename>
  671.         
  672.           You can split the configuration into multiple files, including
  673.           them via this statement, which can be used everywhere and
  674.           nested without limits.
  675.         
  676.         
  677.                                   G L O B A L
  678.         
  679.         
  680.         The following verbs can be used in the Global section of
  681.         FastLst.cfg. Some of them can be used in other places also, so
  682.         they are divided into separate sections.
  683.         
  684.         
  685.         
  686.         
  687.                                   G L O B A L
  688.         
  689.                                    Section A
  690.         
  691.         
  692.         
  693.         The following configuration verbs can be used in the GLOBAL
  694.         section of FastLst.Cfg.
  695.         
  696.         
  697.         RegKey <RegKey>
  698.         
  699.                 Registered Users only: <RegKey> is the registration key
  700.                 and it is NOT case sensitive.
  701.         
  702.             Example:
  703.         
  704.                 RegKey dfhyuwru6274623
  705.         
  706.         
  707.         
  708.         Priority <type> [<level>]
  709.         
  710.                 Changes the execution priority of the FastLst process
  711.                 (OS/2 only).
  712.         
  713.                 Ignored by NT and DOS versions.
  714.         
  715.                 <type> is one of: Idle Regular High
  716.         
  717.                 <level> is an integer in the range 0...31 and defaults
  718.                 to 0.
  719.         
  720.                 If you do not use this statement, FastLst will run at
  721.                 the default priority, which normally is "Regular 0".
  722.         
  723.             Examples:
  724.         
  725.                 Priority High 31
  726.         
  727.                   Gives Fastlst the highest priority for "non
  728.                   time-critical" processes. It will run fast even if it
  729.                   is in the background and other processes are active.
  730.         
  731.         
  732.                 Priority Idle
  733.         
  734.                   Gives FastLst the lowest priority, so that it loads
  735.                   the system as minimally as possible. It will run
  736.                   significantly slower, especially if in the background
  737.                   or when other CPU intensive processes are in
  738.                   execution.
  739.         
  740.         
  741.         
  742.         StatusLog <LogFile>
  743.         
  744.                 <LogFile> is the name of the file where all the
  745.                 operations performed by FastLst will be logged,
  746.                 following the "Binkley Style".
  747.         
  748.                 In multitasking environments, please be sure to use a
  749.                 file that cannot be used by other processes at the same
  750.                 time. For example: if (in your system) FastLst can be
  751.                 executed while Binkley is running, please use different
  752.                 log files.
  753.         
  754.                 Should you not want the log file, you can comment this
  755.                 keyword out.
  756.         
  757.             Example:
  758.         
  759.                 StatusLog d:\bbs\log\FastLst.log
  760.         
  761.         
  762.         
  763.         CompressCfg <compress_cfg>
  764.         
  765.                 This is a "Squish style" compress definition file.
  766.         
  767.                 In the case you are using a case-sensitive
  768.                 de/compression program (e.g. OS/2 ZIP/UNZIP), please
  769.                 make sure to use the correct switches in <compress_cfg>
  770.                 and/or the correct case (Lower/Upper) in <NodeList> and
  771.                 <NodeDiff> specifications.
  772.         
  773.                 You can find the suggested <compress_cfg> in the example
  774.                 Compress.Cfg file included in the FastLst pack.
  775.         
  776.                 If you are already using Squish and/or Maximus, you can
  777.                 just specify the name of their compress.cfg (but do
  778.                 check that they indicate the necessary switches to avoid
  779.                 case sensitiveness during extraction).
  780.         
  781.                 Refer to the "Compress Definition File" section at the
  782.                 end of this document for the syntax of <compress_cfg>.
  783.         
  784.         
  785.         
  786.         InputPath <NodeDir>
  787.         
  788.                 Specifies the default path for input files (source
  789.                 nodelists/nodediffs). You can override it by using a
  790.                 full pathname in input-file specifications.
  791.         
  792.                 Created if not existing.
  793.         
  794.             Example:
  795.         
  796.                 InputPath d:\bbs\nodelist\
  797.         
  798.         
  799.         
  800.         ArcPath <ArcNodeDir>
  801.         
  802.                 Specifies the default path for Archived nodelist files.
  803.                 It usually points to the file area where your TIC
  804.                 processor moves the inbound nodelist archives.
  805.         
  806.                 You can override it by using a full pathname in
  807.                 Archived-file specifications.
  808.         
  809.             Example:
  810.         
  811.                 ArcPath d:\bbs\file\nodelist\
  812.         
  813.         
  814.         
  815.         ArcDate Write|Creation
  816.         
  817.             (OS/2)
  818.                 Selects the date to be used for computing the age of
  819.                 fixed-name archived nodelist files.
  820.         
  821.                 This setting is useful for HPFS (which has separate
  822.                 Write and Creation dates) and ignored for FAT.
  823.         
  824.                 If not specified, "Creation" is assumed.
  825.         
  826.                 Attention: in order to avoid problems in the case the
  827.                 date has been corrupted during the transfer of the file,
  828.                 it is best to choose the same date that your mailer sets
  829.                 as "receive/upload" date or that is touched by your TIC
  830.                 processor.
  831.         
  832.             Examples:
  833.         
  834.                ArcDate Write       ; Use the Write date
  835.                ArcDate Creation    ; same as default
  836.         
  837.         
  838.         
  839.         MultiLineDesc <nnn> [<c>]
  840.         
  841.                 By default, files.bbs description must be on a single
  842.                 line; this statement enables Multi-Line support.
  843.         
  844.                 <nnn> is the number of spaces that must precede the
  845.                 continuation lines.
  846.         
  847.                 <c> is the continuation character.
  848.         
  849.                 If <c> is NOT specified, it is assumed that the
  850.                 continuation lines must be preceded by <nnn> spaces.
  851.         
  852.                 If <c> IS specified, it is assumed that the continuation
  853.                 lines must be preceded by <nnn> spaces, the <c>
  854.                 character and one more space.
  855.         
  856.                 For example, to have the 2nd and following description
  857.                 lines in files.bbs start at the 32nd column, use:
  858.         
  859.                 MultiLineDesc 31
  860.         
  861.                 A description in files.bbs would be like:
  862.         
  863.                 Test.Zip This is the first description line
  864.                                                this is the 2nd line
  865.                                                this is the 3rd line
  866.                 ^                             ^^
  867.                 1                           31  32
  868.         
  869.                 To have the continuation lines preceded by a '|'
  870.                 character, use:
  871.         
  872.                 MultiLineDesc 29 |
  873.         
  874.                 A description in files.bbs would be like:
  875.         
  876.                 Test.Zip This is the first description line
  877.                                              | this is the 2nd line
  878.                                              | this is the 3rd line
  879.                 ^                           ^  ^
  880.                 1                          29  32
  881.         
  882.         
  883.         
  884.         KillAfter
  885.         
  886.                 Old output files are killed after the new ones have been
  887.                 successfully written.
  888.         
  889.                 The new output files are written to temporary names,
  890.                 then the old ones are killed and the new ones renamed
  891.                 (and FastLst retries for 30s in case of error, to be
  892.                 multitasking smart).
  893.         
  894.                 Thus you will always have a valid compiled nodelist,
  895.                 even in the case of a compilation error and consequent
  896.                 compile abortion. Besides, your multitasking system can
  897.                 continue operations while FastLst is working. On the
  898.                 other hand you might need some more spare disk space to
  899.                 hold the old and new files during compilation.
  900.         
  901.         
  902.         
  903.         KillSource
  904.         
  905.                 Tells FastLst to kill all uncompressed nodelists (that
  906.                 are also available in archived format) before
  907.                 terminating.
  908.         
  909.                 Please note that FastLst deletes a source nodelist only
  910.                 if the ArcList statement is defined.
  911.         
  912.                 Besides, when the NodeDiff statement is used, an
  913.                 ArcMethod must be defined to allow the deletion of the
  914.                 nodelist.
  915.         
  916.                 When no NodeDiff is defined, FastLst assumes that the
  917.                 uncompressed NodeList has been extracted from a
  918.                 corresponding archive.
  919.         
  920.         
  921.         
  922.         BeforeKillSource <command>
  923.         
  924.                 This statement is used to invoke a command of your
  925.                 choice before the source nodelists are killed, upon
  926.                 FastLst completion.
  927.         
  928.                 <command> is executed even if "KillSource" is not used.
  929.                 It is a means of invoking a command before FastLst ends.
  930.         
  931.                 The "NeededBeforeKill" verb must be used to specify the
  932.                 NodeLists needed by this command: if one of these
  933.                 nodelists is found new, then this command is invoked
  934.                 after decompressing all the nodelists that have the
  935.                 "NeededBeforeKill" attribute (and have not been
  936.                 decompressed yet).
  937.         
  938.                 IMPORTANT: <command> is executed ONLY if some nodelist
  939.                 affected by a "NeededBeforeKill" verb has been detected
  940.                 as new.
  941.         
  942.                 <command> can be any command that is valid for the
  943.                 command interpreter specified in your COMSPEC
  944.                 environment variable.
  945.         
  946.                 If <command> invokes an executable file, it is loaded
  947.                 and executed directly; otherwise your command
  948.                 interpreter is invoked, so that you can execute a batch
  949.                 file or any other valid command.
  950.         
  951.                 No variable parameters are supported.
  952.         
  953.         
  954.         
  955.         Dash2Comma
  956.         
  957.                 Change dashes to commas in the phone numbers.
  958.         
  959.                 Useful for people that are still connected to ancient
  960.                 "rotary pulse" electromechanic telephone exchanges.
  961.         
  962.         
  963.         
  964.         NoReport
  965.         
  966.                 Do not output nodelist statistics
  967.         
  968.         
  969.         
  970.         NoRedir
  971.         
  972.                 Nodes that do not have a valid phone number (Hold,
  973.                 Unpublished) are usually redirected to their
  974.                 coordinators.
  975.         
  976.                 When this verb is used, redirection does not take place
  977.                 and the node is given an empty phone number, so that you
  978.                 never call a system different from that you think you
  979.                 are calling.
  980.         
  981.                 Please note that (even with no NoRedir verb):
  982.                 - points are never redirected;
  983.                 - if you have a password with a system or its
  984.                   coordinator, this node will never be redirected.
  985.         
  986.         
  987.         
  988.         V7BugFix
  989.         
  990.                 Circumvents a bug with V7 nodelist in Binkley 2.50 (and
  991.                 perhaps in many other programs whose V7 search function
  992.                 was inspired by Binkley's sources) that can sometimes
  993.                 hide segments of V7 nodelist.
  994.         
  995.                 Binkley 2.60 is OK, but some other programs may not: if
  996.                 you are unsure, keep this keyword active.
  997.         
  998.         
  999.         
  1000.         MsgLogArea <path> [-$]
  1001.         
  1002.                 Some information about the compilation can be reported
  1003.                 to a fido or squish message area.
  1004.         
  1005.                 <path> indicates a message area for reporting
  1006.                        compilation logs.
  1007.         
  1008.                 -$     specifies that the area is in Squish format;
  1009.                        otherwise it is assumed to be *.MSG.
  1010.         
  1011.                 The "MsgLog" and "LogStats" statements can be used
  1012.                 to add some information that is not reported by default.
  1013.         
  1014.             Examples:
  1015.         
  1016.                 MsgLogArea \bbs\mail\net -$
  1017.                 MsgLogArea \bbs\mail\net\
  1018.         
  1019.         
  1020.         
  1021.         MsgRemArea <path> [-$]
  1022.         
  1023.                 The comments found in the compiled nodelists can be
  1024.                 selectively reported to a fido or squish message area.
  1025.         
  1026.                 <path> indicates a message area for reporting
  1027.                        compilation logs.
  1028.         
  1029.                 -$     specifies that the area is in Squish format;
  1030.                        otherwise it is assumed to be *.MSG.
  1031.         
  1032.                 The "MsgRem" statement (see Global Section C) MUST be
  1033.                 used to specify which types of comments you want to be
  1034.                 reported.
  1035.         
  1036.                 Please note that no comments are reported if no "MsgRem"
  1037.                 statement is used.
  1038.         
  1039.             Examples:
  1040.         
  1041.                 MsgRemArea \bbs\mail\net -$
  1042.                 MsgRemArea \bbs\mail\net\
  1043.         
  1044.         
  1045.         
  1046.         MsgFromNode <address>
  1047.         MsgToNode <address>
  1048.         
  1049.                 Specify the addresses for the created messages.
  1050.         
  1051.                 <address> is a 4D address.
  1052.         
  1053.             Example:
  1054.         
  1055.                 MsgFromNode 2:332/504
  1056.                 MsgToNode   2:332/504.1
  1057.         
  1058.         
  1059.         
  1060.         MsgTo <name>
  1061.         
  1062.                 Specifies the name of the addressee of the created
  1063.                 messages.
  1064.         
  1065.             Example:
  1066.         
  1067.                 MsgTo Alberto Pasquale
  1068.         
  1069.         
  1070.         
  1071.         MsgAttr <attributes>
  1072.         
  1073.                 Specifies the attributes for the created messages.
  1074.         
  1075.                 <attributes> can be a (not case sensitive) combination
  1076.                 of:
  1077.         
  1078.                 P : Private
  1079.                 K : Kill/Sent
  1080.                 C : Crash
  1081.                 H : Hold
  1082.                 D : Direct (crash + hold in squish messages)
  1083.         
  1084.             Examples:
  1085.         
  1086.                 MsgAttr P
  1087.                 MsgAttr pk
  1088.         
  1089.         
  1090.         
  1091.         MsgSize <bytes>
  1092.         
  1093.                 Specifies the maximum size of a single message: after
  1094.                 this length, the message is split.
  1095.         
  1096.                 Defaults to 7K, greater values are recommended, so that
  1097.                 the message is not divided into too many parts.
  1098.         
  1099.             Example:
  1100.         
  1101.                 MsgSize 60000
  1102.  
  1103.         
  1104.         
  1105.         CostNullPhone <Cost> [<UCost>]
  1106.         
  1107.                 Specifies the costs to be assigned to nodes with empty
  1108.                 (unpublished, etc.) phone number.
  1109.         
  1110.                 <Cost> is the "call cost" .
  1111.                 <UCost> is the "user cost" (fee for netmail messages).
  1112.         
  1113.                 <UCost> defaults to <Cost>.
  1114.         
  1115.                 If CostNullPhone is not used, <Cost> defaults to 65535
  1116.                 and <UCost> to 0.
  1117.         
  1118.             Example:
  1119.         
  1120.                 CostNullPhone 1000 0
  1121.         
  1122.             Note:
  1123.         
  1124.                 Some programs might have bugs that cause problems
  1125.                 dealing with high costs (such as the default 65535).
  1126.                 Should you experience problems with entries that have a
  1127.                 "NullPhone", try setting a lower cost e.g.
  1128.                 "CostNullPhone 900 0".
  1129.         
  1130.         
  1131.         
  1132.         CostVerbatimPhone <Cost> [<UCost>]
  1133.         
  1134.                 Specifies the costs to be assigned to nodes that have
  1135.                 a verbatim phone specification.
  1136.         
  1137.                 <Cost> is the "call cost" .
  1138.                 <UCost> is the "user cost" (fee for netmail messages).
  1139.         
  1140.                 <UCost> defaults to <Cost>.
  1141.         
  1142.                 If the statement is not used, both costs default to 0.
  1143.         
  1144.             Example:
  1145.         
  1146.                 CostVerbatimPhone 10 0
  1147.         
  1148.         
  1149.         
  1150.                           Dial/Cost translation Table
  1151.         
  1152.         
  1153.         With this table you specify the dial translations and the costs
  1154.         to be applied depending on the phone number.
  1155.         
  1156.         Note: This table is not used against "Verbatim Phones".
  1157.         
  1158.         The table begins with "Dial" and ends with the "End" keyword.
  1159.         
  1160.         Each entry has the following format:
  1161.         
  1162.         <PartPhone> <PreSuf> [<Costs>]
  1163.         
  1164.         
  1165.         The following two keywords allow to specify groups of exchanges
  1166.         that must be handled by a certain dial table entry:
  1167.         
  1168.         
  1169.         LocalValues <PartPhone> <PreSuf> [<Costs>]
  1170.         
  1171.                 This keyword is provided for clarity only: it is
  1172.                 taken just as a normal specification with no
  1173.                 heading "LocalValues".
  1174.         
  1175.         
  1176.         LocalExchanges <num> ...
  1177.         
  1178.                 Lists all the exchanges that must be handled as per the
  1179.                 preceding dial translation entry (which may be preceded
  1180.                 by the "LocalValues" keyword for clarity).
  1181.         
  1182.                 Please remember that the line length is limited to 254
  1183.                 characters.
  1184.         
  1185.                 You can use multiple "LocalExchanges <num> ..."
  1186.                 statements if you like short lines or need more than
  1187.                 254 characters.
  1188.         
  1189.                 Please note that all numbers that (after <PartPhone>
  1190.                 stripping) begin with <num> are considered local.
  1191.                 For example, if 220, 221, 222, 223, 224, 225, 226, 227,
  1192.                 228, 229 are all local exchanges, you can indicate 22 to
  1193.                 include them all.
  1194.         
  1195.         
  1196.         The use of these two statements in the place of a long list of
  1197.         normal table lines (one for each local exchange) should also
  1198.         speed up the processing of all the nodelist entries that are not
  1199.         in your area code.
  1200.         
  1201.         
  1202.         
  1203.         <PartPhone>
  1204.                 is a partial phone number to be matched with the initial
  1205.                 part of nodelist entries. The dashes are ignored. The
  1206.                 <PartPhone> of the last entry must be a single dash "-",
  1207.                 to mean that all the remaining numbers will take the
  1208.                 parameters specified there.
  1209.         
  1210.         <PreSuf>
  1211.                 can be one of:
  1212.                     a: <Prefix>
  1213.                     b: /<Suffix>
  1214.                     c: <Prefix>/<Suffix>
  1215.                     d: /
  1216.         
  1217.                 <PartPhone> is stripped from numbers beginning with it,
  1218.                 then <PreSuf> is used to prepend/append the specified
  1219.                 strings to the remainder.
  1220.         
  1221.                 Case a: <Prefix> is prepended.
  1222.                         e.g.: "39- 0"
  1223.                         strips "39-" and adds "0" at the beginning of
  1224.                         the number.
  1225.         
  1226.                 Case b: <Suffix> is appended.
  1227.                         e.g.: "39-59- /!"
  1228.                         strips "39-59-" and adds "!" at the end of the
  1229.                         number.
  1230.         
  1231.                 Case c: <Prefix> is prepended and <Suffix> appended.
  1232.                         e.g.: "39- 0/!"
  1233.                         strips "39-", adds "0" at the beginning and "!"
  1234.                         at the end.
  1235.         
  1236.                 Case d: Nothing is prepended nor appended.
  1237.                         e.g.: "/"
  1238.                         The slash is needed to allow the correct
  1239.                         interpretation of the subsequent fields.
  1240.         
  1241.                 No spaces are allowed between prefix, suffix and the
  1242.                 separating slash.
  1243.         
  1244.         <Costs>
  1245.         
  1246.         You can specify up to 4 cost fields:
  1247.         
  1248.         <Cost> [<UCost> [<DigCost> [<DigUCost>]]]
  1249.         
  1250.         Each one has a range 0-65535.
  1251.         
  1252.         <Cost>     is the Call cost, default: 65535.
  1253.         <UCost>    is the User cost, default: <Cost>.
  1254.         <DigCost>  is the Digital Call cost, default: <Cost>.
  1255.         <DigUCost> is the Digital User cost.
  1256.         
  1257.         <DigUCost> defaults to <DigCost> if it is specified, otherwise
  1258.         it defaults to <UCost>.
  1259.         
  1260.         If you like your users to send netmail messages from the BBS
  1261.         with no need for "credits", you should set <UCost> and
  1262.         <DigUCost> to 0.
  1263.         
  1264.         When searching for "PartPhone", the first matching entry is
  1265.         applied: in the case of entries with an initial part in common,
  1266.         you have to specify them in sequence from the longest to the
  1267.         shortest. If no match is possible, the last line specifies the
  1268.         default (thereby international) parameters.
  1269.         
  1270.         WARNING: This table CANNOT be left totally empty: it must
  1271.         contain at least the default entry  "- [<PreSuf>]".
  1272.         
  1273.         
  1274.             Example 1a/b/c (North American viewpoint):
  1275.         
  1276.                 There are some groups of phone numbers:
  1277.         
  1278.                 1 - Local numbers.
  1279.                     These are usually "toll free" numbers.
  1280.                     As a rule of thumb, you must only dial the local
  1281.                     number, stripping the Country Code "1" and the
  1282.                     Area Code.
  1283.                     In the case you live at the crossroads of two or
  1284.                     more area codes, it is possible that you have local
  1285.                     numbers in area codes that you must _not_ strip.
  1286.         
  1287.                 2 - Area Code numbers.
  1288.                     They have your same Area Code but they are long
  1289.                     distance.
  1290.                     As far as I know, there are many different
  1291.                     situations regarding the need to dial the long
  1292.                     distance access code "1" and the Area Code.
  1293.                     In any case you usually want to differentiate costs.
  1294.         
  1295.                     The Country "1" and Area Codes must be stripped and
  1296.                     replaced by:
  1297.         
  1298.                     (a) the long distance access code "1"
  1299.                     (b) the long distance access code "1" +
  1300.                         the Area Code
  1301.                     (c) nothing
  1302.         
  1303.                     In case (b) the number really remains untouched.
  1304.         
  1305.                     Even if the Country Code for USA/Canada "1" is
  1306.                     numerically equal to your long distance acces code,
  1307.                     they are conceptually quite different, and so they
  1308.                     will be treated.
  1309.         
  1310.                 3 - Domestic numbers.
  1311.                     USA/Canada numbers, with a leading "1", that is the
  1312.                     international Country Code for USA and Canada.
  1313.                     They must be left untouched, since the american long
  1314.                     distance access code is equal to the international
  1315.                     Country Code for North America.
  1316.         
  1317.                 4 - International numbers.
  1318.                     These are numbers out of USA and Canada.
  1319.                     They must be prefixed by "011", that is the
  1320.                     international access code.
  1321.         
  1322.                 And now let's see how to achieve our goal using
  1323.                 FastLst's Dial Table.
  1324.         
  1325.         
  1326.         
  1327.             Example 1a:
  1328.         
  1329.                 Let's suppose:
  1330.         
  1331.                 - we are in Area Code 414
  1332.                 - the 414 must be stripped for LD calls
  1333.                 - the local exchanges are 231, 232, 233, 235, 236, 424
  1334.         
  1335.         
  1336.                 Dial
  1337.                         ; strip 1-414- from local numbers, do not add
  1338.                         ; a prefix, set call and user costs to 0.
  1339.         
  1340.                   LocalValues 1-414- / 0
  1341.                   LocalExchanges 231 232 233 235 236 424
  1342.         
  1343.                         ; Remaining "1-414-" numbers are long distance:
  1344.                         ; strip the 414 Area Code and assign costs = 25.
  1345.         
  1346.                   1-414-  1-  25
  1347.         
  1348.                         ; Remaining "1-" numbers are Domestic Long
  1349.                         ; Distance.
  1350.                         ; Set costs to 50
  1351.         
  1352.                   1-      1-  50
  1353.         
  1354.                         ; Remaining numbers are international.
  1355.                         ; Prepend 011 and set call cost to 250 and
  1356.                         ; user cost to 500
  1357.         
  1358.                   -       011 250 500
  1359.                 End
  1360.         
  1361.         
  1362.         
  1363.             Example 1b:
  1364.         
  1365.                 Let's suppose:
  1366.         
  1367.                 - we are in Area Code 604
  1368.                 - the 604 must NOT be stripped for LD calls
  1369.                 - the local exchanges are 220 221 222 224 228 230 231
  1370.                   240 241 244 250 251 252 253 254 255 257 258 261 263
  1371.                   264 266
  1372.         
  1373.         
  1374.                 Dial
  1375.                         ; strip 1-604- from local numbers, do not add
  1376.                         ; a prefix, set call and user costs to 0.
  1377.         
  1378.                   LocalValues 1-604- / 0
  1379.                   LocalExchanges 220 221 222 224 228 230 231 240
  1380.                   LocalExchanges 241 244 250 251 252 253 254 255
  1381.                   LocalExchanges 257 258 261 263 264 266
  1382.         
  1383.                         ; Remaining "1-604-" numbers are long distance:
  1384.                         ; assign costs = 25.
  1385.         
  1386.                   1-604-  1-604-  25
  1387.         
  1388.                         ; Remaining "1-" numbers are Domestic Long
  1389.                         ; Distance.
  1390.                         ; Set costs to 50
  1391.         
  1392.                   1-      1-  50
  1393.         
  1394.                         ; Remaining numbers are international.
  1395.                         ; Prepend 011 and set call cost to 250 and
  1396.                         ; user cost to 500
  1397.         
  1398.                   -       011 250 500
  1399.                 End
  1400.         
  1401.         
  1402.         
  1403.             Example 1c:
  1404.         
  1405.                 Let's suppose:
  1406.         
  1407.                 - we are at the crossroads of Area Codes 510, 408, 415
  1408.                 - "1-510" must always be stripped
  1409.                 - "1-408" and "1-415" must never be stripped
  1410.                 - some exchanges are toll-free, others are not
  1411.         
  1412.         
  1413.                 Dial
  1414.                         ; strip 1-510- from local numbers, do not add
  1415.                         ; a prefix, set call and user costs to 0.
  1416.         
  1417.                   LocalValues 1-510- / 0
  1418.                   LocalExchanges 224 225 226 227 247 249 252 264 276
  1419.                   LocalExchanges 278 293 317 353 354 416 417
  1420.         
  1421.                         ; Specify local exchanges for area code 408,
  1422.                         ; keep "1-408".
  1423.         
  1424.                   LocalValues 1-408- 1-408- 0
  1425.                   LocalExchanges 232 251 254 258 259 262 263 272 276
  1426.                   LocalExchanges 321 324 325 383 428 432 433 434
  1427.         
  1428.                         ; Specify local exchanges for area code 415,
  1429.                         ; keep "1-415".
  1430.         
  1431.                   LocalValues 1-415- 1-415- 0
  1432.                   LocalExchanges 233 234 321 322 323 324 325 326 327
  1433.                   LocalExchanges 328 329 354 424 462 473 493
  1434.         
  1435.                         ; Remaining "1-510-" numbers are not free,
  1436.                         ; the country and area codes are stripped.
  1437.         
  1438.                   1-510- /      25
  1439.         
  1440.                         ; Remaining numbers in area codes 408 and
  1441.                         ; 415 are not free, nothing is stripped.
  1442.         
  1443.                   1-408- 1-408- 25
  1444.                   1-415- 1-415- 25
  1445.         
  1446.                         ; Remaining numbers in country code "1"
  1447.                         ; are domestic: nothing changed, cost 100.
  1448.         
  1449.                   1-     1-     100
  1450.         
  1451.                         ; Remaining numbers are international.
  1452.                         ; Prepend 011 and set cost to 2000.
  1453.         
  1454.                   -      011    2000
  1455.         
  1456.                 End
  1457.         
  1458.         
  1459.         
  1460.             Example 2 (European viewpoint):
  1461.         
  1462.                 We differentiate between city, district, domestic and
  1463.                 international.
  1464.         
  1465.                 Dial
  1466.                   LocalValues 39-59- / 5
  1467.                   LocalExchanges 2 3 4 56 81 82    ; city
  1468.                   39-59- /      30   ; district
  1469.                   39-    0      60   ; domestic long distance
  1470.                   43     0043- 100   ; Austria
  1471.                   32     0032- 100   ; Belgium
  1472.                   45     0045- 100   ; Denmark
  1473.                   33     0033- 100   ; France
  1474.                   49     0049- 100   ; Germany
  1475.                   44     0044- 100   ; UK
  1476.                   31     0031- 100   ; Netherlands
  1477.                   34     0034- 100   ; Spain
  1478.                   46     0046- 100   ; Sweden
  1479.                   41     0041- 100   ; Switzerland
  1480.                   1      001-  200   ; USA/Canada
  1481.                   -      00    300   ; others
  1482.                 End
  1483.         
  1484.         
  1485.             Example 3 (Separate Analog/Digital costs):
  1486.         
  1487.                 For people who pay different charges for analog and
  1488.                 digital calls, FastLst allows to specify separate
  1489.                 digital costs (that will be used for nodes that are
  1490.                 given a Digital ModemType).
  1491.         
  1492.                 Let's suppose we want null User Costs and Digital Costs
  1493.                 twice as high as the Analog ones.
  1494.         
  1495.                 Dial
  1496.                   LocalValues 39-59- / 5 0 10 0
  1497.                   LocalExchanges 2 3 4 56 81 82    ; city
  1498.                   39-59- /      30 0  60 0  ; district
  1499.                   39-    0      60 0 120 0  ; domestic long distance
  1500.                   -      00    300 0 600 0  ; international
  1501.                 End
  1502.         
  1503.         
  1504.             Example 4:
  1505.         
  1506.                 Minimal table for sysops that make dial translations and
  1507.                 cost assignments somewhere else.
  1508.         
  1509.                 Dial
  1510.                   -
  1511.                 End
  1512.  
  1513.         
  1514.         
  1515.                                 Modem Type Table
  1516.         
  1517.         
  1518.         This table allows to set the Modem Type, costs and dial
  1519.         translations depending on the nodelist flags.
  1520.         
  1521.         Syntax:
  1522.         
  1523.         TypeDef
  1524.           <Flag> <ModemType> [<Cost> <UCost> [<DialTrans>]]
  1525.           <Flag> <ModemType> [Digital|Analog]
  1526.           ...
  1527.         End
  1528.         
  1529.         <Flag> is a Nodelist flag (max 49 chars),
  1530.         <ModemType> is a number 0->255.
  1531.         
  1532.         The nodelist flags of each node are searched for <Flag>s, in the
  1533.         same order as they are listed in the TypeDef table.
  1534.         
  1535.         The <Flag> must match completely a nodelist flag: if <Flag> is
  1536.         V32 and the nodelist flag is V32B, it's not a match.
  1537.         The search is not case sensitive.
  1538.         
  1539.         The ModemType field of the compiled nodelist will be determined
  1540.         by the first match only: If you define X75 before V34, a node
  1541.         with both V34 and X75 will have a X75 modem type.
  1542.         
  1543.         When <Flag> is for a PSTN system, you can optionally indicate
  1544.         whether it is DIGITAL or ANALOG (which is the default); this is
  1545.         useful for assigning special Digital costs if you have
  1546.         configured them in the Dial/Cost table.
  1547.         
  1548.         When <Flag> is for a non-PSTN system (e.g. internet) you can
  1549.         specify the costs (which override the CostVerbatimPhone) and
  1550.         dial translations.
  1551.         
  1552.         <Cost>  The Call Cost, range: 0-65535
  1553.         <UCost> The User Cost, range: 0-65535
  1554.         
  1555.         <DialTrans> The Dial Translations, for "verbatim" phones.
  1556.         
  1557.             These dial translations DO NOT affect the indexed entry (in
  1558.             <NODEX>.PDX) and are intended as a work around for the dial
  1559.             translations operated by the mailer or the modem-emulator.
  1560.         
  1561.             The syntax requires a set of strings.
  1562.         
  1563.             The first character of each string will be substituted
  1564.             with the remaining characters.
  1565.         
  1566.             A string containing space ' ' or semi-colon ';' MUST be
  1567.             included in quotation marks. If the quotation mark is needed
  1568.             inside the quoted string, it must be double.
  1569.         
  1570.             15 strings of 5 characters are allowed.
  1571.         
  1572.             Example:
  1573.         
  1574.             You need to translate '.' to '*', ':' to ' ', 'v' to
  1575.             'V'; call_cost=100, user_cost=0:
  1576.         
  1577.             Typedef
  1578.               [...]
  1579.               VM 200 100 0 .* ": " vV
  1580.               [...]
  1581.             End
  1582.         
  1583.             You want to translate '.' to '\.', ':' to ' ', 'v' to
  1584.             'V'; call_cost=150, user_cost=100:
  1585.         
  1586.             Typedef
  1587.               [...]
  1588.               VM 200 150 100 .\. ": " vV
  1589.               [...]
  1590.             End
  1591.         
  1592.         
  1593.             Recommended dial translations for Binkley and VMODEM:
  1594.         
  1595.             -\- .* vV ~\~ ": "
  1596.         
  1597.         
  1598.         Full example of TypeDef table:
  1599.         
  1600.                 for USR Courier I-modem + VMODEM:
  1601.         
  1602.         
  1603.                 TypeDef
  1604.                   X75   1   Digital
  1605.                   ISDNC 1   Digital
  1606.                   V120  2   Digital
  1607.                   V120H 2   Digital
  1608.                   V120L 3   Digital
  1609.                   V34   4   Analog
  1610.                   VFC   5   Analog
  1611.                   V32T  6   Analog
  1612.                   H16   7   Analog
  1613.                   V32B  8   Analog
  1614.                   ZYX   8   Analog ; ZYX implies V32B
  1615.                   Z19   8   Analog
  1616.                   Z16   8   Analog
  1617.                   H14   9   Analog
  1618.                   V32   10  Analog
  1619.                   HST   11  Analog
  1620.                   VM    200 100 0 -\- .* vV ~\~ ": " ; VMODEM
  1621.                 End
  1622.         
  1623.         
  1624.             In Binkley.Cfg for the I-modem you can use:
  1625.         
  1626.         
  1627.                 ModemTrans   0
  1628.                 ModemTrans   1 AT*V2=6D/    ; X75
  1629.                 ModemTrans   2 AT*V2=1D/    ; V120
  1630.                 ModemTrans   3 AT*V2=1D/    ; V120L
  1631.                 ModemTrans   4 AT*V2=3B0D/  ; V34
  1632.                 ModemTrans   5 AT*V2=3B0D/  ; VFC
  1633.                 ModemTrans   6 AT*V2=3B0D/  ; V32T
  1634.                 ModemTrans   7 AT*V2=3B1D/  ; H16
  1635.                 ModemTrans   8 AT*V2=3B0D/  ; V32B
  1636.                 ModemTrans   9 AT*V2=3B1D/  ; H14
  1637.                 ModemTrans  10 AT*V2=3B0D/  ; V32
  1638.                 ModemTrans  11 AT*V2=3B1D/  ; HST
  1639.                 ModemTrans 200
  1640.         
  1641.             In Binkley.Cfg for VMODEM you can use:
  1642.         
  1643.         
  1644.                 ModemTrans   0
  1645.                 ModemTrans   1
  1646.                 ModemTrans   2
  1647.                 ModemTrans   3
  1648.                 ModemTrans   4
  1649.                 ModemTrans   5
  1650.                 ModemTrans   6
  1651.                 ModemTrans   7
  1652.                 ModemTrans   8
  1653.                 ModemTrans   9
  1654.                 ModemTrans  10
  1655.                 ModemTrans  11
  1656.                 ModemTrans 200 ATDT#/   ; VMODEM
  1657.         
  1658.         
  1659.  
  1660.         
  1661.         
  1662.                                 User Flags Table
  1663.         
  1664.         
  1665.         This is an optional table used to handle the "user defined" bits
  1666.         in the Flags word of the compiled nodelist entry.
  1667.         
  1668.         These bits are named 5,6,7,8,9,A,B,D,E,F where bit 5 is the 6th
  1669.         bit and F is the 16th bit of the word.
  1670.         
  1671.         Using this table, you can associate (source) nodelist flags to
  1672.         user defined bits in the output binary nodelist.
  1673.         
  1674.         The table is delimited by the "FlagDef" and "End" keywords; each
  1675.         line is in the form "<sFlag> <bFlags>" where <sFlag> is a flag
  1676.         (max 9 chars) to be looked for in the source nodelists while
  1677.         <bFlags> represents one or more user-defined bits in the output
  1678.         Flags word.
  1679.         
  1680.             Example:
  1681.         
  1682.                 FlagDef
  1683.                   V42B  AB  ; V42B -> user bits A and B
  1684.                   V32B  DE  ; V32B -> user bits D and E
  1685.                 End
  1686.         
  1687.         
  1688.         To add further flags on a node by node basis, please use the
  1689.         "Flags <Addr> <Flags>" statement.
  1690.         
  1691.         To remove flags, please specify the source flags via the
  1692.         "NodeFlags <Addr> <NodeFlags>" statement.
  1693.         
  1694.         
  1695.         
  1696.                                   G L O B A L
  1697.         
  1698.                                    Section B
  1699.         
  1700.         
  1701.         
  1702.         The statements in this section affect the processing of all
  1703.         the output blocks and thereby of all the input nodelists.
  1704.         
  1705.         These statements can also be used in the "OUTPUT" section of an
  1706.         OUTPUT block or inside an INPUT block, in which case they affect
  1707.         the compilation of the relevant block only.
  1708.         
  1709.         In the case you use a verb that has already been used in a
  1710.         "higher level" block, it will behave as a local override.
  1711.         
  1712.         
  1713.         
  1714.         NeededBeforeKill
  1715.         
  1716.                 Tells FastLst that the affected NodeList(s) are needed
  1717.                 by the command run via the "BeforeKillSource" statement.
  1718.         
  1719.                 The "BeforeKillSource" verb allows you to run a command
  1720.                 (executable or batch file) after the compilation has
  1721.                 completed, just before FastLst ends and (if "KillSource"
  1722.                 is used) deletes the source files that are also present
  1723.                 in archived form.
  1724.         
  1725.                 The lists affected by "NeededBeforeKill" are extracted,
  1726.                 if not already present, before the "BeforeKillSource"
  1727.                 command is executed.
  1728.         
  1729.         
  1730.         
  1731.         ArcMethod <meth>[,<f>] ...
  1732.         
  1733.                 Tells FastLst that it must make sure that all new
  1734.                 nodelists are archived using the specified methods.
  1735.                 The original archive is NOT killed.
  1736.         
  1737.                 Obviously, a new nodelist is not rearchived to its
  1738.                 original method.
  1739.         
  1740.                 <meth> is the name of an archiver defined in
  1741.                 compress.cfg.
  1742.         
  1743.                 <f> is the optional specification of the letter to be
  1744.                 used for the variable archive extension. If not
  1745.                 specified, it is assumed equal to the first letter of
  1746.                 the defaults extension for this archiver.
  1747.         
  1748.                 Multiple ArcMethod statements are allowed.
  1749.         
  1750.         
  1751.             Example 1:
  1752.         
  1753.                 ArcMethod ZIP LH,H
  1754.         
  1755.                 NodeList.Z48 arrives: it is archived to NodeList.H48
  1756.                 also, using the LH archiver.
  1757.         
  1758.         
  1759.             Example 2:
  1760.         
  1761.                 ArcMethod ZIP LH
  1762.         
  1763.                 NodeDiff.Z48 arrives: the resulting nodelist is archived
  1764.                 to NodeList.Z48 using the ZIP archiver and to
  1765.                 NodeList.L48 using LH.
  1766.         
  1767.         
  1768.         
  1769.         ArcDiffMethod <meth>[,<f>] ...
  1770.         
  1771.                 Tells FastLst that it must make sure that all new
  1772.                 nodediffs are archived using the specified methods.
  1773.                 The original archive is NOT killed.
  1774.         
  1775.                 Obviously, a new nodediff is not rearchived to its
  1776.                 original method.
  1777.         
  1778.                 <meth> is the name of an archiver defined in
  1779.                 compress.cfg.
  1780.         
  1781.                 <f> is the optional specification of the letter to be
  1782.                 used for the variable archive extension. If not
  1783.                 specified, it is assumed equal to the first letter of
  1784.                 the defaults extension for this archiver.
  1785.         
  1786.                 Multiple ArcDiffMethod statements are allowed.
  1787.         
  1788.         
  1789.             Example:
  1790.         
  1791.                 ArcDiffMethod ZIP LH,H
  1792.         
  1793.                 NodeDiff.Z48 arrives: it is archived to NodeDiff.H48
  1794.                 also, using the LH archiver.
  1795.         
  1796.         
  1797.         
  1798.         
  1799.                                EXTERNAL COMMANDS
  1800.         
  1801.         
  1802.         The following verbs allow to invoke external commands.
  1803.         
  1804.         <command> can be any legal command-line command: it can be the
  1805.         name of an executable file, a batch file or any command that can
  1806.         be understood by your command-line interpreter (OS/2's CMD,
  1807.         4OS2, etc.).
  1808.         
  1809.         If <command> does not directly invoke an executable file,
  1810.         FastLst automatically invokes your default command line
  1811.         interpreter (as specified by the COMSPEC environment variable).
  1812.         
  1813.         
  1814.                             Archive Related Commands
  1815.         
  1816.         
  1817.         The following verbs share the same syntax:
  1818.         
  1819.         Two parameters are allowed in <command>:
  1820.         
  1821.         %a is translated to the full pathname of the archive file.
  1822.         
  1823.         %f is translated to the name of the file to be added or
  1824.            extracted (no path).
  1825.         
  1826.         <command> is run from the path where %f belongs.
  1827.         
  1828.         
  1829.         
  1830.         BeforeArcList <command>
  1831.         
  1832.                 Command to be run before archiving a nodelist.
  1833.         
  1834.         
  1835.         AfterArcList <command>
  1836.         
  1837.                 Command to be run after archiving a nodelist.
  1838.         
  1839.         
  1840.         BeforeUnArcList <command>
  1841.         
  1842.                 Command to be run before extracting a nodelist.
  1843.         
  1844.         
  1845.         AfterUnArcList <command>
  1846.         
  1847.                 Command to be run after extracting a nodelist.
  1848.         
  1849.         
  1850.         BeforeArcDiff <command>
  1851.         
  1852.                 Command to be run before archiving a nodediff.
  1853.         
  1854.         
  1855.         AfterArcDiff <command>
  1856.         
  1857.                 Command to be run after archiving a nodediff.
  1858.         
  1859.         
  1860.         BeforeUnArcDiff <command>
  1861.         
  1862.                 Command to be run before extracting a nodediff.
  1863.         
  1864.         
  1865.         AfterUnArcDiff <command>
  1866.         
  1867.                 Command to be run after extracting a nodediff.
  1868.         
  1869.         
  1870.                                     Example
  1871.         
  1872.         To hatch the new nodelist (note that you probably need to
  1873.         specify the location of the config file since the command is
  1874.         executed from the directory where %f resides):
  1875.         
  1876.           AfterArcList Hatch %a NODELIST "New NodeList"
  1877.         
  1878.         
  1879.         
  1880.                            NodeDiff Related Commands
  1881.         
  1882.         
  1883.         The following verbs accept different parameters:
  1884.         
  1885.         %l is translated to the full pathname of the nodelist.
  1886.         
  1887.         %d is translated to the full pathname of the nodediff.
  1888.         
  1889.         <command> is run from the current directory.
  1890.         
  1891.         
  1892.         
  1893.         BeforeEdit <command>
  1894.         
  1895.                 Command to be run before applying a nodediff.
  1896.         
  1897.         
  1898.         AfterEdit <command>
  1899.         
  1900.                 Command to be run after applying a nodediff.
  1901.                 Only %l can be used.
  1902.         
  1903.         
  1904.         
  1905.                                   G L O B A L
  1906.         
  1907.                                    Section C
  1908.         
  1909.         
  1910.         
  1911.         The statements in this section affect the processing of all
  1912.         the output blocks and thereby of all the input nodelists.
  1913.         
  1914.         These statements can also be used in the "OUTPUT" section of an
  1915.         OUTPUT block (except for the "NoCompile" one) or inside an INPUT
  1916.         block, in which case they affect the compilation of the relevant
  1917.         block only.
  1918.         
  1919.         In the case you use a verb that has already been used in a
  1920.         "higher level" block, it will behave as a local override.
  1921.         
  1922.         
  1923.         
  1924.         MsgRem [<string>]
  1925.         
  1926.                 If MsgRemArea is used, FastLst reports the following
  1927.                 comments:
  1928.         
  1929.                 No MsgRem statement: none;
  1930.         
  1931.                 MsgRem with no <string>: all;
  1932.         
  1933.                 MsgRem with <string>: only the comments that begin with
  1934.                 ";<l> " where <l> is one of the characters in <string>.
  1935.         
  1936.                 The ";" character in <string> means that the comments
  1937.                 beginning with "; " or ";<word>" can be reported.
  1938.         
  1939.                 Common types of comment lines:
  1940.         
  1941.                 ;S This is a comment for SysOps
  1942.                 ;U This is a comment for users
  1943.                 ;F This comment should appear in formatted Fido lists
  1944.                 ;A This is a comment of general interest
  1945.                 ;E This comment is an error message
  1946.         
  1947.             Example:
  1948.         
  1949.                 "MsgRem SE"
  1950.         
  1951.                 Only comments destined to SysOps and Error messages are
  1952.                 reported (lines beginning with ";S " and ";E ").
  1953.         
  1954.         
  1955.         
  1956.         MsgLog [NullPhone] [Redirected] [Points]
  1957.         
  1958.                 Some common situations (not really errors) are not
  1959.                 reported to MsgLogArea by default: if you want FastLst
  1960.                 to report them anyway, you can use this statement, but
  1961.                 be aware that very long reports could come out.
  1962.         
  1963.                 "NullPhone": systems with empty phone string are logged.
  1964.         
  1965.                 "Redirected": systems redirected to their coordinators
  1966.                 are logged (Hold, unpublished).
  1967.         
  1968.                 "Points": points with empty phone string are logged; be
  1969.                 aware that most pointlists contain unpublished (thereby
  1970.                 with empty phone) points.
  1971.         
  1972.           Examples:
  1973.         
  1974.                 MsgLog Redirected
  1975.                 MsgLog Redirected NullPhone
  1976.         
  1977.         
  1978.         
  1979.         GermanPointList
  1980.         
  1981.                 Instructs FastLst to consider the affected nodelist as a
  1982.                 3D German style pointlist. Zone 2 is assumed, if not
  1983.                 explicitly specified in the "NodeList" statement.
  1984.         
  1985.                 This verb is usually used inside an Input Block, so that
  1986.                 it affects that nodelist only.
  1987.         
  1988.                 WARNING: Be aware that using this statement in the
  1989.                 global section or in an Output block affects all the
  1990.                 involved nodelists !
  1991.         
  1992.             Example Input Block:
  1993.         
  1994.                 NodeList Points24.???
  1995.                   GermanPointList
  1996.                   Nodediff Pr24Diff.???
  1997.                   ArcList Points24.??? 1
  1998.                   ArcDiff Pr24Diff.??? 5
  1999.                   ArcListDesc R24 PointList for day %d (%D), %a format
  2000.                   ArcDiffDesc R24 PointDiff for day %d (%D), %a format
  2001.         
  2002.         
  2003.         
  2004.         NoPointLstPhone
  2005.         
  2006.                 Changes to "-Unpublished-" the phone numbers specified
  2007.                 in the PointLists (German or "Boss" styles).
  2008.         
  2009.                 If you use Squish and Binkley, you usually will like
  2010.                 pointlists with the Boss' phone in the point entries
  2011.                 (otherwise a crash message to a point will have to be
  2012.                 manually readdressed to its Boss).
  2013.         
  2014.                 But if you use a netmail manager (as NmFwd) that already
  2015.                 routes the crash messages for points that do not have a
  2016.                 phone to their Boss, then you will probably like this
  2017.                 statement.
  2018.         
  2019.                 You will usually find convenient to use this statement
  2020.                 in the global section, so that it is valid for all the
  2021.                 nodelists.
  2022.         
  2023.         
  2024.         
  2025.         BeforeCompile <command>
  2026.         
  2027.                 Command to be run before compiling the affected
  2028.                 nodelist.
  2029.         
  2030.                 This statement follows the same rules explained in
  2031.                 "External Commands" in section B.
  2032.         
  2033.                 The %l parameter is translated to the full pathname of
  2034.                 the nodelist.
  2035.         
  2036.                 <command> is run from the current directory.
  2037.         
  2038.         
  2039.         
  2040.         AfterCompile <command>
  2041.         
  2042.                 Command to be run after compiling the affected nodelist.
  2043.         
  2044.                 This statement follows the same rules explained in
  2045.                 "External Commands" in section B.
  2046.         
  2047.                 The %l parameter is translated to the full pathname of
  2048.                 the nodelist.
  2049.         
  2050.                 <command> is run from the current directory.
  2051.         
  2052.         
  2053.         
  2054.         FidoTxt [<FidoTxt>]
  2055.         
  2056.                 Generate an 80 Column Text List of nodes.
  2057.                 Nodes included via the "Node,..." method and points are
  2058.                 excluded.
  2059.         
  2060.                 <FidoTxt> optionally specifies an output file name,
  2061.                 which defaults to "NodeList.Txt". If the same file name
  2062.                 has already been used for other nodelists, the output is
  2063.                 appended.
  2064.         
  2065.             Example:
  2066.         
  2067.                 FidoTxt
  2068.         
  2069.         
  2070.         
  2071.         FidoPrn [<FidoPrn>]
  2072.         
  2073.                 Generate a 132 Column Text List of nodes.
  2074.                 Nodes included via the "Node,..." method and points are
  2075.                 excluded.
  2076.         
  2077.                 <FidoPrn> optionally specifies an output file name,
  2078.                 which defaults to "NodeList.Prn". If the same file name
  2079.                 has already been used for other nodelists, the output is
  2080.                 appended.
  2081.         
  2082.             Example:
  2083.         
  2084.                 FidoPrn
  2085.         
  2086.         
  2087.         
  2088.         IncCoord <CoordLev>
  2089.         
  2090.                 The coordinators of the specified and upper levels will
  2091.                 be always included, even if excluded by "IncAddr" and
  2092.                 "ExcAddr". <CoordLev> can be ZC, RC, NC, HC.
  2093.         
  2094.             Example:
  2095.         
  2096.                 IncCoord NC
  2097.         
  2098.         
  2099.         
  2100.                              Global Export Section
  2101.         
  2102.         
  2103.         You can use here the statements described in the "Export Global
  2104.         Section" of the "Export Block" (see "Input Block" inside "Output
  2105.         Block").
  2106.         
  2107.  
  2108.         
  2109.         
  2110.                             O U T P U T   B L O C K
  2111.         
  2112.         
  2113.         
  2114.         The following verbs define the compilation of a single output
  2115.         binary nodelist.
  2116.         
  2117.         The block begins with a "Output Section", that affects the
  2118.         compilation of all the source (input) nodelists, followed by a
  2119.         sequence of "Input Blocks" that define how to handle each of the
  2120.         source nodelists.
  2121.         
  2122.         The first "output block" can be of a special kind: if the
  2123.         "NoCompile" statement is used instead of "Version7+", this block
  2124.         indicates the actions necessary to maintain the specified
  2125.         nodelists, but they are not compiled.
  2126.         
  2127.         
  2128.         
  2129.         Version7[+] <Path> <Nodex> [<Sysop>[.<Ext>]]
  2130.         
  2131.                 Start of a block of config verbs defining the generation
  2132.                 of an output nodelist. You can generate one or more
  2133.                 compiled nodelists with different names and path for the
  2134.                 output files. Each "Version7" statement marks the
  2135.                 beginning of a new output-nodelist definition.
  2136.         
  2137.                 Version7+ is for V7+ while Version7 allows to save space
  2138.                 and generate the V7 files only.
  2139.         
  2140.                 <Path> is the path where the output binary data and
  2141.                 index files are placed.
  2142.         
  2143.                 <Nodex> is the file name (no extension) for the output
  2144.                 files.
  2145.         
  2146.                 <Sysop>.<Ext> is the file name for the sysop-index.
  2147.                 When no extension is given, .NDX is assumed if
  2148.                 <Sysop> is different from <Nodex>, otherwise the .SDX
  2149.                 extension is used.
  2150.         
  2151.                 If you omit <Sysop> with Version7+, <Nodex>.SDX is used
  2152.                 for the SysOp index.
  2153.         
  2154.                 If you omit <Sysop> with Version7, no SysOp index is
  2155.                 generated.
  2156.         
  2157.                 Usually <Nodex> should be "NODEX" and <Sysop> "SYSOP".
  2158.         
  2159.                 If you use V7+ and all of your applications accept
  2160.                 <NODEX>.SDX as the SysOp index, you may omit <Sysop>.
  2161.         
  2162.                 For compatibility with V7 applications that require
  2163.                 "SYSOP.NDX" as SysOp index, "SYSOP" is recommended for
  2164.                 <SysOp>.
  2165.         
  2166.                 All the following verbs, up to the next "Version7" (if
  2167.                 any), are related to the preceding "Version7" output
  2168.                 files.
  2169.         
  2170.             Examples:
  2171.                                                    ; SysOp Index name
  2172.                 Version7+ d:\bbs\v7\ NODEX  SYSOP  ; SYSOP.NDX
  2173.                 Version7+ d:\bbs\v7\ NODEX  NODEX  ; NODEX.SDX
  2174.                 Version7+ d:\bbs\v7\ NODEX         ; NODEX.SDX
  2175.                 Version7  d:\bbs\v7\ NODEX  SYSOP  ; SYSOP.NDX
  2176.                 Version7  d:\bbs\v7\ NODEX  NODEX  ; NODEX.SDX
  2177.                 Version7  d:\bbs\v7\ NODEX         ; no index
  2178.         
  2179.             Version7 Output files:
  2180.                 <Nodex>.DAT     Nodelist Data
  2181.                 <Nodex>.NDX     Address Index
  2182.                 <Sysop>.NDX     SysOp Index (optional)
  2183.         
  2184.                 Some Version7 programs also accept <Nodex>.SDX for the
  2185.                 SysOp Index.
  2186.         
  2187.             Version7+ Output files:
  2188.                 <Nodex>.DAT     Nodelist Data
  2189.                 <Nodex>.DTP     Additional Data
  2190.                 <Nodex>.NDX     Address Index
  2191.                 <Nodex>.SDX     SysOp Index
  2192.                 <Nodex>.PDX     Phone Index
  2193.         
  2194.                 Version7+ programs must also be configurable to accept
  2195.                 <Sysop>.NDX as the SysOp Index for compatibility with V7
  2196.                 programs.
  2197.         
  2198.         
  2199.         NoCompile
  2200.         
  2201.                 This verb can be used to start the first "Output Block",
  2202.                 instead of "Version7".
  2203.         
  2204.                 This way the first output block becomes a "NoCompile"
  2205.                 block and the indicated nodelists are maintained but not
  2206.                 compiled.
  2207.         
  2208.                 This is a means for maintaining a NodeList (applying
  2209.                 nodediffs, archiving with different archivers etc.)
  2210.                 without compiling it.
  2211.         
  2212.                 The statements related to nodelist compilation (see
  2213.                 Global section C) are obviously illegal in a "NoCompile"
  2214.                 block.
  2215.         
  2216.         
  2217.         
  2218.         
  2219.                              O U T P U T   Section
  2220.         
  2221.         
  2222.         The following verbs affect the compilation of the current output
  2223.         block and must precede the definitions of the input blocks
  2224.         (which start with the Nodelist statement).
  2225.         
  2226.         
  2227.         FidoUserLst [<FidoUserLst>]
  2228.         
  2229.                 Generate "fidouser.lst style" text SysOp list.
  2230.                 <FidoUserLst> optionally specifies an output file name,
  2231.                 which defaults to "FidoUser.Lst". Different output
  2232.                 blocks require different names.
  2233.         
  2234.             Example:
  2235.         
  2236.                 Version7+ d:\bbs\v7 NODEX SYSOP
  2237.                    FidoUserLst
  2238.         
  2239.         
  2240.         
  2241.         LinkOnDisk
  2242.         
  2243.                 Forces "on disk" DTP linking.
  2244.         
  2245.                 This can be useful to avoid FastLst using virtual memory
  2246.                 for linking the <NODEX>.DTP file.
  2247.         
  2248.                 If you do not have enough free physical memory (12MB for
  2249.                 60,000 nodes), the "on disk" mode is faster.
  2250.         
  2251.             Example:
  2252.         
  2253.                 Version7+ d:\bbs\v7 NODEX
  2254.                    LinkOnDisk
  2255.         
  2256.         
  2257.         
  2258.         LogStats
  2259.         
  2260.                 Output Statistics to MsgLogArea.
  2261.         
  2262.                 This statements makes FastLst write the statistics for
  2263.                 the current output-nodelist to the area specified with
  2264.                 MsgLogArea.
  2265.         
  2266.             Example:
  2267.         
  2268.                 Version7+ ...
  2269.                   LogStats
  2270.         
  2271.         
  2272.         
  2273.                                 Block Specifications
  2274.         
  2275.         
  2276.         You can use here the same statements described in the "Global
  2277.         Section B" and (if this is not a "NoCompile" block) "Global
  2278.         Section C" and "Export Global Section" (see the Export Block
  2279.         below).
  2280.         
  2281.         
  2282.         
  2283.                              ADDRESS SPECIFIC STUFF
  2284.         
  2285.         
  2286.         
  2287.         The following verbs define address specific stuff that will
  2288.         affect the compilation of all the source nodelists compiled in
  2289.         the current output block. These statements are illegal in a
  2290.         "NoCompile" block.
  2291.         
  2292.         If you prefer, you can specify this type of information in the
  2293.         "Address Specific Stuff" section of the pertinent input block.
  2294.         
  2295.         WARNING: make sure all addresses have full info (incl. zone).
  2296.         
  2297.         
  2298.         
  2299.         Password <Addr> <Password>
  2300.         
  2301.                 Allows to specify <Password> one <Addr> at a time.
  2302.         
  2303.                 Version 7 has no limit on password length, however the
  2304.                 programs that use it are usually limited to 8 chars.
  2305.                 Some (rare) programs have problems with 8 chars and need
  2306.                 a maximum of 7 or 6 chars.
  2307.         
  2308.             Example:
  2309.         
  2310.                 Password 2:332/504.4 Password
  2311.         
  2312.         
  2313.         
  2314.         PasswordFile <PasswordFile>
  2315.         
  2316.                 Allows to include a password file that contains many
  2317.                 address/password couples, one per line.
  2318.         
  2319.                 In this file you can omit the "Password" keyword.
  2320.         
  2321.                 If you like, you can use some "Password" keywords
  2322.                 together with one or more "PasswordFile".
  2323.         
  2324.                 Please note that the definitions found in this file have
  2325.                 effect on the current (Output or Input) block ONLY.
  2326.         
  2327.                 FastLst writes to the log file which source or output
  2328.                 nodelist is affected by each passwordfile; so, in case
  2329.                 of doubts, just check the logs.
  2330.         
  2331.             Example:
  2332.         
  2333.                 PasswordFile fidonet.pwd
  2334.         
  2335.         
  2336.         
  2337.         Phone <Addr> <Phone> [<NodeFlags> [<Cost> [<UCost>]]]
  2338.         
  2339.                 Allows to override a nodelist phone number and
  2340.                 optionally the corresponding "NodeFlags" and costs.
  2341.         
  2342.                 if <Phone> contains non-numeric characters, it is taken
  2343.                 verbatim
  2344.         
  2345.                 If <Phone> contains only digits and dashes '-', it is
  2346.                 considered a PSTN number and MUST be in the form used in
  2347.                 the source nodelist (dial translation will be applied
  2348.                 normally).
  2349.         
  2350.                 <NodeFlags> has the same meaning as in the NodeFlags
  2351.                 statement. To specify an overriding empty <NodeFlags>,
  2352.                 use a single comma.
  2353.         
  2354.                 <Cost> and <UCost> have the same meaning as in the Cost
  2355.                 statement.
  2356.         
  2357.         
  2358.             Examples:
  2359.         
  2360.                 <Phone> override only:
  2361.                 Phone 2:332/501.1 39-59-399999      ; Normal override
  2362.                 Phone 1:106/2000  juge.com          ; internet address
  2363.                 Phone 1:123/4567  123.456.789.012   ; IP address
  2364.                 Phone 2:245/6789  "Bob.scr"         ; quoted script name
  2365.         
  2366.                 <Phone> and <NodeFlags> overrides:
  2367.         
  2368.                 Phone 2:332/501.0 39-59-499999 V34,CM ; Set new flags
  2369.                 Phone 2:332/501.1 39-59-399999 ,      ; Set NO flags
  2370.         
  2371.                 <Phone>, <NodeFlags> and <Cost>/<UCost> overrides:
  2372.         
  2373.                 Phone 2:332/501 39-59-499999 V34,CM 10 0
  2374.                 Phone 2:332/502 mega.com VM 0      ; <Cost> == <UCost>
  2375.         
  2376.         
  2377.         
  2378.         NodeFlags <Addr> <NodeFlags>
  2379.         
  2380.                 Allows to substitute the flags listed in the nodelist
  2381.                 entry of <Addr>.
  2382.         
  2383.                 If you want to change the CM flag or modem type flags
  2384.                 (HST, V32b, ZYX) etc, you can use this verb. Please note
  2385.                 that the old flags are lost, so you need to indicate all
  2386.                 the necessary flags.
  2387.         
  2388.                 Please note that <NodeFlags> might be empty.
  2389.         
  2390.             Example:
  2391.         
  2392.                 NodeFlags 2:332/501.0 CM,H16,V32b
  2393.         
  2394.         
  2395.         
  2396.         Flags <Addr> <Flags>
  2397.         
  2398.                 The Flags statement allows to set the "user defined"
  2399.                 bits in the Flags word of the compiled nodelist entry.
  2400.                 These bits are named 5,6,7,8,9,A,B,D,E,F where bit 5 is
  2401.                 the 6th bit and F is the 16th bit of the word.
  2402.         
  2403.                 These bits are "ORed" with those already set by the
  2404.                 "FlagDef" table.
  2405.         
  2406.                 If you need to zero some of the bits, please specify the
  2407.                 source flags with the "NodeFlags" statement.
  2408.         
  2409.             Example:
  2410.         
  2411.                 Flags 2:332/501.0 AB5   ; Set bits 5,A & B.
  2412.         
  2413.         
  2414.         
  2415.         Cost <Addr> <Cost> [<UCost>]
  2416.         
  2417.                 <Cost> and <UCost> are in the range 0->65535.
  2418.                 Overrides the Cost and User_Cost fields of <Addr> in the
  2419.                 compiled nodelist. If no <UCost> is given, it's taken
  2420.                 equal to <Cost>.
  2421.         
  2422.             Example:
  2423.         
  2424.                 Cost 2:332/501.0 150
  2425.  
  2426.         
  2427.         
  2428.                                SEGMENT SELECTION
  2429.         
  2430.         
  2431.         The following verbs allow to include or exclude selected
  2432.         <NodeList> segments. If you do not use them, the full <NodeList>
  2433.         is compiled. Be aware that the process of checking each address
  2434.         against the list of segments to be included or excluded might
  2435.         slow down the compilation, even if some gain could come from the
  2436.         exclusion of large segments.
  2437.         
  2438.         These statements are obviously illegal in a "NoCompile" block.
  2439.         
  2440.         These statements can be used in an Input block to affect that
  2441.         nodelist only.
  2442.         
  2443.         
  2444.         
  2445.         IncAddr <PartAddrLst>
  2446.         
  2447.                 If you want to selectively include nodelist segments,
  2448.                 you can use this option: only zones, regions, nets,
  2449.                 hubs, nodes, points that are listed in <PartAddrLst>
  2450.                 will be present in the output files. You can specify
  2451.                 zone, region/net, hub/node and point numbers.
  2452.         
  2453.             Example:
  2454.         
  2455.                 IncAddr 1 2:33 2:200/100 3:632 4:801/17
  2456.         
  2457.                   Compiles: zone 1, region 33 of zone 2, hub 100 of net
  2458.                   200 of zone 2, net 632 of zone 3, node 4:801/17
  2459.         
  2460.         
  2461.         
  2462.         ExcAddr <PartAddrLst>
  2463.         
  2464.                 If you want to exclude some segments from the
  2465.                 compilation, you can list them in <PartAddrLst>, in the
  2466.                 same way as for "IncAddr". You can use either "IncAddr"
  2467.                 or "ExcAddr" or both of them to Include only selected
  2468.                 segments and exclude sub-segments.
  2469.         
  2470.             Example:
  2471.         
  2472.                 ExcAddr 2:332/500
  2473.         
  2474.                   Excludes Hub 500 of net 332 of zone 2.
  2475.         
  2476.         
  2477.  
  2478.         
  2479.         
  2480.                              I N P U T   B L O C K
  2481.         
  2482.         
  2483.         The Input Block starts with a "NodeList" statement and continues
  2484.         until the start of the next Input or Output Block (NodeList or
  2485.         Version7 statement respectively) or the end of the configuration
  2486.         file.
  2487.         
  2488.         
  2489.         
  2490.         NodeList <NodeList> [<PartAddr> [<Region> [<Hub>]]]
  2491.         
  2492.                 Start of a block of config verbs defining the processing
  2493.                 of the specified <NodeList> file. You can use many
  2494.                 "NodeList" statements to compile several different
  2495.                 source nodelists into the same output files specified by
  2496.                 the preceding "Version7+" statement. Each "NodeList"
  2497.                 verb marks the beginning of a new input-nodelist
  2498.                 processing-info block.
  2499.         
  2500.                 When an address is present in more than one <NodeList>
  2501.                 (e.g. you compile both the full nodelist and the faster
  2502.                 updated local region or zone segment) only the entry
  2503.                 found in the last compiled <NodeList> is put in the
  2504.                 indices. To have the most up-to-date entries in your V7
  2505.                 indices, please include local segments after the larger
  2506.                 list.
  2507.         
  2508.                 <NodeList> is the name of the input nodelist.
  2509.                 If you don't specify a path, <InputPath> is assumed.
  2510.         
  2511.                 If a terminal ".???" is specified, all the files with 3
  2512.                 digits in the place of '???' are examined and that with
  2513.                 the latest 3 digit day of the year is chosen for
  2514.                 compilation.
  2515.         
  2516.                 The optional <PartAddr> is a partial address that must
  2517.                 be specified for nodelist segments that do not have full
  2518.                 address info. For example, a REGION segment usually
  2519.                 starts with the "Region," keyword and does not contain
  2520.                 any Zone info: its up to you to tell FastLst which zone
  2521.                 we are talking about. For the same reason you should
  2522.                 provide zone and net info when compiling a Hub segment.
  2523.         
  2524.                 For Net segments you should also specify the <Region>
  2525.                 and for simple lists of nodes or points the <Hub>.
  2526.         
  2527.                 Anyway FastLst is smart enough to automagically gather
  2528.                 Region and Hub information (when possible) from:
  2529.         
  2530.                 - same node present in a larger segment (Region and Hub)
  2531.                 - other node with same zone:net (Region only)
  2532.                 - Boss of the point (Region and Hub)
  2533.         
  2534.                 Note: points that do not have a Boss are removed from
  2535.                 the indices.
  2536.         
  2537.             Examples:
  2538.         
  2539.                 IMPORTANT: Please note that the following lines
  2540.                     represent a list of examples, NOT an example of
  2541.                     multiple nodelist compilation.
  2542.                     After each "NodeList" verb, you must specify all the
  2543.                     statements that affect the compilation of that
  2544.                     particular source file.
  2545.         
  2546.         
  2547.              1) NodeList nodelist.???     ; Fidonet nodelist
  2548.         
  2549.              2) NodeList region.033 2     ; Region 33 list, zone 2
  2550.         
  2551.              3) NodeList region24.??? 2   ; Region 24 list, zone 2
  2552.         
  2553.              4) NodeList net.332 2 33     ; Net list, zone 2, region 33
  2554.         
  2555.              5) NodeList hub.500 2:332 33 ; Hub list, zone 2, net 332,
  2556.                                           ; region 33
  2557.         
  2558.              6) NodeList locnode.500 2:332 33 500
  2559.                                           ; Some nodes, zone 2, net 332,
  2560.                                           ; region 33, hub 500
  2561.         
  2562.              7) NodeList points.504 2:332/504
  2563.                                           ; Points of 2:332/504 in
  2564.                                           ; "Point," format
  2565.         
  2566.              8) NodeList morenode.lst   ; Some nodes in the "Node,"
  2567.                                         ; format. No <PartAddr> required
  2568.                                         ; since the "Node," line gives
  2569.                                         ; full address info.
  2570.         
  2571.              9) NodeList ptlist.???     ; Point List in the "Boss,"
  2572.                                         ; format. No <PartAddr> required
  2573.                                         ; since the "Boss," line gives
  2574.                                         ; full address info.
  2575.         
  2576.         
  2577.                                  Input Section
  2578.         
  2579.         
  2580.         The following statements affect the handling of the nodelist
  2581.         specified by the last "NodeList" statement (current Input
  2582.         Block).
  2583.         
  2584.         
  2585.         
  2586.         NodeDiff <NodeDiff>
  2587.         
  2588.                 <NodeDiff> is the name of the nodediff file.
  2589.                 If you don't specify a path, <InputPath> is assumed.
  2590.         
  2591.                 <NodeDiff> must terminate with ".???". FastLst will
  2592.                 search for a suitable <NodeDiff>, considering the files
  2593.                 that have a 3 digit day of the year in the place of the
  2594.                 trailing '???'.
  2595.         
  2596.             Example:
  2597.         
  2598.                 NodeDiff NODEDIFF.???
  2599.         
  2600.         
  2601.         
  2602.         ArcList <ArcList> [<Keep#>]
  2603.         
  2604.                 You can specify the name of the archive containing
  2605.                 <NodeList>. It is necessary if you use automatic
  2606.                 extraction/rearchiving, but it can even be used only to
  2607.                 delete old files.
  2608.         
  2609.                 <ArcList> is used to extract new nodelists, to compress
  2610.                 them using the methods defined in "ArcMethod", to
  2611.                 compress the new nodelists after the application of
  2612.                 nodediffs.
  2613.         
  2614.                 If <ArcList> has a terminating ".???", all the files
  2615.                 that have a suitable fixed (.zip, .lzh etc.) or variable
  2616.                 (.z10, .z17, .l10, .l17 etc.) extension are considered,
  2617.                 taking the digits as the last 2 digits of the day of the
  2618.                 year.
  2619.         
  2620.                 If you really want to limit search to a specified fixed
  2621.                 or variable extension, you can do:
  2622.                 "ArcList nodelist.zip", to consider .zip only;
  2623.                 "ArcList nodelist.z??", to consider .z?? only.
  2624.         
  2625.                 <Keep#> optionally specifies the number of archives to
  2626.                 be kept, basing on the day of the year (the modification
  2627.                 file date is also used to infer the correct
  2628.                 chronological order).
  2629.         
  2630.                 If you maintain archives with multiple different
  2631.                 extensions (.z??, .l??, etc.) the actual number of files
  2632.                 increases, since multiple files with the same day
  2633.                 extension count for one.
  2634.         
  2635.                 The description associated to the deleted files is
  2636.                 removed from FILES.BBS.
  2637.         
  2638.             Example:
  2639.         
  2640.                 ArcList nodelist.??? 1
  2641.         
  2642.         
  2643.         
  2644.         ArcDiff <ArcDiff> [<Keep#>]
  2645.         
  2646.                 You can specify the name of the archive containing
  2647.                 <NodeDiff>. It is necessary if you use automatic
  2648.                 extraction/rearchiving, but it can even be used only to
  2649.                 delete old files.
  2650.         
  2651.                 <ArcDiff> must terminate with ".???".
  2652.         
  2653.                 All the files that have 2 digits in the place of the
  2654.                 last 2 '?' are examined, taking the digits as the last 2
  2655.                 digits of the day of the year.
  2656.         
  2657.                 If you really want to limit search to a specified
  2658.                 extension, you can do:
  2659.                 "ArcDiff nodediff.z??", to consider .z?? only.
  2660.         
  2661.                 <Keep#> optionally specifies the number of archives to
  2662.                 be kept, basing on the day of the year (the modification
  2663.                 file date is also used to infer the correct
  2664.                 chronological order). In the case of multiple archive
  2665.                 extensions, the actual number increases consequently.
  2666.         
  2667.                 The description associated to the deleted files is
  2668.                 removed from FILES.BBS.
  2669.         
  2670.             Example:
  2671.         
  2672.                 ArcDiff nodediff.??? 5
  2673.         
  2674.         
  2675.         
  2676.         ArcListDesc <Desc>
  2677.         ArcDiffDesc <Desc>
  2678.         
  2679.                 You can specify a description to be added to FILES.BBS
  2680.                 for the new nodelist and nodediff files created by
  2681.                 FastLst.
  2682.         
  2683.                 Some parameters are available:
  2684.         
  2685.                 %d : the 3 digit day number (0 padded)
  2686.                 %a : the archiver name
  2687.                 %D : the date, USA format (Feb 10, 1995)
  2688.                 %L : the date, Local format
  2689.         
  2690.             Example:
  2691.         
  2692.                 ArcListDesc Fido Nodelist for day %d (%D), %a format
  2693.                 ArcDiffDesc Fido Nodediff for day %d (%D), %a format
  2694.         
  2695.         
  2696.         
  2697.                                 Local Specifications
  2698.         
  2699.         
  2700.         You can use here the same statements described in the "Global
  2701.         Section B" and (if we are not in a "NoCompile" block) "Global
  2702.         Section C" and "Export Global Section" (see the Export Block
  2703.         below).
  2704.         
  2705.         
  2706.         
  2707.                              ADDRESS SPECIFIC STUFF
  2708.         
  2709.         
  2710.         You can specify here the address specific stuff that is related
  2711.         to the current source nodelist (if not inside a "NoCompile"
  2712.         block).
  2713.         
  2714.         If you have already used the "Output section" for specifying
  2715.         this kind of information, you can skip this section.
  2716.         
  2717.         WARNING:
  2718.         
  2719.         Often you will compile segments of a previously compiled
  2720.         nodelist. For example you could have a "NodeList nodelist.???"
  2721.         block for the world nodelist and then a "NodeList region.033"
  2722.         block for your region's nodelist segment.
  2723.         
  2724.         The majority of entries in the latter will be duplicates of
  2725.         entries already found in the former. However, in the case of
  2726.         duplicates, only the entries found in the last involved
  2727.         "NodeList" block will go to the indices and be active. This way
  2728.         you can compile the full world nodelist while keeping your
  2729.         segment up-to-date with local segments that get updated faster
  2730.         than the full nodelist.
  2731.         
  2732.         When you have to specify "Address Specific Stuff" for nodes that
  2733.         are present in more than one "NodeList", you must do that in the
  2734.         last involved "NodeList" block (or in the Output Section, of
  2735.         course), otherwise your indications will have no effect.
  2736.         
  2737.         For a list of allowed statements, please see the "Address
  2738.         Specific Stuff" section of the "Output" section above.
  2739.         
  2740.         
  2741.         
  2742.                                SEGMENT SELECTION
  2743.         
  2744.         
  2745.         You can use here the same statements described in "Segment
  2746.         Selection" in the Output Section (if not inside a "NoCompile"
  2747.         block).
  2748.         
  2749.         
  2750.         
  2751.                                  EXPORT Block
  2752.         
  2753.         
  2754.         FastLst can "export" segments of nodelist: e.g. you can export
  2755.         the Region 25 from the world nodelist to a file called
  2756.         Region25.???, where ??? stands for the day of the year. Note
  2757.         that this feature is for exporting segments of nodelist to a
  2758.         dedicated file. To compile segments you should continue using
  2759.         the "Segment Selection" section of FastLst.Cfg.
  2760.         
  2761.         These blocks MUST be at the _END_ of an "Input Block"; there can
  2762.         be multiple Export Blocks in a single Input Block.
  2763.         
  2764.         Obviously the Export Block is available for compiled nodelists
  2765.         only, thus it is illegal inside a "NoCompile" block.
  2766.         
  2767.         The export is done ONLY when a new NodeList is found (or when
  2768.         the file to be exported exists neither in uncompressed nor in
  2769.         archived form), even if the config file is changed. So, you can
  2770.         safely hatch the created arcfile via the AfterArcExport command
  2771.         with no danger of hatching it all the times you change something
  2772.         in the cfg. Under these conditions, if you really want to export
  2773.         anyway, you must use the -i command line switch.
  2774.         
  2775.         IMPORTANT: If you use the same export filename for multiple
  2776.         source nodelists, all the exported segments are appended one
  2777.         another. This way, if you like, you can make FastLst generate a
  2778.         "plain" nodelist file with many different source nodelists in
  2779.         it, just appended one after another. Some people need this
  2780.         feature to create input for some other program. For this feature
  2781.         to work, you need to specify the '+' parameter in the "Export"
  2782.         statement. See "Export Example" below.
  2783.         
  2784.         
  2785.         
  2786.         Export [+] <file> [<PartAddrLst>]
  2787.         
  2788.                 The '+' sign must be specified when you want to create a
  2789.                 joined list by exporting multiple nodelists to the same
  2790.                 export <file>. This way the exported file will be
  2791.                 created every time the nodelist is compiled and its
  2792.                 timestamp will not be changed to be equal to the source.
  2793.         
  2794.                 <file> is the name of the file to which you want to
  2795.                 export the selected segment(s).
  2796.         
  2797.                 <PartAddrLst> is the partial address list of segments to
  2798.                 be exported. Usually it is a single partial address.
  2799.                 If omitted, the entire nodelist is exported (useful to
  2800.                 create a joined nodelist).
  2801.         
  2802.                 This statement marks the start of an "Export Block".
  2803.                 Multiple "Export Blocks" are allowed in the same "Input
  2804.                 Block".
  2805.         
  2806.                 N.B. The Export blocks must be at the _END_ of an input
  2807.                 block. See "Export Example" below.
  2808.         
  2809.             Example:
  2810.         
  2811.                 Export region25.??? 2:25
  2812.         
  2813.         
  2814.         
  2815.         
  2816.                                  Export Section
  2817.         
  2818.         
  2819.         The following verbs define the parameters for the Export
  2820.         specified by the last "Export" statement.
  2821.         
  2822.         
  2823.         
  2824.         ArcExport <arcfile> [Keep#]
  2825.         
  2826.                 <arcfile> is the name of the archive file to which you
  2827.                 want to compress the exported <file>.
  2828.         
  2829.                 [Keep#] is the optional number of archive versions to be
  2830.                 kept, basing on the day of the year (the modification
  2831.                 file date is also used to infer the correct
  2832.                 chronological order).
  2833.         
  2834.             Example:
  2835.         
  2836.                 ArcExport region25.??? 2
  2837.         
  2838.         
  2839.         
  2840.         ArcExportDesc <description>
  2841.         
  2842.                 <description> is the description to be applied to
  2843.                 FILES.BBS when a new archive is created.
  2844.         
  2845.             Example:
  2846.         
  2847.                 ArcExportDesc Region 25 %D, %a format
  2848.         
  2849.         
  2850.         
  2851.         
  2852.                              Export Global Section
  2853.         
  2854.         
  2855.         The following verbs can be used in the "Export Section" of an
  2856.         "Export Block", in the "Input Section" of an "Input Block", in
  2857.         the "Output Section" of an "Output Block", in the "Global
  2858.         Section".
  2859.         
  2860.         In few words, they are legal everywhere except for the
  2861.         "NoCompile" block.
  2862.         
  2863.         Depending on their positions, they affect the involved nodelists
  2864.         only.
  2865.         
  2866.         
  2867.         
  2868.         ArcExportMethod <meth>[,<f>] ...
  2869.         
  2870.                 Specifies the archive type(s) to be created for the
  2871.                 exported file.
  2872.         
  2873.                 <meth> is the archiver name as defined in Compress.Cfg.
  2874.         
  2875.                 <f> is the optional first letter to be used for variable
  2876.                 archive extensions.
  2877.         
  2878.             Example:
  2879.         
  2880.                 ArcExportMethod zip lh,H
  2881.         
  2882.         
  2883.         
  2884.         BeforeArcExport <command>
  2885.         AfterArcExport <command>
  2886.         
  2887.                 Commands to be run before/after archiving the exported
  2888.                 file.
  2889.         
  2890.                 <command> can be any type of command (executable file,
  2891.                 batch file, internal command, alias, etc.) and supports
  2892.                 the %a (full archive name) and %f (name of the file to
  2893.                 be compressed, no path) and is run from the directory
  2894.                 where %f resides.
  2895.         
  2896.                 WARNING: since <command> is executed from the directory
  2897.                 where the file to be compressed belongs, you might need
  2898.                 to specify the location of the config files used by the
  2899.                 programs invoked via <command>.
  2900.         
  2901.             Example:
  2902.         
  2903.                 AfterArcExport Hatch %a
  2904.         
  2905.         
  2906.         
  2907.         ExportNeededBeforeKill
  2908.         
  2909.                 Specifies that the exported file is needed by the
  2910.                 "BeforeKillSource" command.
  2911.         
  2912.         
  2913.             Export Example:
  2914.         
  2915.                 NodeList nodelist.???
  2916.                   NodeDiff nodediff.???
  2917.                   ArcList  nodelist.??? 2
  2918.                   ArcDiff  nodediff.??? 5
  2919.                   ArcListDesc Fido Nodelist for day %d (%D), %a format
  2920.                   ArcDiffDesc Fido Nodediff for day %d,(%D), %a format
  2921.                   Export region25.??? 2:25
  2922.                     ArcExport region25.??? 1
  2923.                     ArcExportDesc Region 25 %D, %a format
  2924.                     ArcExportMethod zip lh
  2925.                     AfterArcExport Hatch %a
  2926.                   Export region24.??? 2:24
  2927.                     ArcExport region24.??? 1
  2928.                     ArcExportDesc Region 24 %D, %a format
  2929.                     ArcExportMethod zip
  2930.         
  2931.         
  2932.             Export Example to generate a joined list:
  2933.         
  2934.                 NodeList nodelist.???
  2935.                   NodeDiff nodediff.???
  2936.                   ArcList  nodelist.??? 2
  2937.                   ArcDiff  nodediff.??? 5
  2938.                   ArcListDesc Fido Nodelist for day %d (%D), %a format
  2939.                   ArcDiffDesc Fido Nodediff for day %d,(%D), %a format
  2940.                   Export + megalist.Lst
  2941.         
  2942.                 NodeList zonelist.???
  2943.                   NodeDiff zonediff.???
  2944.                   ArcList  zonelist.??? 2
  2945.                   ArcDiff  zonediff.??? 5
  2946.                   ArcListDesc Zonelist for day %d (%D), %a format
  2947.                   ArcDiffDesc Zonediff for day %d,(%D), %a format
  2948.                   Export + megalist.Lst
  2949.                     ArcExport megalist.??? 1
  2950.                     ArcExportDesc MegaList, %a format
  2951.                     ArcExportMethod zip lh
  2952.         
  2953.         
  2954.  
  2955.         
  2956.                             COMPRESS DEFINITION FILE
  2957.         
  2958.         
  2959.         The file specified in the CompressCfg statement is a sequence of
  2960.         Archive definition blocks, each one starting with "Archiver" and
  2961.         ending with "End Archiver". You can find an example in the
  2962.         Compress.Cfg file included in the distribution pack.
  2963.         
  2964.         The order of the archive definition blocks within this file may
  2965.         be important: when trying to unpack a compressed file, the list
  2966.         of archivers is scanned in a reverse order.
  2967.         
  2968.         In the case of two archivers that use the same identification
  2969.         string (e.g. ARC and PAK), you must specify the archiver that
  2970.         can unpack both (PAK) after the other one (ARC).
  2971.         
  2972.         The compress.cfg file can be shared between DOS/NT and OS/2
  2973.         applications: the "DOS" and "OS2" keywords are available to
  2974.         distinguish between the commands to be used under DOS/NT and
  2975.         OS/2.
  2976.         
  2977.         O.S. specific archivers or commands must be prefixed with the
  2978.         relevant keyword.
  2979.         
  2980.         IMPORTANT NOTE: The lines that begin with "DOS" or "OS2" are
  2981.         parsed by the DOS/NT and OS/2 versions respectively. If you need
  2982.         the OS/2 version to execute a DOS command, you MUST NOT use the
  2983.         DOS keyword: if you do, it will never parse that line; if you do
  2984.         not, it will execute the DOS command "normally", provided you
  2985.         have installed OS/2's Dos support.
  2986.         
  2987.         See the examples below.
  2988.         
  2989.         
  2990.         Archiver <ARCname>
  2991.         
  2992.                 Starts the Archive definition block.
  2993.         
  2994.                 <ARCname> is the name used to identify this archiver.
  2995.         
  2996.             Example:
  2997.         
  2998.                 Archiver ZIP
  2999.         
  3000.         
  3001.         
  3002.         Extension  <ext>
  3003.         
  3004.                 Specifies the default extension for the compressed
  3005.                 files.
  3006.         
  3007.             Example:
  3008.         
  3009.                 Extension ZIP
  3010.         
  3011.         
  3012.         
  3013.         Ident <ofs>,<ID>
  3014.         
  3015.                 <ofs> is a decimal integer number representing the
  3016.                 offset at which an archive identity marker <ID> must be
  3017.                 present.
  3018.         
  3019.                 Negative values can be used to indicate offsets from the
  3020.                 END of a compressed file. -1 means "the last byte", -2
  3021.                 "the second last byte" and so on.
  3022.         
  3023.                 <ID> is a series of hexadecimal figures which represent
  3024.                 the bytes of the marker string that must be present at
  3025.                 the specified offset of the archive file.
  3026.         
  3027.             Example:
  3028.         
  3029.                 Ident 0,504b0304  ; "PK^c^d"
  3030.         
  3031.         
  3032.         
  3033.         Add <command>
  3034.         
  3035.                 Specifies the command to add files to an archive.
  3036.                 %a and %f are translated to the name of the archive and
  3037.                 file to add.
  3038.         
  3039.             Example:
  3040.         
  3041.                 Add zip -jk %a %f
  3042.         
  3043.         
  3044.         
  3045.         Extract <command>
  3046.         
  3047.                 Specifies the command to extract files from an archive.
  3048.                 %a and %f are translated to the name of the archive and
  3049.                 file to extract.
  3050.         
  3051.             Example:
  3052.         
  3053.                 Extract unzip -qqnjC %a %f
  3054.         
  3055.         
  3056.         
  3057.         View <command>
  3058.         
  3059.                 This line is recognized and accepted for compatibility,
  3060.                 but not used.
  3061.         
  3062.         
  3063.         
  3064.         End Archiver
  3065.         
  3066.                 This statement is used to close a Archive definition.
  3067.         
  3068.         
  3069.                                     Examples
  3070.         
  3071.         
  3072.             Complete example 1 (you need OS/2 only):
  3073.         
  3074.         Archiver ZIP
  3075.              Extension     ZIP
  3076.              Ident         0,504b0304
  3077.              Add           zip -jk %a %f
  3078.              Extract       unzip -qqnjC %a %f
  3079.              View          unzip -v %a
  3080.         End Archiver
  3081.         
  3082.         
  3083.             Complete example 2 (you need DOS only):
  3084.         
  3085.         Archiver ZIP
  3086.              Extension     ZIP
  3087.              Ident         0,504b0304
  3088.              Add           pkzip -a %a %f
  3089.              Extract       pkunzip -n %a %f
  3090.              View          pkzip -v %a
  3091.         End Archiver
  3092.         
  3093.         
  3094.             Complete example 3 (you need both OS/2 and DOS):
  3095.         
  3096.         Archiver ZIP
  3097.              Extension     ZIP
  3098.              Ident         0,504b0304
  3099.         OS2  Add           zip -jk %a %f
  3100.         DOS  Add           pkzip -a %a %f
  3101.         OS2  Extract       unzip -qqnjC %a %f
  3102.         DOS  Extract       pkunzip -n %a %f
  3103.         OS2  View          unzip -v %a
  3104.         DOS  View          pkzip -v %a
  3105.         End Archiver
  3106.         
  3107.         
  3108.             Complete example 4 (archiver to be used under DOS only):
  3109.         
  3110.         DOS Archiver ZOO
  3111.         DOS     Extension       ZOO
  3112.         DOS     Ident           0,5a4f4f                        ; "ZOO"
  3113.         DOS     Add             zoo a: %a %f
  3114.         DOS     Extract         zoo e:O %a %f
  3115.         DOS     View            zoo v %a
  3116.         DOS End Archiver
  3117.         
  3118.         
  3119.             Complete example 5 (it's a DOS executable, to be used under
  3120.                                 DOS or OS/2 indifferently):
  3121.         
  3122.         Archiver ZOO
  3123.              Extension       ZOO
  3124.              Ident           0,5a4f4f                        ; "ZOO"
  3125.              Add             zoo a: %a %f
  3126.              Extract         zoo e:O %a %f
  3127.              View            zoo v %a
  3128.         End Archiver
  3129.  
  3130.         
  3131.         
  3132.                          T R O U B L E S H O O T I N G
  3133.         
  3134.         
  3135.                                  Lost Passwords
  3136.         
  3137.         Problem:
  3138.                   A password is configured, but the mailer-session is
  3139.                   unprotected as if there were no password at all.
  3140.         
  3141.         Solution:
  3142.                   Please note that the order of Input-Nodelists and
  3143.                   Password-Definitions is important.
  3144.         
  3145.                   If a node is included multiple times (it is listed in
  3146.                   2 or more nodelists), FastLst will index the LAST
  3147.                   occurrence only.
  3148.         
  3149.                   4D-Pointlists using the "Point," method override the
  3150.                   entries of all the listed BOSSes: it's recommended to
  3151.                   list "older" nodelists first, so that the newer
  3152.                   entries are indexed.
  3153.         
  3154.                   NodeList 4dPoints.Lst
  3155.                     [...]
  3156.                   NodeList nodelist.???
  3157.                     [...]
  3158.         
  3159.         
  3160.                                Extraction problem
  3161.         
  3162.         Problem:
  3163.                   FastLst does not extract the correct
  3164.                   nodelist/nodediff.
  3165.         
  3166.         Solution:
  3167.                   Perhaps there is some nodelist/nodediff with corrupted
  3168.                   file date. Check your "ArcPath", manually extract to
  3169.                   the "InputPath" the required nodelist/nodediff and
  3170.                   delete the archive (or reset its file-date so that it
  3171.                   is similar to that of the enclosed file). FastLst will
  3172.                   automatically rearchive the nodelist/nodediff if you
  3173.                   use "ArcMethod"/"ArcDiffMethod", otherwise you can
  3174.                   rearchive manually.
  3175.         
  3176.         
  3177.                                  Out of Memory
  3178.         
  3179.         Problem:
  3180.                   FastLst runs out of memory (Dos versions).
  3181.         
  3182.         Solution:
  3183.                   - give more DPMI memory to FastLst
  3184.         
  3185.                   - enable the DOS4GW virtual memory mode, using the
  3186.                     DOS4GVM environment variable (e.g. for 16MB virtual
  3187.                     allocation size: SET DOS4GVM=VirtualSize#16384).
  3188.         
  3189.                     This works under real Dos only: if you are using
  3190.                     OS/2 dos sessions, use a higher DPMI_MEMORY_LIMIT in
  3191.                     the Dos settings.
  3192.         
  3193.         
  3194.                        Problems with Empty Phone entries
  3195.         
  3196.         Problem:
  3197.                   Some program behaves oddly while accessing entries
  3198.                   that contain an empty phone number.
  3199.         
  3200.         Solution:
  3201.                   The problem might be caused by the cost that is
  3202.                   assigned to empty-phone nodes (65535 by default).
  3203.                   Try using the "CostNullPhone" global statement to give
  3204.                   lower costs.
  3205.         
  3206.                   Example:
  3207.         
  3208.                   CostNullPhone 900 0
  3209.         
  3210.         
  3211.                                 Slow processing
  3212.         
  3213.         Problem:
  3214.                   FastLst works very slowly.
  3215.         
  3216.         Solution:
  3217.                   Perhaps you are compiling a large nodelist or set of
  3218.                   nodelists on a system with few MegaBytes of free
  3219.                   physical RAM, so that the OS needs to extensively use
  3220.                   virtual memory. Try using the "LinkOnDisk" statement
  3221.                   in the configuration file.
  3222.         
  3223.         
  3224.                          System performance degradation
  3225.         
  3226.         Problem:
  3227.                   FastLst loads the system excessively, so that other
  3228.                   OS/2 tasks don't perform properly (OS/2 version).
  3229.         
  3230.         Solution:
  3231.                   Use the "Priority Idle" statement in the configuration
  3232.                   file, so that FastLst receives its time slices only
  3233.                   when other processes with higher priority are idle.
  3234.         
  3235.         
  3236.                               I want maximum speed
  3237.         
  3238.         Problem:
  3239.                   I run FastLst while the communications are off, so I
  3240.                   would like it to run as fast as possible even if it is
  3241.                   in the background and other tasks are active (OS/2
  3242.                   version).
  3243.         
  3244.         Solution:
  3245.                   Use the "Priority High 31" statement in the
  3246.                   configuration file, so that FastLst receives the
  3247.                   maximum priority for "non time-critical" processes.
  3248.         
  3249.         
  3250.                          Archived Diffs are not applied
  3251.         
  3252.         Problem:
  3253.                   FastLst does not apply the archived Diffs.
  3254.         
  3255.         Solution:
  3256.                   Remember that "InputPath <path>" is the default path
  3257.                   for lists and diffs, while "ArcPath <path>" is the one
  3258.                   for archives.
  3259.         
  3260.                   Please compare your Compress.cfg with the example one,
  3261.                   check the paths and try the commands manually.
  3262.         
  3263.                   Check the day-extensions and time-stamps of the
  3264.                   relevant files.
  3265.                  
  3266.         
  3267.                             Dos/32 DOS4GW exception
  3268.         
  3269.         Problem:
  3270.                   The Dos/32 version of FastLst aborts with an exception
  3271.                   from the Dos extender.
  3272.         
  3273.         Solution:
  3274.                   Try booting with a "clean" config.sys and autoexec.bat
  3275.                   (the Dos extender might be incompatible with some of
  3276.                   your loaded drivers or TSRs.
  3277.         
  3278.         
  3279.                        Dial Scripts and VMODEM addresses
  3280.         
  3281.         Problem:
  3282.                   How can I put script names or internet addresses in
  3283.                   the place of a phone number ?
  3284.         
  3285.         Solution:
  3286.                   You may use the "Phone" statement.
  3287.         
  3288.                   Example:
  3289.         
  3290.                   Let's suppose the following Modem Type table is
  3291.                   defined:
  3292.         
  3293.                   TypeDef
  3294.                     X75    1
  3295.                     V34    2
  3296.                     VM     3
  3297.                   End
  3298.         
  3299.                   You may use a Phone override of this kind:
  3300.         
  3301.                   Phone 2:345/678 domain.com VM,CM 10 0
  3302.         
  3303.                   And a ModemTrans (for Binkley's VMODEM line):
  3304.         
  3305.                   ModemTrans   0
  3306.                   ModemTrans   1
  3307.                   ModemTrans   2
  3308.                   ModemTrans   3 ATDT#  ; Vmodem
  3309.         
  3310.         
  3311.         
  3312.                           Region and zone-level Export
  3313.         
  3314.         Problem:
  3315.                   How can I export a Region segment together with the
  3316.                   zone-level entries ?
  3317.         
  3318.         Solution:
  3319.                   The zone level entries have the Region/Net field equal
  3320.                   to the zone number; you can use the Export statement
  3321.                   in the following way:
  3322.         
  3323.                   export MyR33.??? 1:1 2:2 2:33 3:3 4:4 5:5 6:6
  3324.         
  3325.         
  3326.                                    Support ?
  3327.         
  3328.         Problem:
  3329.                   I cannot find the solution to my problems.
  3330.         
  3331.         Solution:
  3332.                   - Try linking the APWORKS support echo
  3333.                   - Try asking your local supporter
  3334.                   - Try asking the author directly
  3335.                   You can find the addresses in the ReadMe.1st file.
  3336.         
  3337.  
  3338.         
  3339.                                S H A R E W A R E
  3340.         
  3341.         
  3342.         If you like this program and continue using it, you should pay
  3343.         the author for his work, as per the ShareWare concept of
  3344.         distribution.
  3345.         
  3346.         Please see LICENSE.DOC and REGISTER.DOC for information.
  3347.         
  3348.         Thank you for your interest in FastLst.
  3349.         
  3350.