home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-18 | 135.1 KB | 3,655 lines |
- **************************************************************
- * *
- * *
- * ******* ** **** ****** **** **** ****** *
- * ** * **** ** ** * ** * ** ** ** * ** * *
- * ** * ** ** ** ** ** ** ** *
- * **** ** ** **** ** ** **** ** *
- * ** * ****** ** ** ** * ** ** *
- * ** ** ** ** ** ** ** ** ** ** ** *
- * **** ** ** **** **** ******* **** **** *
- * *
- * *
- * Version 1.36 *
- * *
- * The ultimate V7 nodelist processor *
- * *
- * *
- **************************************************************
- * *
- * (C) Copyright 1992-1996 by Alberto Pasquale *
- * *
- * A L L R I G H T S R E S E R V E D *
- * *
- **************************************************************
-
-
-
- FastLst 1.36 User's Manual, by Alberto Pasquale
-
-
- INTRODUCTION
-
-
- -> For licensing information, please see License.Doc.
-
- Thanks for evaluating FastLst: the ultimate "Version 7" nodelist
- processor.
-
- Version 7 is a common format for binary nodelists to be used by
- mailers, message editors and all the programs that need access
- to a compiled nodelist.
-
- Main Features
-
-
- - Compiles to Version 7 format nodelist.
-
- - Support for old "Fidouser.Lst" sysop list.
-
- - Multiple output nodelist (V7) compilation from one config file.
-
- - The complete maintenance of archived lists and diffs is
- achieved through internal flexible configuration, with no need
- for clumsy batch files.
-
- - Uses "Squish Style" Compress.Cfg.
-
- - Can be invoked from a batch file at predefined events: the
- compilation will take place only if some new list/diff is found.
-
- - The 32 bit versions can use "in memory" mode to accomplish
- blazing speed on systems with enough memory or "temporary
- file" mode to avoid very slow operations in compiling large
- nodelists on systems with little physical memory.
-
- - Multitasking friendly
-
- - The OS/2 version allows for priority setting in the
- configuration file.
-
- - Compilation reports can be posted to Fido or Squish format
- message areas.
-
- - Full 4D (point) support, both via the "Point,..." and
- "Boss,..." keywords.
-
- - Internal support for "German type" pointlists.
-
- - Easy addition of nodes via the "Node,<address>,..." keyword
- in a private list.
-
- - Easy specification of phone strings not to be translated
- for internet addresses and script names.
-
- - In the case of SysOps of multiple nodes, keeps in the sysop
- lists (fidouser.lst and sysop.ndx) all the name/address
- entries. Allows to keep one address only for specified
- ones.
-
- - User Cost (Msg Fee) can be set different from Call Cost.
-
- CREDITS
-
- This program uses the Squish "MsgAPI" code, Copyright 1991-1994
- by Lanius Corporation. "Squish" and "Maximus" are trademarks of
- Lanius Corporation.
-
- "BinkleyTerm" is a trademark of Bit Bucket Software Co.
-
- "4OS2" is a trademark of JP Software Inc.
-
- The archivers referred-to throughout this documentation are
- Copyright and/or trademarks of the respective owners.
-
- VMODEM and SIO are Copyright by Raymond L. Gwinn.
-
-
-
- OVERALL OPERATION
-
-
- FastLst has been designed to be invoked regularly from one of
- your main batch files, after mail has been received or at
- pre-arranged times at your pleasure: if any new (compressed or
- not) nodelist/nodediff is detected, Fastlst processes them as
- required (exiting with Errorlevel 0), otherwise it immediately
- exits (errorlevel 100) with no further delay.
-
- When FastLst detects a changed config or password file, it
- compiles all the affected nodelists even if they are not new.
-
- If you want FastLst to compile all of your nodelists even if no
- new ones are present, you need to use the -f or -i command line
- switch.
-
- For each "output block" in the config file:
-
- - New compressed lists or diffs are detected, unarchived and
- optionally rearchived in supplementary formats.
-
- - New diffs are detected and applied: the resulting new nodelist
- is archived. Before applying a diff, the day number and CRC of
- the old nodelist are compared against the ones requested by
- the diff; after application, the CRC of the new nodelist is
- checked.
-
- - New lists are detected and the pertinent output nodelists are
- rebuilt. If no new list is found for a specific "output
- block", that output nodelist is not compiled, unless the -f or
- -i command line switch is specified.
-
- OS commands can be issued before or after each operation: for
- example you can hatch the just created archive file.
-
-
- ATTENTION:
-
- - Every time the config file is changed, FastLst rebuilds all
- the output nodelists, as if the -f command line switch were
- specified.
-
- - Every time a PasswordFile is changed, FastLst rebuilds the
- nodelists that use it.
-
- - The date of the archive files handled by FastLst is set to
- the same value of the contained file (see ArcDate).
-
-
- INPUT NODELIST FORMAT
-
-
- The source nodelists and nodediffs must be in standard "St.
- Louis" format, as described in FTS-0005. Anyway, FastLst allows
- some extensions in order to support 4D points, "German style"
- pointlists, easy single node specifications and "verbatim" phone
- strings.
-
-
-
-
- 4D Point Support: POINT and BOSS keywords
-
-
- First method:
-
- Points are entered in the nodelist directly following their
- bossnode. Each one starts with the "Point,<point>" keyword.
-
- Example:
-
- ...
- ...
- ,504,Videl_3,Modena_I,Roberto_Zanasi,39-59-450600,9600,CM,XA,V32B,V42B
- Point,1,Pasquale,Modena_I,Alberto_Pasquale,-!Unpublished-,9600,
- Point,2,SysOp,Modena_I,Roberto_Zanasi,-!Unpublished-,9600,
- Point,3,Carta,Modena,Francesco_Carta,-!Unpublished-,9600,
- ...
- ...
-
-
- Second method:
-
- Points are entered in the nodelist following the
- "Boss,<address>" keyword.
-
- Example:
-
- ...
- ...
- Boss,2:332/504
- ,1,Pasquale,Modena_I,Alberto_Pasquale,-!Unpublished-,9600,
- ,2,SysOp,Modena_I,Roberto_Zanasi,-!Unpublished-,9600,
- ,3,Carta,Modena,Francesco_Carta,-!Unpublished-,9600,
- ...
- ...
-
-
-
- German Point List
-
-
- This is a "normal" 3D nodelist that lists each Boss as a
- "fakenet" HOST, with the real address as the system name,
- followed by its points listed as nodes.
-
- Example:
-
- The following nodelist segment lists points 2:2400/1.1 .2 .3:
-
- Host,20000,2400/1,City,Sysop_Name,49-951-999999,9600,CM,V34
- ,1,System_Name_1,City_1,Sysop_Name_1,49-951-999999,9600,
- ,2,System_Name_2,City_2,Sysop_Name_2,49-951-999999,9600,
- ,3,System_Name_3,City_3,Sysop_Name_3,49-951-999999,9600,
-
-
-
- The NODE Keyword
-
-
- Another extension over FTS-0005 is provided to allow easy
- addition of nodes in small private lists.
-
- When you need to add a node to your nodelist to call it or to
- enforce a session password with it, you can use the
- "Node,<address>,..." keyword to avoid the necessity of adding
- its Zone and Host coordinators.
-
- You should specify a full 4D address (point optional).
-
- Any subsequent entry will take the current address as a starting
- point.
-
- E.g.: You want to add 9:8/7.3
-
- With "Node,...":
- ...
- ...
- Node,9:8/7.3,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM
- ...
- ...
-
- With "Boss,...":
- ...
- ...
- Boss,9:8/7
- ,3,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM
- ...
- ...
-
- With the traditional method:
- ...
- ...
- Zone,9,...
- Host,8,...
- ,7,...
- Point,3,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM
- ...
- ...
-
-
- Now let's add 8:7/6 and 8:7/7:
-
- With "Node,...":
- ...
- ...
- Node,8:7/6,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM
- ,7,Duck,DisneyLand,Donald_Duck,1-800-112,9600,CM
- ...
- ...
-
- With the traditional method:
- ...
- ...
- Zone,8,...
- Host,7,...
- ,6,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM
- ,7,Duck,DisneyLand,Donald_Duck,1-800-112,9600,CM
- ...
- ...
-
-
-
- Verbatim Phones
-
- When you have to specify a phone string not to be translated,
- it's handy to just inform FastLst by prefixing the string with
- the '#' character.
-
- The number is considered already in the correct form for
- dialing, neither dial translation nor cost lookup are possible.
-
- Call and User cost defaults are defined by the CostVerbatimPhone
- statement.
-
- This type of phone specification is legal everywhere (any type
- of entry in nodelist, Phone overrides).
-
- Note: you might need to change the dots '.' in internet
- addresses to asterisks '*', in order to avoid that the mailer
- (e.g. Binkley) translates them.
-
- Examples:
-
- Internet address:
-
- ,6,Mickey,DisneyLand,Mickey_Mouse,#Fantasy*Com,9600,CM,VMP
-
- IP address:
-
- ,6,Mickey,DisneyLand,Mickey_Mouse,#123*456*789*012,9600,CM,VMP
-
- Script name:
-
- ,6,Mickey,DisneyLand,Mickey_Mouse,#"Fantasy.Scr",9600,CM,V34
-
- See also the Phone statement.
-
-
-
- MISCELLANEOUS INFO
-
-
- Multiple Sysops
-
-
- In the case of SysOps of more than one system, all the
- name/address couples are put in the SysOp Name Lists
- (Fidouser.lst and Sysop.ndx).
-
- If you want to keep one only name/address couple for some
- multiple SysOps, you can use the "SysDup <AddrLst>" option in
- the config file: the SysOps who have one of the listed addresses
- will be present in the SysOp lists with that entry only, even if
- they have other addresses.
-
- Example: Let's suppose that Robert Everywhere has 4 nodes:
-
- EveryWhere, Robert 1:456/987.0
- EveryWhere, Robert 2:123/457.0
- EveryWhere, Robert 2:123/457.8
- EveryWhere, Robert 6:321/567.0
-
- By default all the 4 addresses are available in the sysop
- lists (and some programs allow to choose among them, e.g.
- the excellent TimEd message editor by Gerard van Essen).
-
- If you prefer to keep one address only, you can specify the
- desired address in a SysDup line in the config file:
- e.g. "SysDup 2:123/457.8".
-
-
- Redirected Systems
-
-
- Systems that have no valid phone number (Unpublished, on Hold),
- are redirected, provided you do not exclude redirection using
- the "NoRedir" config keyword.
-
- A redirected system is given the phone number, baud rate, modem
- type, cost and flags of the preceding coordinator, the Board
- name is prepended with '-R-'.
-
- If you have a session password with the system to be redirected
- or with the system it should be redirected to, no redirection is
- done in order to prevent password-mismatch errors in the case
- the Unpublished/Hold system calls you.
-
- Points are never redirected.
-
- The systems that have no valid phone number and cannot be
- redirected take an EMPTY phone number string, so that your
- mailer does not send unexpected strings to your modem attempting
- to call these systems, should something appear in your outbound
- addressed to them.
-
- Pay attention: if you want to directly call these
- null_phone-systems or their coordinators, you have to give them
- a phone number using the "Phone" statement in the configuration
- file.
-
-
- V7 Semaphore
-
-
- To avoid collisions between FastLst and V7-able programs, a
- semaphore for each output nodelist is used.
-
- When FastLst needs exclusive access to the V7 files, it creates
- and keeps open in SH_DENYRW mode a "<NODEX>.BSY" file, where
- <NODEX> is the base name of the nodelist binary data file.
-
- For example, if you use NODEX.DAT, a NODEX.BSY will be created.
-
- When a program must access the V7 nodelist, it should create (if
- not existent) and keep open for reading in SH_DENYWR mode the
- "<NODEX>.BSY" file.
-
- When the access to the V7 files is completed, the program should
- close and delete "<NODEX>.BSY".
-
- This method allows for concurrent access by multiple programs in
- "read" mode, while granting exclusive access to FastLst.
-
- Please note:
-
- - When the "KillAfter" statement is used, FastLst needs
- exclusive access only while deleting/renaming the files.
-
- - The <NODEX>.BSY does NOT need to be deleted in case of
- abnormal termination or power failure since it's considered
- busy only when open.
-
-
- Example for a program that must read V7:
-
- bsyname is the "<NODEX>.BSY" file name;
- timeout is the timeout in seconds;
- the file handle is returned on success, -1 on timeout
-
-
- int waitopen (const char *bsyname, int timeout) // -1 on timeout
- {
- int ret = -1;
- int i = 0;
-
- do {
- if (i > 0)
- sleep (1);
- if (access (bsyname, F_OK)) { // file not existent
- int handle = open (bsyname, O_WRONLY | O_CREAT, S_IWRITE);
- if (handle != -1)
- close (handle);
- }
- ret = sopen (bsyname, O_RDONLY, SH_DENYWR);
- i ++;
- } while ((ret == -1) && (i < timeout) &&
- ((errno == EACCES) || (errno == ENOENT)));
- // sharing violation or file not found
- return ret;
- }
-
-
-
-
- INSTALLATION
-
-
- 1) There are 4 versions of FastLst:
-
- FASTLST.EXE OS/2
- FASTLST.EXE NT
- FASTLST.EXE DOS 32 bit, with DOS4GW DOS Extender
- FASTL16.EXE DOS 16 bit
-
- The OS/2, NT and Dos versions are distributed in separate
- archives (see Readme.1st).
-
-
- OS/2 and NT:
-
- You have only to decide whether to use the "FileMode"
- statement in the configuration file. If you have enough
- physical memory available you should use the default "in
- memory" mode. On the other hand, if the execution of FastLst
- is excessively slow, you probably are low on memory and you
- could benefit by the use of the temporary file. You can use
- the "-t" command line switch to experiment, before enabling
- the "FileMode" statement in the configuration file, if really
- necessary.
-
-
- DOS 32 bit:
-
- to be used with Dos on a 386sx or better with free extended
- memory.
-
- If you have enough free extended memory, you can use the
- default and fast "in memory" mode (4MB allow the compilation
- of approximately 64,000 nodes).
-
- If you do not have enough free memory, you can use the
- "temporary file" mode, provided you have 800KB of free
- extended memory (see the "-t" command line switch and the
- "FileMode" configuration statement).
-
- If you have no free extended memory at all, you have to use
- the 16 bit version.
-
-
- DOS 16 bit:
-
- to be used with Dos on 8088 or better.
-
- The only requirement is 530KB (or better 600KB) of free
- conventional memory.
-
- If you can't free enough conventional memory, you must use a
- 386sx or better with at least 800KB of free extended memory
- and use the 32 bit version, which has less stringent
- conventional memory requirements.
-
-
- 2) Write your FastLst.Cfg.
- You can find useful examples in the Fast_*.Cfg files and
- detailed information in the "CFG REFERENCE" section of this
- documentation.
-
-
- 3) Edit your batch file in order to call FastLst whenever you
- would like to test for the presence of new list/diff files
- and process them. If you do not pass a different pathname as
- a command line parameter, FastLst.Cfg must reside in the
- current directory.
-
-
- 4) (OS/2): Make sure you have the MSGAPI32.DLL in a directory
- contained in your LIBPATH. MSGAPI32.DLL can be found in the
- Squish 1.11 archive (SQSHP111.LZH).
-
- If you have little memory and FastLst runs excessively
- slow, try using the "temporary file" mode (see the "-t"
- command line switch and the "FileMode" configuration
- statement).
-
-
- (NT): Make sure you have the MSGAPINT.DLL in a directory
- contained in your PATH. MSGAPINT.DLL can be found in the
- Max 3.01 for Windows archive (MAX301N.ZIP).
-
- If you have little memory and FastLst runs excessively
- slow, try using the "temporary file" mode (see the "-t"
- command line switch and the "FileMode" configuration
- statement).
-
-
- (DOS32): Make sure you have the DOS4GW.EXE Dos extender (from
- Rational System Inc.) in your path.
-
- The DOS4GW extender requires an XMS or DPMI memory driver
- installed in your config.sys: e.g. HIMEM.SYS, QEMM (by
- QuarterDeck Office Systems Inc.).
-
- FastLst requires lots of memory to compile long nodelists:
- you must make sure that the Dos extender can make it
- available to FastLst.
-
- If you need more memory than you physically have, you must
- use the "temporary file" mode (see the "-t" command line
- switch and the "FileMode" configuration statement).
-
- You could also use the "in memory" mode and activate the
- DOS4GW virtual memory mode, but it is not recommended since
- it could unacceptably slow down the compilation process.
- Anyway, if you really want to test it on your own, the
- virtual mode is activated using the DOS4GVM environment
- variable (e.g. for 16MB virtual allocation size:
- SET DOS4GVM=VirtualSize#16384).
-
-
- (DOS16): Make sure you have at least 530KB of free
- (conventional) memory. You should use small message buffers
- (MsgSize statement) in order to avoid out of memory
- conditions during the merge-sort process.
-
-
- (DOS): Please note that FastLst tells you (on screen, in the
- logs, in the report message) how much memory remains after
- compilation, so that you can realize when you are running
- in marginal conditions and consequently adjust your
- configuration before you run out of memory.
-
- During the merge-sort process (16 bit and 32 bit in
- "temporary file" mode) FastLst automatically uses the
- maximum number of ways (up to 8) allowed by the available
- memory. The minimum number of ways is obviously 2. So, if
- FastLst reports a "2 Way Merging", you know that the final
- "MemFree <bytes>" is the actual margin for the "out of
- memory" error. On the other hand, if FastLst reports "3 Way
- Merging" or more, you know that there is an additional
- margin for the "out of memory", approximately 60KB for each
- way above the minimum of 2.
-
-
-
- COMMAND LINE SWITCHES
-
-
- -c<cfg>
- Use <cfg> configuration file instead of FASTLST.CFG.
-
- -f
- Force compilation even if no new list/diff has been
- detected.
-
- -i
- Ignore FastLst.Dat: run as if it were the first time.
- All nodelists compiled, all exports executed.
-
- -p
- Prepare: Unarc new lists and diffs, Apply diffs and Arc
- new nodelists, do not compile nodelists.
-
- -r
- When applying a diff, FastLst usually deletes the newly
- generated source nodelist file if a CRC error is
- detected. With this switch the new nodelist is _not_
- deleted, so that it will be processed anyway.
-
- When compiling a list, FastLst usually aborts the
- compilation of the current output nodelist if a CRC
- error is detected. With this switch the current output
- nodelist will be entirely compiled anyway.
-
- -t
- Toggles between "temporary file" mode and "in memory"
- mode. If "FileMode" is enabled in the configuration
- file, it switches to "in memory" mode and vice versa.
-
- -h or -?
- for help
-
-
- ERRORLEVELS
-
-
- 0 - Normal termination, something compiled
- 1 - Help requested
- 2 - File Open error
- 3 - Abnormal termination
- 4 - Disk Full
- 5 - Can't find config file
- 6 - Configuration error
- 7 - Out of memory
- 8 - Read error while applying diff
- 9 - CRC error (applying diff)
- 10 - CRC error (compiling list)
- 11 - User Break
- 12 - Cannot rename temporary output nodelist files
- 13 - Cannot open source nodelist file
- 14 - Timeout waiting on V7 semaphore
- 15 - Too many nodelists in inbound directories
- 16 - Nothing found after unarchiving a fixed-name nodelist
-
- 100 - Normal termination, nothing compiled
-
- 250 - MsgApi: Init Error
- 251 - MsgApi: Area Open Error
- 252 - MsgApi: Area Lock Error
- 253 - MsgApi: Area Close Error
-
-
-
- CONFIGURATION
-
-
- Before analyzing the cfg keywords in detail, let's introduce the
- overall mechanism that is at the basis of FastLst's
- configuration.
-
- If you are converting from a different nodelist compiler, please
- forget the old configuration and start from scratch.
-
- FastLst.Cfg is divided into several logical blocks and the
- sequence of the various statements is essential: you cannot just
- put keywords somewhere in the config file; they must be arranged
- in the correct order.
-
- At first, this characteristic of FastLst's configuration might
- appear complex to understand, but, as soon as you will grasp its
- logic, you will understand that it's really easy to write a
- correct configuration file and you will appreciate its
- extraordinary flexibility.
-
- The first block of configuration is the "Global" one.
- The verbs in this block refer to the compilation of all the
- nodelists.
-
- Then there are one or more "Output Blocks": each output block
- refers to the compilation of a single V7 nodelist (e.g.
- NODEX.*).
-
- Each "Output Block" has a "Output section" (with statements
- regarding the compilation of the whole V7 list) and one or more
- "Input blocks" containing the verbs that describe how to compile
- each of the source nodelists.
-
- The first "Output Block" can optionally be of a special kind: a
- "NoCompile" block, whose "Input Blocks" describe nodelists that
- must be maintained (e.g. diffs applied) but not compiled to any
- V7 list.
-
- Some statements can be used in blocks of a particular type only,
- others can be used in many different places depending on what
- nodelists you want to be affected. As a rule of thumb, you can
- use each statement anywhere it seems to be logically acceptable.
-
- If you feel frightened by such abstract considerations, please
- take a look at the example Fast*.Cfg files, so that you can
- quickly realize it's not that difficult.
-
- To write your own configuration file you should start modifying
- the example one that is more adequate to your needs.
-
- Now, let's consider all the verbs that are allowed in FastLst's
- configuration.
-
-
-
- CFG REFERENCE
-
-
-
- - Items between square brackets (e.g. [<item>]) are optional.
-
- - The names of the various Keywords are NOT case sensitive.
-
- - When a directory path is required, the trailing backslash '\'
- is optional.
-
- - The ';' character starts comments: any character following the
- ';' is ignored, unless inside quoted strings.
-
- - The maximum length of configuration lines is 254 characters,
- so don't go further (you can always split address lists into
- smaller ones).
-
- - In the OS/2 version, any file specification can be a legal
- OS/2 name, between double quotes if necessary.
-
-
- Please, note that the order of the configuration statements
- follows some logical rule. In order not to create confusion in
- the .cfg file and not to break some _necessary_ order relation,
- please follow the scheme proposed in the example Fast*.CFG files
- and in this reference documentation.
-
- Please, be aware that the generation of text files (FidoTxt,
- FidoPrn, FidoUserLst verbs) and the use of lots of options and
- overrides can slow down the compilation process: use only the
- options/overrides that you really need if you mind compilation
- time.
-
-
- G L O B A L
-
-
- The following verbs can be used in the Global section of
- FastLst.cfg. Some of them can be used in other places also, so
- they are divided into separate sections.
-
-
- G L O B A L
-
- Section A
-
-
-
- The following configuration verbs can be used in the GLOBAL
- section of FastLst.Cfg.
-
-
- RegKey <RegKey>
-
- Registered Users only: <RegKey> is the registration key
- and it is NOT case sensitive.
-
- Example:
-
- RegKey dfhyuwru6274623
-
-
-
- Priority <type> [<level>]
-
- Changes the execution priority of the FastLst process
- (OS/2 only).
-
- Ignored by NT and DOS versions.
-
- <type> is one of: Idle Regular High
-
- <level> is an integer in the range 0...31 and defaults
- to 0.
-
- If you do not use this statement, FastLst will run at
- the default priority, which normally is "Regular 0".
-
- Examples:
-
- Priority High 31
-
- Gives Fastlst the highest priority for "non
- time-critical" processes. It will run fast even if it
- is in the background and other processes are active.
-
-
- Priority Idle
-
- Gives FastLst the lowest priority, so that it loads
- the system as minimally as possible. It will run
- significantly slower, especially if in the background
- or when other CPU intensive processes are in
- execution.
-
-
-
- FileMode
-
- Enables the temporary file mode (32 bit only).
-
- Ignored by the 16 bit versions.
-
- Makes Fastlst use temporary files, so that the memory
- requirements remain low and independent of the size of
- the compiled nodelists.
-
- If you do not use this statement, FastLst (32 bit) uses
- memory for storing the data it needs for building the V7
- indexes. If you have not enough free memory, the DOS 32
- version will return an "out of memory" error while the
- OS/2 one will run slowly.
-
-
-
- StatusLog <LogFile>
-
- <LogFile> is the name of the file where all the
- operations performed by FastLst will be logged,
- following the "Binkley Style".
-
- In multitasking environments, please be sure to use a
- file that cannot be used by other processes at the same
- time. For example: if (in your system) FastLst can be
- executed while Binkley is running, please use different
- log files.
-
- Should you not want the log file, you can comment this
- keyword out.
-
- Example:
-
- StatusLog d:\bbs\log\FastLst.log
-
-
-
- CompressCfg <compress_cfg>
-
- This is a "Squish style" compress definition file.
-
- In the case you are using a case-sensitive
- de/compression program (e.g. OS/2 ZIP/UNZIP), please
- make sure to use the correct switches in <compress_cfg>
- and/or the correct case (Lower/Upper) in <NodeList> and
- <NodeDiff> specifications.
-
- You can find the suggested <compress_cfg> in the example
- Compress.Cfg file included in the FastLst pack.
-
- If you are already using Squish and/or Maximus, you can
- just specify the name of their compress.cfg (but do
- check that they indicate the necessary switches to avoid
- case sensitiveness during extraction).
-
- Refer to the "Compress Definition File" section at the
- end of this document for the syntax of <compress_cfg>.
-
-
-
- TmpPath <TmpDir>
-
- Specifies a directory to be used for temporary files.
-
- If TmpPath is not used, FastLst will use the path
- specified in the TEMP or TMP environment variables or
- (if they are not defined) the current directory.
-
- FastLst will not damage any file already present in the
- temporary directory.
-
- The 16 bit versions always use temporary files, while
- the 32 bit ones work in memory unless the "FileMode"
- statement or -t command line switch are used.
-
-
-
- InputPath <NodeDir>
-
- Specifies the default path for input files (source
- nodelists/nodediffs). You can override it by using a
- full pathname in input-file specifications.
-
- Created if not existing.
-
- Example:
-
- InputPath d:\bbs\nodelist\
-
-
-
- ArcPath <ArcNodeDir>
-
- Specifies the default path for Archived nodelist files.
- It usually points to the file area where your TIC
- processor moves the inbound nodelist archives.
-
- You can override it by using a full pathname in
- Archived-file specifications.
-
- Example:
-
- ArcPath d:\bbs\file\nodelist\
-
-
-
- ArcDate Write|Creation
-
- (OS/2)
- Selects the date to be used for computing the age of
- fixed-name archived nodelist files.
-
- This setting is useful for HPFS (which has separate
- Write and Creation dates) and ignored for FAT.
-
- If not specified, "Creation" is assumed.
-
- Attention: in order to avoid problems in the case the
- date has been corrupted during the transfer of the file,
- it is best to choose the same date that your mailer sets
- as "receive/upload" date or that is touched by your TIC
- processor.
-
- Examples:
-
- ArcDate Write ; Use the Write date
- ArcDate Creation ; same as default
-
-
-
- MultiLineDesc <nnn> [<c>]
-
- By default, files.bbs description must be on a single
- line; this statement enables Multi-Line support.
-
- <nnn> is the number of spaces that must precede the
- continuation lines.
-
- <c> is the continuation character.
-
- If <c> is NOT specified, it is assumed that the
- continuation lines must be preceded by <nnn> spaces.
-
- If <c> IS specified, it is assumed that the continuation
- lines must be preceded by <nnn> spaces, the <c>
- character and one more space.
-
- For example, to have the 2nd and following description
- lines in files.bbs start at the 32nd column, use:
-
- MultiLineDesc 31
-
- A description in files.bbs would be like:
-
- Test.Zip This is the first description line
- this is the 2nd line
- this is the 3rd line
- ^ ^^
- 1 31 32
-
- To have the continuation lines preceded by a '|'
- character, use:
-
- MultiLineDesc 29 |
-
- A description in files.bbs would be like:
-
- Test.Zip This is the first description line
- | this is the 2nd line
- | this is the 3rd line
- ^ ^ ^
- 1 29 32
-
-
-
- KillAfter
-
- Old V7 files are killed after the new ones have been
- successfully written.
-
- The new V7 files are written to temporary names, then
- the old ones are killed and the new ones renamed (and
- FastLst retries for 15s in case of error, to be
- multitasking smart).
-
- Thus you will always have a valid V7 nodelist, even in
- the case of a compilation error and consequent compile
- abortion. Besides, your multitasking system can continue
- operations while FastLst is working. On the other hand
- you might need some more spare disk space to hold the
- old and new files during compilation.
-
-
-
- KillSource
-
- Tells FastLst to kill all uncompressed nodelists (that
- are also available in archived format) before
- terminating.
-
- Please note that FastLst deletes a source nodelist only
- if the ArcList statement is defined.
-
- Besides, when the NodeDiff statement is used, an
- ArcMethod must be defined to allow the deletion of the
- nodelist.
-
- When no NodeDiff is defined, FastLst assumes that the
- uncompressed NodeList has been extracted from a
- corresponding archive.
-
-
-
- BeforeKillSource <command>
-
- This statement is used to invoke a command of your
- choice before the source nodelists are killed, upon
- FastLst completion.
-
- <command> is executed even if "KillSource" is not used.
- It is a means of invoking a command before FastLst ends.
-
- The "NeededBeforeKill" verb must be used to specify the
- NodeLists needed by this command: if one of these
- nodelists is found new, then this command is invoked
- after decompressing all the nodelists that have the
- "NeededBeforeKill" attribute (and have not been
- decompressed yet).
-
- IMPORTANT: <command> is executed ONLY if some nodelist
- affected by a "NeededBeforeKill" verb has been detected
- as new.
-
- <command> can be any command that is valid for the
- command interpreter specified in your COMSPEC
- environment variable.
-
- If <command> invokes an executable file, it is loaded
- and executed directly; otherwise your command
- interpreter is invoked, so that you can execute a batch
- file or any other valid command.
-
- No variable parameters are supported.
-
-
-
- Dash2Comma
-
- Change dashes to commas in the phone numbers.
-
- Useful for people that are still connected to ancient
- "rotary pulse" electromechanic telephone exchanges.
-
-
-
- NoDash
-
- Remove dashes from the phone numbers.
-
-
-
- NoReport
-
- Do not output nodelist statistics
-
-
-
- NoRedir
-
- Nodes that do not have a valid phone number (Hold,
- Unpublished) are usually redirected to their
- coordinators.
-
- When this verb is used, redirection does not take place
- and the node is given an empty phone number, so that you
- never call a system different from that you think you
- are calling.
-
- Please note that (even with no NoRedir verb):
- - points are never redirected;
- - if you have a password with a system or its
- coordinator, this node will never be redirected.
-
-
-
- V7BugFix
-
- Circumvents a bug with V7 nodelist in Binkley 2.50 (and
- perhaps in many other programs whose V7 search function
- was inspired by Binkley's sources) that can sometimes
- hide segments of V7 nodelist.
-
- Binkley 2.60 is OK, but some other programs may not: if
- you are unsure, keep this keyword active.
-
-
-
- MsgLogArea <path> [-$]
-
- Some information about the compilation can be reported
- to a fido or squish message area.
-
- <path> indicates a message area for reporting
- compilation logs.
-
- -$ specifies that the area is in Squish format;
- otherwise it is assumed to be *.MSG.
-
- The "MsgLog" statement (see Global Section C) can be
- used to add some information that is not reported by
- default.
-
- Examples:
-
- MsgLogArea \bbs\mail\net -$
- MsgLogArea \bbs\mail\net\
-
-
-
- MsgRemArea <path> [-$]
-
- The comments found in the compiled nodelists can be
- selectively reported to a fido or squish message area.
-
- <path> indicates a message area for reporting
- compilation logs.
-
- -$ specifies that the area is in Squish format;
- otherwise it is assumed to be *.MSG.
-
- The "MsgRem" statement (see Global Section C) MUST be
- used to specify which types of comments you want to be
- reported.
-
- Please note that no comments are reported if no "MsgRem"
- statement is used.
-
- Examples:
-
- MsgRemArea \bbs\mail\net -$
- MsgRemArea \bbs\mail\net\
-
-
-
- MsgFromNode <address>
- MsgToNode <address>
-
- Specify the addresses for the created messages.
-
- <address> is a 4D address.
-
- Example:
-
- MsgFromNode 2:332/504
- MsgToNode 2:332/504.1
-
-
-
- MsgTo <name>
-
- Specifies the name of the addressee of the created
- messages.
-
- Example:
-
- MsgTo Alberto Pasquale
-
-
-
- MsgAttr <attributes>
-
- Specifies the attributes for the created messages.
-
- <attributes> can be a (not case sensitive) combination
- of:
-
- P : Private
- K : Kill/Sent
- C : Crash
- H : Hold
- D : Direct (crash + hold in squish messages)
-
- Examples:
-
- MsgAttr P
- MsgAttr pk
-
-
-
- MsgSize <bytes>
-
- Specifies the maximum size of a single message: after
- this length, the message is split.
-
- Defaults to 7K, greater values are recommended, so that
- the message is not divided into too many parts.
-
- 16 bit: maximum 65535
- 32 bit: no maximum (4294967295)
-
- WARNING: Dos 16 version has stringent problems of
- memory, so you should be happy with the 7K default.
-
- Example:
-
- MsgSize 60000
-
-
-
- CostNullPhone <Cost> [<UCost>]
-
- Specifies the costs to be assigned to nodes with empty
- (unpublished, etc.) phone number.
-
- <Cost> is the "call cost" .
- <UCost> is the "user cost" (fee for netmail messages).
-
- <UCost> defaults to <Cost>.
-
- If CostNullPhone is not used, <Cost> defaults to 65535
- and <UCost> to 0.
-
- Example:
-
- CostNullPhone 1000 0
-
- Note:
-
- Some programs might have bugs that cause problems
- dealing with high costs (such as the default 65535).
- Should you experience problems with entries that have a
- "NullPhone", try setting a lower cost e.g.
- "CostNullPhone 900 0".
-
-
-
- CostVerbatimPhone <Cost> [<UCost>]
-
- Specifies the costs to be assigned to nodes that have
- a verbatim phone specification.
-
- <Cost> is the "call cost" .
- <UCost> is the "user cost" (fee for netmail messages).
-
- <UCost> defaults to <Cost>.
-
- If the statement is not used, both costs default to 0.
-
- Example:
-
- CostVerbatimPhone 10 0
-
-
-
- Cost and Dial translation Tables
-
-
- You can specify costs and dial translations in separate tables
- or in a combined "Dial and Cost" table.
-
- Note: These tables are not used against "Verbatim Phones".
-
- To Europeans: you usually will prefer separate tables, since the
- dial translations are quite simple. This way you can keep the
- (very short) dial table always fixed, while adjusting the cost
- table to your needs. Anyway, if you do not use long cost tables,
- you could find the combined dial & cost table convenient.
-
- To Americans: you have quite long dial tables since you need to
- list all the "local exchange" codes. So you usually don't like
- duplicating this list for assigning the costs: you will
- appreciate the combined table. The custom definition for the
- list of local exchanges should also speed up the compilation of
- all the nodelist entries that are out of your Area Code.
-
-
-
- Cost Table
-
-
- This is the Cost Table to be used in association with a separate
- Dial table, that must follow.
-
- It begins with "Cost" and ends with the "End" keyword.
-
- Each entry in the cost table has the following format:
-
- <PartPhone> <Cost> [<UCost> [<StripFlags>]]
-
- <PartPhone>
- is a partial phone number to be matched with the initial
- part of nodelist entries. The dashes are ignored. The
- <PartPhone> of the last entry must be a single dash "-",
- to mean that all the remaining numbers will take the
- costs specified there.
-
- <Cost>
- is the cost field of the compiled nodelist (0->65535).
- It represents the "Call Cost" for any node whose phone
- number begins with <PartPhone> in the source nodelist
- (before dialing translations).
-
- <UCost>
- is an optional "User Cost" (fee for a netmail message on
- BBS). If it is not used, it's taken equal to <Cost>. If
- you would like your users to be able to send netmail
- messages from the BBS with no need for "credits", you
- should set <UCost> to 0.
-
- <StripFlags>
- is an optional list of nodelist flags (not case
- sensitive) to be stripped from entries of nodes whose
- phone number begins with <PartPhone>. Thus you can strip
- some modem-type flags (V32, HST, ZYX, ...) when calling
- into critical areas. This parameter can only be used
- after <UCost>.
-
-
- When searching for "PartPhone", the first matching entry is
- applied: in the case of entries with an initial part in common,
- you have to specify them in sequence from the longest to the
- shortest. If no match is possible, the last line specifies the
- default (thereby international) <Cost> and optional <UCost> and
- <StripFlags>.
-
-
- WARNING: This table CANNOT be left totally empty: it must contain at
- least the default entry "- <Cost>".
-
-
- Example 1:
-
- The following example assigns <UCost> = 0 to all, <Cost>
- = 0 to local systems, 60 to domestic and 300 to
- international ones.
-
- Cost
- 39-59 0 0 ; local
- 39- 60 0 ; domestic long distance
- - 300 0 ; international
- End
-
-
- Example 2:
-
- Now let's strip some flags from some areas.
-
- Cost
- 1-703 300 0 HST,H14,H16 ; strip HST
- 45-123 300 0 V32,V32b ; strip V32 and V32b
- 39-59 0 0 ; local
- 39- 60 0 ; long distance
- - 300 0 ; international
- End
-
-
- Example 3:
-
- Now let's differentiate between urban and district calls
- and between Continental and Intercontinental calls; call
- and user cost considered equal.
-
- Cost
- 39-59-2 5 ; urban
- 39-59-3 5 ; urban
- 39-59-4 5 ; urban
- 39-59-81 5 ; urban
- 39-59-82 5 ; urban
- 39-59 30 ; district
- 39 60 ; domestic long distance
- 43 100 ; Austria
- 32 100 ; Belgium
- 45 100 ; Denmark
- 33 100 ; France
- 49 100 ; Germany
- 44 100 ; UK
- 31 100 ; Netherlands
- 34 100 ; Spain
- 46 100 ; Sweden
- 41 100 ; Switzerland
- 1 200 ; USA/Canada
- - 300 ; others
- End
-
-
- Example 4:
-
- Minimal cost table for sysops that do not want to use
- the nodelist cost fields.
-
- Cost
- - 0
- End
-
-
- Dial Table
-
-
- This table can be used either as a simple Dial Table in
- association with a separate preceding Cost Table or as a
- combined Cost/Dial Table (in which case the Cost Table must NOT
- exist).
-
- It begins with "Dial" and ends with the "End" keyword.
-
- Each entry has the following format:
-
- <PartPhone> [<PreSuf>]
-
- or
-
- <PartPhone> <PreSuf> [<Cost> [<UCost> [<StripFlags>]]]
-
- The first form is for the separate Dial Table, the second one is
- for the combined Cost/Dial Table.
-
-
- The following two keywords allow to specify groups of exchanges
- that must be handled by a certain dial table entry:
-
-
- LocalValues <PartPhone> <PreSuf> [<Cost> [<UCost> [<StripFlags>]]]
-
- This keyword is provided for clarity only: it is
- taken just as a normal specification with no
- heading "LocalValues".
-
-
- LocalExchanges <num> ...
-
- Lists all the exchanges that must be handled as per the
- preceding dial translation entry (which may be preceded
- by the "LocalValues" keyword for clarity).
-
- Please remember that the line length is limited to 254
- characters.
-
- You can use multiple "LocalExchanges <num> ..."
- statements if you like short lines or need more than
- 254 characters.
-
- Please note that all numbers that (after <PartPhone>
- stripping) begin with <num> are considered local.
- For example, if 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229 are all local exchanges, you can indicate 22 to
- include them all.
-
-
- The use of these two statements in the place of a long list of
- normal table lines (one for each local exchange) should also
- speed up the processing of all the nodelist entries that are not
- in your area code.
-
-
-
- <PartPhone>
- is a partial phone number to be matched with the initial
- part of nodelist entries. The dashes are ignored. The
- <PartPhone> of the last entry must be a single dash "-",
- to mean that all the remaining numbers will take the
- parameters specified there.
-
- <PreSuf>
- can be one of:
- a: <Prefix>
- b: /<Suffix>
- c: <Prefix>/<Suffix>
- d: /
-
- <PartPhone> is stripped from numbers beginning with it,
- then <PreSuf> is used to prepend/append the specified
- strings to the remainder.
-
- Case a: <Prefix> is prepended.
- e.g.: "39- 0"
- strips "39-" and adds "0" at the beginning of
- the number.
-
- Case b: <Suffix> is appended.
- e.g.: "39-59- /!"
- strips "39-59-" and adds "!" at the end of the
- number.
-
- Case c: <Prefix> is prepended and <Suffix> appended.
- e.g.: "39- 0/!"
- strips "39-", adds "0" at the beginning and "!"
- at the end.
-
- Case d: Nothing is prepended nor appended.
- e.g.: "/"
- The slash is needed to allow the correct
- interpretation of the subsequent fields, in the
- case of combined Dial/Cost table.
-
- No spaces are allowed between prefix, suffix and the
- separating slash.
-
- The remaining fields are used as described in the "Cost Table"
- section. If the <Cost> field is omitted, it is taken equal to
- 65535.
-
- When searching for "PartPhone", the first matching entry is
- applied: in the case of entries with an initial part in common,
- you have to specify them in sequence from the longest to the
- shortest. If no match is possible, the last line specifies the
- default (thereby international) parameters.
-
- WARNING: This table CANNOT be left totally empty: it must contain at
- least the default entry "- [<PreSuf>]".
-
-
-
- Example 1 (separate tables, European viewpoint):
-
- Dial
- 39-59- ; local
- 39- 0 ; domestic
- - 00 ; international
- End
-
- "39-59": Country and District codes are stripped for
- local calls.
-
- "39-" : Country code is stripped and replaced by "0"
- (domestic long distance code) for domestic
- calls.
-
- Others: "00" (International access code) is prepended.
-
-
-
- Example 2a/b/c (combined tables, North American viewpoint):
-
- Since this one is a bit more complex, let's make clear
- some points.
-
- There are some groups of phone numbers:
-
- 1 - Local numbers.
- These are usually "toll free" numbers.
- As a rule of thumb, you must only dial the local
- number, stripping the Country Code "1" and the
- Area Code.
- In the case you live at the crossroads of two or
- more area codes, it is possible that you have local
- numbers in area codes that you must _not_ strip.
-
- 2 - Area Code numbers.
- They have your same Area Code but they are long
- distance.
- As far as I know, there are many different
- situations regarding the need to dial the long
- distance access code "1" and the Area Code.
- In any case you usually want to differentiate costs.
-
- The Country "1" and Area Codes must be stripped and
- replaced by:
-
- (a) the long distance access code "1"
- (b) the long distance access code "1" +
- the Area Code
- (c) nothing
-
- In case (b) the number really remains untouched.
-
- Even if the Country Code for USA/Canada "1" is
- numerically equal to your long distance acces code,
- they are conceptually quite different, and so they
- will be treated.
-
- 3 - Domestic numbers.
- USA/Canada numbers, with a leading "1", that is the
- international Country Code for USA and Canada.
- They must be left untouched, since the american long
- distance access code is equal to the international
- Country Code for North America.
-
- 4 - International numbers.
- These are numbers out of USA and Canada.
- They must be prefixed by "011", that is the
- international access code.
-
- And now let's see how to achieve our goal using
- FastLst's Dial Table.
-
-
-
- Example 2a:
-
- Let's suppose:
-
- - we are in Area Code 414
- - the 414 must be stripped for LD calls
- - the local exchanges are 231, 232, 233, 235, 236, 424
-
-
- Dial
- ; strip 1-414- from local numbers, do not add
- ; a prefix, set call and user costs to 0.
-
- LocalValues 1-414- / 0
- LocalExchanges 231 232 233 235 236 424
-
- ; Remaining "1-414-" numbers are long distance:
- ; strip the 414 Area Code and assign costs = 25.
-
- 1-414- 1- 25
-
- ; Remaining "1-" numbers are Domestic Long Distance.
- ; Set costs to 50
-
- 1- 1- 50
-
- ; Remaining numbers are international.
- ; Prepend 011 and set call cost to 250 and
- ; user cost to 500
-
- - 011 250 500
- End
-
-
-
- Example 2b:
-
- Let's suppose:
-
- - we are in Area Code 604
- - the 604 must NOT be stripped for LD calls
- - the local exchanges are 220 221 222 224 228 230 231 240
- 241 244 250 251 252 253 254 255 257 258 261 263 264 266
-
-
- Dial
- ; strip 1-604- from local numbers, do not add
- ; a prefix, set call and user costs to 0.
-
- LocalValues 1-604- / 0
- LocalExchanges 220 221 222 224 228 230 231 240
- LocalExchanges 241 244 250 251 252 253 254 255
- LocalExchanges 257 258 261 263 264 266
-
- ; Remaining "1-604-" numbers are long distance:
- ; assign costs = 25.
-
- 1-604- 1-604- 25
-
- ; Remaining "1-" numbers are Domestic Long Distance.
- ; Set costs to 50
-
- 1- 1- 50
-
- ; Remaining numbers are international.
- ; Prepend 011 and set call cost to 250 and
- ; user cost to 500
-
- - 011 250 500
- End
-
-
-
- Example 2c:
-
- Let's suppose:
-
- - we are at the crossroads of Area Codes 510, 408, 415
- - "1-510" must always be stripped
- - "1-408" and "1-415" must never be stripped
- - some exchanges are toll-free, others are not
-
-
- Dial
- ; strip 1-510- from local numbers, do not add
- ; a prefix, set call and user costs to 0.
-
- LocalValues 1-510- / 0
- LocalExchanges 224 225 226 227 247 249 252 264 276
- LocalExchanges 278 293 317 353 354 416 417
-
- ; Specify local exchanges for area code 408,
- ; keep "1-408".
-
- LocalValues 1-408- 1-408- 0
- LocalExchanges 232 251 254 258 259 262 263 272 276
- LocalExchanges 321 324 325 383 428 432 433 434
-
- ; Specify local exchanges for area code 415,
- ; keep "1-415".
-
- LocalValues 1-415- 1-415- 0
- LocalExchanges 233 234 321 322 323 324 325 326 327
- LocalExchanges 328 329 354 424 462 473 493
-
- ; Remaining "1-510-" numbers are not free,
- ; the country and area codes are stripped.
-
- 1-510- / 25
-
- ; Remaining numbers in area codes 408 and
- ; 415 are not free, nothing is stripped.
-
- 1-408- 1-408- 25
- 1-415- 1-415- 25
-
- ; Remaining numbers in country code "1"
- ; are domestic: nothing changed, cost 100.
-
- 1- 1- 100
-
- ; Remaining numbers are international.
- ; Prepend 011 and set cost to 2000.
-
- - 011 2000
-
- End
-
-
-
- Example 3 (combined table, European viewpoint):
-
- The following combined table is equivalent to the
- separate "Example 3" for the Cost Table and Example 1
- for the Dial Table.
-
-
- Dial
- LocalValues 39-59- / 5
- LocalExchanges 2 3 4 81 82 ; urban
- 39-59- / 30 ; district
- 39- 0 60 ; domestic long distance
- 43 0043- 100 ; Austria
- 32 0032- 100 ; Belgium
- 45 0045- 100 ; Denmark
- 33 0033- 100 ; France
- 49 0049- 100 ; Germany
- 44 0044- 100 ; UK
- 31 0031- 100 ; Netherlands
- 34 0034- 100 ; Spain
- 46 0046- 100 ; Sweden
- 41 0041- 100 ; Switzerland
- 1 001- 200 ; USA/Canada
- - 00 300 ; others
- End
-
-
-
- Example 4:
-
- Minimal table for sysops that make dial translations
- somewhere else.
-
- Dial
- -
- End
-
-
-
- Modem Type Table
-
-
- If you have a modem that does not need different dial strings
- for different protocol connections, you can skip this section.
- For Example a Zyxel modem usually needs one only dial string for
- any type of connection (unless you do not use "Multi-Auto"
- mode).
-
- Instead, if you need different dial strings, you can use the
- Modem_Type field in conjunction with some front-end feature that
- allows to specify different dial strings for different modem
- types ("ModemTrans" in Binkley).
-
- Each entry in the TypeDef table has the following format:
-
- <Flag> <Value>
-
- <Flag> is a Nodelist flag (max 9 chars),
- <Value> is a number 0->255.
-
- The nodelist flags of each node are searched for <Flag>.
- The <Flag> must match completely a nodelist flag: if <Flag> is
- V32 and the nodelist flag is V32B, it's not a match.
- The search is not case sensitive.
-
- If <Flag> is found, the corresponding ModemType field is set to
- <Value>, otherwise the next <Flag> is searched for.
-
- The ModemType field of the compiled nodelist will be determined
- by the first match only: If you define HST before V32, a node
- with both V32 and HST will have a HST modem type.
-
- The following examples are valid for Binkley's new "exact match"
- modemtrans style only (for use of old bitwise style, see below).
-
- WARNING: Please note that when you do not want Binkley to dial
- out for certain modem types, you need to specify an empty dial
- string in the modemtrans statement. Due to a bug of Binkley,
- you must also avoid comments on those lines !
-
-
- Example 1:
-
- for USR Courier Dual Standard V.Everything:
-
-
- TypeDef
- V34 1 ; first choice
- VFC 2
- V32T 3
- H16 4
- V32B 5
- ZYX 5 ; ZYX implies V32B
- Z19 5
- Z16 5
- H14 6
- V32 7
- HST 8
- End
-
-
- In Binkley.Cfg you can use:
-
-
- ModemTrans 0 ATB0D/ ; default
- ModemTrans 1 ATB0D/ ; V34
- ModemTrans 2 ATB0D/ ; VFC
- ModemTrans 3 ATB0D/ ; V32T
- ModemTrans 4 ATB1D/ ; H16
- ModemTrans 5 ATB0D/ ; V32B, ZYX
- ModemTrans 6 ATB1D/ ; H14
- ModemTrans 7 ATB0D/ ; V32
- ModemTrans 8 ATB1D/ ; HST
-
-
-
- Example 2:
-
- for 2 lines, ISDN and USR DS V.Everything:
-
- The UISDNA, UISDNB, UISDNC entries are required only
- until the incorrect ",UISDNA," type entries are changed
- to the correct ",U,ISDNA," style or the ISDN flags become
- standard flags (not user defined as they currently are).
-
-
- TypeDef
- ISDNC 1
- UISDNC 1
- ISDNB 2
- UISDNB 2
- ISDNA 3
- UISDNA 3
- V34 4
- VFC 5
- V32T 6
- H16 7
- V32B 8
- ZYX 8 ; ZYX implies V32B
- Z19 8
- Z16 8
- H14 9
- V32 10
- HST 11
- End
-
-
- In Binkley.Cfg, ISDN line, you can use:
-
- ModemTrans 0
- ModemTrans 1 <ISDNC_Dial_String> ; ISDNC
- ModemTrans 2 <ISDNB_Dial_String> ; ISDNB
- ModemTrans 3 <ISDNA_Dial_String> ; ISDNA
- ModemTrans 4
- ModemTrans 5
- ModemTrans 6
- ModemTrans 7
- ModemTrans 8
- ModemTrans 9
- ModemTrans 10
- ModemTrans 11
-
-
- In Binkley.Cfg, USR line, you can use:
-
- ModemTrans 0 ATB0D/ ; default (2400)
- ModemTrans 1
- ModemTrans 2
- ModemTrans 3
- ModemTrans 4 ATB0D/ ; V34
- ModemTrans 5 ATB0D/ ; VFC
- ModemTrans 6 ATB0D/ ; V32T
- ModemTrans 7 ATB1D/ ; H16
- ModemTrans 8 ATB0D/ ; V32B, ZYX
- ModemTrans 9 ATB1D/ ; H14
- ModemTrans 10 ATB0D/ ; V32
- ModemTrans 11 ATB1D/ ; HST
-
-
-
- Example 3:
-
- for 2 lines, ISDN and analog, when you want both lines
- enabled to dial systems that have both ISDN and analog
- access. You usually should not want such a behaviour
- (why calling a ISDN system the analog way ?); however,
- if you really know what you are doing, here is a viable
- trick.
-
- You have to use the "BitType" mode (see below):
-
- BitType
-
- Typedef
- ISDNA 1
- ISDNB 1
- ISDNC 1
- V34 2
- VFC 2
- V32T 2
- V32B 2
- V32 2
- End
-
-
- In Binkley.Cfg, ISDN line, you can use:
-
- ModemTrans 0
- ModemTrans 1 <ISDN_Dial_String> ; ISDN only
- ModemTrans 2
- ModemTrans 3 <ISDN_Dial_String> ; ISDN + analog
-
-
- In Binkley.Cfg, analog line, you can use:
-
- ModemTrans 0 ATDT ; 2400
- ModemTrans 1
- ModemTrans 2 ATDT ; analog only
- ModemTrans 3 ATDT ; analog + ISDN
-
-
-
- For compatibility with old Binkleys and derived systems, the
- following statement is provided:
-
- BitType
-
- If you need old-style bit-oriented modem type, you must enable
- this verb. In this case the "TypeDef" works differently:
- - <Value> should be a power of 2 (1, 2, 4, 8, 16, 32, 64, 128).
- - The ModemType will be determined by ORing all the <Value>s
- corresponding to <Flag>s that found a match in the nodelist
- flags.
- - The dial string used by your front-end will be determined by
- the order of their specifications (the first ModemTrans that
- has some bit in common with the modem type will be used).
-
- Example for USR Courier Dual Standard V.Everything:
-
- BitType
-
- TypeDef
- V34 1 ; first choice
- VFC 2
- V32T 4
- H16 8
- V32B 16
- ZYX 16 ; ZYX implies V32B
- Z19 16
- Z16 16
- H14 32
- V32 64
- HST 128
- End
-
-
- In Binkley.Cfg you can use:
-
-
- ModemTrans 0 ATB0D/ ; default
- ModemTrans 1 ATB0D/ ; V34
- ModemTrans 2 ATB0D/ ; VFC
- ModemTrans 4 ATB0D/ ; V32T
- ModemTrans 8 ATB1D/ ; H16
- ModemTrans 16 ATB0D/ ; V32B, ZYX
- ModemTrans 32 ATB1D/ ; H14
- ModemTrans 64 ATB0D/ ; V32
- ModemTrans 128 ATB1D/ ; HST
-
-
-
- User Flags Table
-
-
- This is an optional table used to handle the "user defined" bits
- in the Flags word of the compiled nodelist entry.
-
- These bits are named 5,6,7,8,9,A,B,D,E,F where bit 5 is the 6th
- bit and F is the 16th bit of the word.
-
- Using this table, you can associate (source) nodelist flags to user
- defined bits in the output binary nodelist.
-
- The table is delimited by the "FlagDef" and "End" keywords; each
- line is in the form "<sFlag> <bFlags>" where <sFlag> is a flag
- (max 9 chars) to be looked for in the source nodelists while
- <bFlags> represents one or more user-defined bits in the output
- Flags word.
-
- Example:
-
- FlagDef
- V42B AB ; V42B -> user bits A and B
- V32B DE ; V32B -> user bits D and E
- End
-
-
- To add further flags on a node by node basis, please use the
- "Flags <Addr> <Flags>" statement.
-
- To remove flags, please specify the source flags via the
- "NodeFlags <Addr> <NodeFlags>" statement.
-
-
-
- G L O B A L
-
- Section B
-
-
-
- The statements in this section affect the processing of all
- the output blocks and thereby of all the input nodelists.
-
- These statements can also be used in the "OUTPUT" section of an
- OUTPUT block or inside an INPUT block, in which case they affect
- the compilation of the relevant block only.
-
- In the case you use a verb that has already been used in a
- "higher level" block, it will behave as a local override.
-
-
-
- NeededBeforeKill
-
- Tells FastLst that the affected NodeList(s) are needed
- by the command run via the "BeforeKillSource" statement.
-
- The "BeforeKillSource" verb allows you to run a command
- (executable or batch file) after the compilation has
- completed, just before FastLst ends and (if "KillSource"
- is used) deletes the source files that are also present
- in archived form.
-
- The lists affected by "NeededBeforeKill" are extracted,
- if not already present, before the "BeforeKillSource"
- command is executed.
-
-
-
- ArcMethod <meth>[,<f>] ...
-
- Tells FastLst that it must make sure that all new
- nodelists are archived using the specified methods.
- The original archive is NOT killed.
-
- Obviously, a new nodelist is not rearchived to its
- original method.
-
- <meth> is the name of an archiver defined in
- compress.cfg.
-
- <f> is the optional specification of the letter to be
- used for the variable archive extension. If not
- specified, it is assumed equal to the first letter of
- the defaults extension for this archiver.
-
- Multiple ArcMethod statements are allowed.
-
-
- Example 1:
-
- ArcMethod ZIP LH,H
-
- NodeList.Z48 arrives: it is archived to NodeList.H48
- also, using the LH archiver.
-
-
- Example 2:
-
- ArcMethod ZIP LH
-
- NodeDiff.Z48 arrives: the resulting nodelist is archived
- to NodeList.Z48 using the ZIP archiver and to
- NodeList.L48 using LH.
-
-
-
- ArcDiffMethod <meth>[,<f>] ...
-
- Tells FastLst that it must make sure that all new
- nodediffs are archived using the specified methods.
- The original archive is NOT killed.
-
- Obviously, a new nodediff is not rearchived to its
- original method.
-
- <meth> is the name of an archiver defined in
- compress.cfg.
-
- <f> is the optional specification of the letter to be
- used for the variable archive extension. If not
- specified, it is assumed equal to the first letter of
- the defaults extension for this archiver.
-
- Multiple ArcDiffMethod statements are allowed.
-
-
- Example:
-
- ArcDiffMethod ZIP LH,H
-
- NodeDiff.Z48 arrives: it is archived to NodeDiff.H48
- also, using the LH archiver.
-
-
-
-
- EXTERNAL COMMANDS
-
-
- The following verbs allow to invoke external commands.
-
- <command> can be any legal command-line command: it can be the
- name of an executable file, a batch file or any command that can
- be understood by your command-line interpreter (OS/2's CMD,
- 4OS2, etc.).
-
- If <command> does not directly invoke an executable file,
- FastLst automatically invokes your default command line
- interpreter (as specified by the COMSPEC environment variable).
-
-
- Archive Related Commands
-
-
- The following verbs share the same syntax:
-
- Two parameters are allowed in <command>:
-
- %a is translated to the full pathname of the archive file.
-
- %f is translated to the name of the file to be added or
- extracted (no path).
-
- <command> is run from the path where %f belongs.
-
-
-
- BeforeArcList <command>
-
- Command to be run before archiving a nodelist.
-
-
- AfterArcList <command>
-
- Command to be run after archiving a nodelist.
-
-
- BeforeUnArcList <command>
-
- Command to be run before extracting a nodelist.
-
-
- AfterUnArcList <command>
-
- Command to be run after extracting a nodelist.
-
-
- BeforeArcDiff <command>
-
- Command to be run before archiving a nodediff.
-
-
- AfterArcDiff <command>
-
- Command to be run after archiving a nodediff.
-
-
- BeforeUnArcDiff <command>
-
- Command to be run before extracting a nodediff.
-
-
- AfterUnArcDiff <command>
-
- Command to be run after extracting a nodediff.
-
-
- Example
-
- To hatch the new nodelist (note that you probably need to
- specify the location of the config file since the command is
- executed from the directory where %f resides):
-
- AfterArcList Hatch %a NODELIST "New NodeList"
-
-
-
- NodeDiff Related Commands
-
-
- The following verbs accept different parameters:
-
- %l is translated to the full pathname of the nodelist.
-
- %d is translated to the full pathname of the nodediff.
-
- <command> is run from the current directory.
-
-
-
- BeforeEdit <command>
-
- Command to be run before applying a nodediff.
-
-
- AfterEdit <command>
-
- Command to be run after applying a nodediff.
- Only %l can be used.
-
-
-
- G L O B A L
-
- Section C
-
-
-
- The statements in this section affect the processing of all
- the output blocks and thereby of all the input nodelists.
-
- These statements can also be used in the "OUTPUT" section of an
- OUTPUT block (except for the "NoCompile" one) or inside an INPUT
- block, in which case they affect the compilation of the relevant
- block only.
-
- In the case you use a verb that has already been used in a
- "higher level" block, it will behave as a local override.
-
-
-
- MsgRem [<string>]
-
- If MsgRemArea is used, FastLst reports the following
- comments:
-
- No MsgRem statement: none;
-
- MsgRem with no <string>: all;
-
- MsgRem with <string>: only the comments that begin with
- ";<l> " where <l> is one of the characters in <string>.
-
- The ";" character in <string> means that the comments
- beginning with "; " or ";<word>" can be reported.
-
- Common types of comment lines:
-
- ;S This is a comment for SysOps
- ;U This is a comment for users
- ;F This comment should appear in formatted Fido lists
- ;A This is a comment of general interest
- ;E This comment is an error message
-
- Example:
-
- "MsgRem SE"
-
- Only comments destined to SysOps and Error messages are
- reported (lines beginning with ";S " and ";E ").
-
-
-
- MsgLog [NullPhone] [Redirected] [Points]
-
- Some common situations (not really errors) are not
- reported to MsgLogArea by default: if you want FastLst
- to report them anyway, you can use this statement, but
- be aware that very long reports could come out.
-
- "NullPhone": systems with empty phone string are logged.
-
- "Redirected": systems redirected to their coordinators
- are logged (Hold, unpublished).
-
- "Points": points with empty phone string are logged; be
- aware that most pointlists contain unpublished (thereby
- with empty phone) points.
-
- Examples:
-
- MsgLog Redirected
- MsgLog Redirected NullPhone
-
-
-
- GermanPointList
-
- Instructs FastLst to consider the affected nodelist as a
- 3D German style pointlist. Zone 2 is assumed, if not
- explicitly specified in the "NodeList" statement.
-
- This verb is usually used inside an Input Block, so that
- it affects that nodelist only.
-
- WARNING: Be aware that using this statement in the
- global section or in an Output block affects all the
- involved nodelists !
-
- Example Input Block:
-
- NodeList Points24.???
- GermanPointList
- Nodediff Pr24Diff.???
- ArcList Points24.??? 1
- ArcDiff Pr24Diff.??? 5
- ArcListDesc R24 PointList for day %d (%D), %a format
- ArcDiffDesc R24 PointDiff for day %d (%D), %a format
-
-
-
- BeforeCompile <command>
-
- Command to be run before compiling the affected nodelist.
-
- This statement follows the same rules explained in
- "External Commands" in section B.
-
- The %l parameter is translated to the full pathname of
- the nodelist.
-
- <command> is run from the current directory.
-
-
-
- AfterCompile <command>
-
- Command to be run after compiling the affected nodelist.
-
- This statement follows the same rules explained in
- "External Commands" in section B.
-
- The %l parameter is translated to the full pathname of
- the nodelist.
-
- <command> is run from the current directory.
-
-
-
- SysOpLst
-
- Output SysOp data from all the input nodelists to the
- output list (FidoUser.Lst) and/or index (Sysop.ndx).
-
- Example:
-
- SysOpLst
-
-
-
- FidoTxt [<FidoTxt>]
-
- Generate an 80 Column Text List of nodes.
- Nodes included via the "Node,..." method and points are
- excluded.
-
- <FidoTxt> optionally specifies an output file name,
- which defaults to "NodeList.Txt". If the same file name
- has already been used for other nodelists, the output is
- appended.
-
- Example:
-
- FidoTxt
-
-
-
- FidoPrn [<FidoPrn>]
-
- Generate a 132 Column Text List of nodes.
- Nodes included via the "Node,..." method and points are
- excluded.
-
- <FidoPrn> optionally specifies an output file name,
- which defaults to "NodeList.Prn". If the same file name
- has already been used for other nodelists, the output is
- appended.
-
- Example:
-
- FidoPrn
-
-
-
- IncCoord <CoordLev>
-
- The coordinators of the specified and upper levels will
- be always included, even if excluded by "IncAddr" and
- "ExcAddr". <CoordLev> can be ZC, RC, NC, HC.
-
- Example:
-
- IncCoord NC
-
-
-
- Global Export Section
-
-
- You can use here the statements described in the "Export Global
- Section" of the "Export Block" (see "Input Block" inside "Output
- Block").
-
-
-
-
- O U T P U T B L O C K
-
-
-
- The following verbs define the compilation of a single output
- binary nodelist.
-
- The block begins with a "Output Section", that affects the
- compilation of all the source (input) nodelists, followed by a
- sequence of "Input Blocks" that define how to handle each of the
- source nodelists.
-
- The first "output block" can be of a special kind: if the
- "NoCompile" statement is used instead of "Version7", this block
- indicates the actions necessary to maintain the specified
- nodelists, but they are not compiled.
-
-
-
- Version7 <Path> <Nodex> [<SysopNdx>]
-
- Start of a block of config verbs defining the generation
- of a Version 7 nodelist. You can generate one or more
- Version 7 nodelists with different names and path for
- the output files. Each "Version7" statement marks the
- beginning of a new output-nodelist definition.
-
- <Path> is the path where the output binary data and
- index files are placed.
-
- <Nodex> is the file name (no extension) for the data
- (.DAT) and address-index (.NDX) files.
-
- <SysopNdx> is the file name for the sysop-index.
- When no extension is given, .NDX is assumed if
- <SysopNdx> is different from <Nodex>, otherwise the .SDX
- extension is used.
-
- If you omit <SysopNdx>, no V7 SysOp-index will be
- generated.
-
- The usual names for V7 files are <Nodex>="NODEX" and
- <SysopNdx>="SYSOP".
-
- All the following verbs, up to the next "Version7" (if
- any), are related to the preceding "Version7" output
- files.
-
- Examples:
- ; SysOp Index name
- Version7 d:\bbs\v7\ NODEX SYSOP ; SYSOP.NDX
- Version7 d:\bbs\v7\ NODEX NODEX ; NODEX.SDX
-
-
-
- NoCompile
-
- This verb can be used to start the first "Output Block",
- instead of "Version7".
-
- This way the first output block becomes a "NoCompile"
- block and the indicated nodelists are maintained but not
- compiled.
-
- This is a means for maintaining a NodeList (applying
- nodediffs, archiving with different archivers etc.)
- without compiling it.
-
- The statements related to nodelist compilation (see
- Global section C) are obviously illegal in a "NoCompile"
- block.
-
-
-
-
- O U T P U T Section
-
-
- The following verbs affect the compilation of the current output
- block and must precede the definitions of the input blocks
- (which start with the Nodelist statement).
-
-
- FidoUserLst [<FidoUserLst>]
-
- Generate "fidouser.lst style" text SysOp list.
- <FidoUserLst> optionally specifies an output file name,
- which defaults to "FidoUser.Lst". Different output
- blocks require different names.
-
- Example:
-
- FidoUserLst
-
-
-
- SysDup <AddrLst>
-
- When a SysOp name is present in various nodes, all the
- name/address couples are kept in the SysOp lists
- (fidouser.lst/sysop.ndx). If you want to keep only one
- address you can use one or more SysDup lines: the SysOps
- who have the addresses listed in <AddrLst> will be
- present in the output sysop lists with the specified
- address only. You can use abbreviated addresses, if you
- like, provided that the first address of every "SysDup"
- is complete (FastLst cannot make any assumption for the
- first item in a list).
-
- Example:
-
- SysDup 2:332/504 505 336/980 3:25/28.27
-
-
-
- Block Specifications
-
-
- You can use here the same statements described in the "Global
- Section B" and (if this is not a "NoCompile" block) "Global
- Section C" and "Export Global Section" (see the Export Block
- below).
-
-
-
- ADDRESS SPECIFIC STUFF
-
-
-
- The following verbs define address specific stuff that will
- affect the compilation of all the source nodelists compiled in
- the current output block. These statements are illegal in a
- "NoCompile" block.
-
- If you prefer, you can specify this type of information in the
- "Address Specific Stuff" section of the pertinent input block.
-
- WARNING: make sure all addresses have full info (incl. zone).
-
-
-
- Password <Addr> <Password>
-
- Allows to specify <Password> one <Addr> at a time.
-
- Version 7 has no limit on password length, however the
- programs that use it are usually limited to 8 chars.
- Some (rare) programs have problems with 8 chars and need
- a maximum of 7 or 6 chars.
-
- Example:
-
- Password 2:332/504.4 Password
-
-
-
- PasswordFile <PasswordFile>
-
- Allows to include a password file that contains many
- address/password couples, one per line.
-
- In this file you can omit the "Password" keyword.
-
- If you like, you can use some "Password" keywords
- together with one "PasswordFile", however you cannot use
- more than one "PasswordFile".
-
- Please note that the definitions found in this file have
- effect on the current (Output or Input) block ONLY.
-
- FastLst writes to the log file which source or output
- nodelist is affected by each passwordfile; so, in case
- of doubts, just check the logs.
-
- Example:
-
- PasswordFile fidonet.pwd
-
-
-
- Phone <Addr> [#]<Phone> [<NodeFlags> [<Cost> [<UCost>]]]
-
- Allows to override a nodelist phone number and
- optionally the corresponding "NodeFlags" and costs.
-
-
- If '#' is prefixed, <Phone> is taken verbatim (dial
- translation not performed, costs default to the values
- specified with the "CostVerbatimPhone" statement).
-
- If '#' is NOT used, <Phone> MUST be in the form used in
- the source nodelist.
-
- The verbatim form may be handy for specifying internet
- addresses and script names.
-
- In the case you want to specify an empty phone, use the
- '#' alone.
-
- <NodeFlags> has the same meaning as in the NodeFlags
- statement. To specify an overriding empty <NodeFlags>,
- use a single comma.
-
- <Cost> and <UCost> have the same meaning as in the Cost
- statement.
-
-
- Examples:
-
- <Phone> override only:
- Phone 2:332/501.1 39-59-399999 ; Normal override
- Phone 2:332/501.0 #499999 ; Verbatim override
- Phone 3:456/789 # ; Empty phone
- Phone 1:106/2000 #juge*com ; internet address
- Phone 1:123/4567 #123*456*789*012 ; IP address
- Phone 2:245/6789 #"Bob.scr" ; quoted script name
-
- <Phone> and <NodeFlags> overrides:
-
- Phone 2:332/501.0 #499999 V34,CM ; Flags override
- Phone 2:332/501.1 39-59-399999 , ; No-flags override
-
- <Phone>, <NodeFlags> and <Cost>/<UCost> overrides:
-
- Phone 2:332/501 #499999 V34,CM 10 0 ; Different Costs
- Phone 2:332/502 #mega.com VMP 0 ; <Cost> == <UCost>
-
-
-
- NodeFlags <Addr> <NodeFlags>
-
- Allows to substitute the flags listed in the nodelist
- entry of <Addr>.
-
- If you want to change the CM flag or modem type flags
- (HST, V32b, ZYX) etc, you can use this verb. Please note
- that the old flags are lost, so you need to indicate all
- the necessary flags.
-
- Please note that <NodeFlags> might be empty.
-
- Example:
-
- NodeFlags 2:332/501.0 CM,H16,V32b
-
-
-
- Flags <Addr> <Flags>
-
- The Flags statement allows to set the "user defined"
- bits in the Flags word of the compiled nodelist entry.
- These bits are named 5,6,7,8,9,A,B,D,E,F where bit 5 is
- the 6th bit and F is the 16th bit of the word.
-
- These bits are "ORed" with those already set by the
- "FlagDef" table.
-
- If you need to zero some of the bits, please specify the
- source flags with the "NodeFlags" statement.
-
- Example:
-
- Flags 2:332/501.0 AB5 ; Set bits 5,A & B.
-
-
-
- Cost <Addr> <Cost> [<UCost>]
-
- <Cost> and <UCost> are in the range 0->65535.
- Overrides the Cost and User_Cost fields of <Addr> in the
- compiled nodelist. If no <UCost> is given, it's taken
- equal to <Cost>.
-
- Example:
-
- Cost 2:332/501.0 150
-
-
-
- SEGMENT SELECTION
-
-
- The following verbs allow to include or exclude selected
- <NodeList> segments. If you do not use them, the full <NodeList>
- is compiled. Be aware that the process of checking each address
- against the list of segments to be included or excluded might
- slow down the compilation, even if some gain could come from the
- exclusion of large segments.
-
- These statements are obviously illegal in a "NoCompile" block.
-
- These statements can be used in an Input block to affect that
- nodelist only.
-
-
-
- IncAddr <PartAddrLst>
-
- If you want to selectively include nodelist segments,
- you can use this option: only zones, regions, nets,
- hubs, nodes, points that are listed in <PartAddrLst>
- will be present in the output files. You can specify
- zone, region/net, hub/node and point numbers.
-
- Example:
-
- IncAddr 1 2:33 2:200/100 3:632 4:801/17
-
- Compiles: zone 1, region 33 of zone 2, hub 100 of net
- 200 of zone 2, net 632 of zone 3, node 4:801/17
-
-
-
- ExcAddr <PartAddrLst>
-
- If you want to exclude some segments from the
- compilation, you can list them in <PartAddrLst>, in the
- same way as for "IncAddr". You can use either "IncAddr"
- or "ExcAddr" or both of them to Include only selected
- segments and exclude sub-segments.
-
- Example:
-
- ExcAddr 2:332/500
-
- Excludes Hub 500 of net 332 of zone 2.
-
-
-
- IncSysOp <PartAddrLst>
-
- If not used, all the SysOp entries of the compiled
- segments will be in the output SysOp list/index (if
- SysOpLst is active). If you want to limit the SysOp
- entries to selected segments, you can use this verb,
- listing partial addresses in <PartAddrLst>. SysOps from
- segments excluded from compilation via "IncAddr" and
- "ExcAddr" will obviously never be present in the SysOp
- list/index anyway.
-
- Example:
-
- IncSysOp 2
-
- Includes only SysOps from zone 2.
-
-
-
- I N P U T B L O C K
-
-
- The Input Block starts with a "NodeList" statement and continues
- until the start of the next Input or Output Block (NodeList or
- Version7 statement respectively) or the end of the configuration
- file.
-
-
-
- NodeList <NodeList> [<PartAddr>]
-
- Start of a block of config verbs defining the processing
- of the specified <NodeList> file. You can use many
- "NodeList" statements to compile several different
- source nodelists into the same output files specified by
- the preceding "Version7" statement. Each "NodeList" verb
- marks the beginning of a new input-nodelist
- processing-info block.
-
- When an address is present in more than one <NodeList>
- (e.g. you compile both the full nodelist and the faster
- updated local region or zone segment) only the entry
- found in the last compiled <NodeList> is put in the
- indexes. To have the most up-to-date entries in your V7
- indexes, please include local segments after the larger
- list.
-
- <NodeList> is the name of the input nodelist.
- If you don't specify a path, <InputPath> is assumed.
-
- If a terminal ".???" is specified, all the files with 3
- digits in the place of '???' are examined and that with
- the latest 3 digit day of the year is chosen for
- compilation.
-
- The optional <PartAddr> is a partial address that must
- be specified for nodelist segments that do not have full
- address info. For example, a REGION segment usually
- starts with the "Region," keyword and does not contain
- any Zone info: its up to you to tell FastLst which zone
- we are talking about. Analogously you should provide
- zone and net info when compiling a Hub segment. The
- region is assumed equal to the net number of the partial
- address, the hub equal to the node number.
-
- Examples:
-
- IMPORTANT: Please note that the following lines
- represent a list of examples, NOT an example of
- multiple nodelist compilation.
- After each "NodeList" verb, you must specify all the
- statements that affect the compilation of that
- particular source file.
-
-
- NodeList nodelist.??? ; Fidonet nodelist
-
- NodeList region.033 2 ; Region 33 list, zone 2
-
- NodeList region24.??? 2 ; Region 24 list, zone 2
-
- NodeList net.332 2:33 ; Net list, zone 2, region 33
-
- NodeList hub.500 2:332 ; Hub list, zone 2, net 332
-
- NodeList locnode.500 2:332/500 ; Some nodes in zone 2,
- ; net 332, hub 500
-
- NodeList points.504 2:332/504 ; Points of 2:332/504
- ; in "Point," format.
-
- NodeList morenode.lst ; Some nodes in the "Node,"
- ; format. No <PartAddr> required
- ; since the "Node," line gives
- ; full address info.
-
- NodeList ptlist.??? ; Point List in the "Boss,"
- ; format. No <PartAddr> required
- ; since the "Boss," line gives
- ; full address info.
-
-
-
- Input Section
-
-
- The following statements affect the handling of the nodelist
- specified by the last "NodeList" statement (current Input
- Block).
-
-
-
- NodeDiff <NodeDiff>
-
- <NodeDiff> is the name of the nodediff file.
- If you don't specify a path, <InputPath> is assumed.
-
- <NodeDiff> must terminate with ".???". FastLst will
- search for a suitable <NodeDiff>, considering the files
- that have a 3 digit day of the year in the place of the
- trailing '???'.
-
- Example:
-
- NodeDiff NODEDIFF.???
-
-
-
- ArcList <ArcList> [<Keep#>]
-
- You can specify the name of the archive containing
- <NodeList>. It is necessary if you use automatic
- extraction/rearchiving, but it can even be used only to
- delete old files.
-
- <ArcList> is used to extract new nodelists, to compress
- them using the methods defined in "ArcMethod", to
- compress the new nodelists after the application of
- nodediffs.
-
- If <ArcList> has a terminating ".???", all the files
- that have a suitable fixed (.zip, .lzh etc.) or variable
- (.z10, .z17, .l10, .l17 etc.) extension are considered,
- taking the digits as the last 2 digits of the day of the
- year.
-
- If you really want to limit search to a specified fixed
- or variable extension, you can do:
- "ArcList nodelist.zip", to consider .zip only;
- "ArcList nodelist.z??", to consider .z?? only.
-
- <Keep#> optionally specifies the number of archives to
- be kept, basing on the day of the year (the modification
- file date is also used to infer the correct
- chronological order).
-
- If you maintain archives with multiple different
- extensions (.z??, .l??, etc.) the actual number of files
- increases, since multiple files with the same day
- extension count for one.
-
- The description associated to the deleted files is
- removed from FILES.BBS.
-
- Example:
-
- ArcList nodelist.??? 1
-
-
-
- ArcDiff <ArcDiff> [<Keep#>]
-
- You can specify the name of the archive containing
- <NodeDiff>. It is necessary if you use automatic
- extraction/rearchiving, but it can even be used only to
- delete old files.
-
- <ArcDiff> must terminate with ".???".
-
- All the files that have 2 digits in the place of the
- last 2 '?' are examined, taking the digits as the last 2
- digits of the day of the year.
-
- If you really want to limit search to a specified
- extension, you can do:
- "ArcDiff nodediff.z??", to consider .z?? only.
-
- <Keep#> optionally specifies the number of archives to
- be kept, basing on the day of the year (the modification
- file date is also used to infer the correct
- chronological order). In the case of multiple archive
- extensions, the actual number increases consequently.
-
- The description associated to the deleted files is
- removed from FILES.BBS.
-
- Example:
-
- ArcDiff nodediff.??? 5
-
-
-
- ArcListDesc <Desc>
- ArcDiffDesc <Desc>
-
- You can specify a description to be added to FILES.BBS
- for the new nodelist and nodediff files created by
- FastLst.
-
- Some parameters are available:
-
- %d : the 3 digit day number (0 padded)
- %a : the archiver name
- %D : the date, USA format (Feb 10, 1995)
- %L : the date, Local format
-
- Example:
-
- ArcListDesc Fido Nodelist for day %d (%D), %a format
- ArcDiffDesc Fido Nodediff for day %d (%D), %a format
-
-
-
- Local Specifications
-
-
- You can use here the same statements described in the "Global
- Section B" and (if we are not in a "NoCompile" block) "Global
- Section C" and "Export Global Section" (see the Export Block
- below).
-
-
-
- ADDRESS SPECIFIC STUFF
-
-
- You can specify here the address specific stuff that is related
- to the current source nodelist (if not inside a "NoCompile"
- block).
-
- If you have already used the "Output section" for specifying
- this kind of information, you can skip this section.
-
- WARNING:
-
- Often you will compile segments of a previously compiled
- nodelist. For example you could have a "NodeList nodelist.???"
- block for the world nodelist and then a "NodeList region.033"
- block for your region's nodelist segment.
-
- The majority of entries in the latter will be duplicates of
- entries already found in the former. However, in the case of
- duplicates, only the entries found in the last involved
- "NodeList" block will go to the indexes and be active. This way
- you can compile the full world nodelist while keeping your
- segment up-to-date with local segments that get updated faster
- than the full nodelist.
-
- When you have to specify "Address Specific Stuff" for nodes that
- are present in more than one "NodeList", you must do that in the
- last involved "NodeList" block (or in the Output Section, of
- course), otherwise your indications will have no effect.
-
- For a list of allowed statements, please see the "Address
- Specific Stuff" section of the "Output" section above.
-
-
-
- SEGMENT SELECTION
-
-
- You can use here the same statements described in "Segment
- Selection" in the Output Section (if not inside a "NoCompile"
- block).
-
-
-
- EXPORT Block
-
-
- FastLst can "export" segments of nodelist: e.g. you can export
- the Region 25 from the world nodelist to a file called
- Region25.???, where ??? stands for the day of the year. Note
- that this feature is for exporting segments of nodelist to a
- dedicated file. To compile segments you should continue using
- the "Segment Selection" section of FastLst.Cfg.
-
- These blocks MUST be at the _END_ of an "Input Block"; there can
- be multiple Export Blocks in a single Input Block.
-
- Obviously the Export Block is available for compiled nodelists
- only, thus it is illegal inside a "NoCompile" block.
-
- The export is done ONLY when a new NodeList is found (or when
- the file to be exported exists neither in uncompressed nor in
- archived form), even if the config file is changed. So, you can
- safely hatch the created arcfile via the AfterArcExport command
- with no danger of hatching it all the times you change something
- in the cfg. Under these conditions, if you really want to export
- anyway, you must use the -i command line switch.
-
- IMPORTANT: If you use the same export filename for multiple
- source nodelists, all the exported segments are appended one
- another. This way, if you like, you can make FastLst generate a
- "plain" nodelist file with many different source nodelists in
- it, just appended one after another. Some people need this
- feature to create input for some other program. For this feature
- to work, you need to specify the '+' parameter in the "Export"
- statement. See "Export Example" below.
-
-
-
- Export [+] <file> [<PartAddrLst>]
-
- The '+' sign must be specified when you want to create a
- joined list by exporting multiple nodelists to the same
- export <file>. This way the exported file will be
- created every time the nodelist is compiled and its
- timestamp will not be changed to be equal to the source.
-
- <file> is the name of the file to which you want to
- export the selected segment(s).
-
- <PartAddrLst> is the partial address list of segments to
- be exported. Usually it is a single partial address.
- If omitted, the entire nodelist is exported (useful to
- create a joined nodelist).
-
- This statement marks the start of an "Export Block".
- Multiple "Export Blocks" are allowed in the same "Input
- Block".
-
- N.B. The Export blocks must be at the _END_ of an input
- block. See "Export Example" below.
-
- Example:
-
- Export region25.??? 2:25
-
-
-
-
- Export Section
-
-
- The following verbs define the parameters for the Export
- specified by the last "Export" statement.
-
-
-
- ArcExport <arcfile> [Keep#]
-
- <arcfile> is the name of the archive file to which you
- want to compress the exported <file>.
-
- [Keep#] is the optional number of archive versions to be
- kept, basing on the day of the year (the modification
- file date is also used to infer the correct
- chronological order).
-
- Example:
-
- ArcExport region25.??? 2
-
-
-
- ArcExportDesc <description>
-
- <description> is the description to be applied to
- FILES.BBS when a new archive is created.
-
- Example:
-
- ArcExportDesc Region 25 %D, %a format
-
-
-
-
- Export Global Section
-
-
- The following verbs can be used in the "Export Section" of an
- "Export Block", in the "Input Section" of an "Input Block", in
- the "Output Section" of an "Output Block", in the "Global
- Section".
-
- In few words, they are legal everywhere except for the
- "NoCompile" block.
-
- Depending on their positions, they affect the involved nodelists
- only.
-
-
-
- ArcExportMethod <meth>[,<f>] ...
-
- Specifies the archive type(s) to be created for the
- exported file.
-
- <meth> is the archiver name as defined in Compress.Cfg.
-
- <f> is the optional first letter to be used for variable
- archive extensions.
-
- Example:
-
- ArcExportMethod zip lh,H
-
-
-
- BeforeArcExport <command>
- AfterArcExport <command>
-
- Commands to be run before/after archiving the exported
- file.
-
- <command> can be any type of command (executable file,
- batch file, internal command, alias, etc.) and supports
- the %a (full archive name) and %f (name of the file to
- be compressed, no path) and is run from the directory
- where %f resides.
-
- WARNING: since <command> is executed from the directory
- where the file to be compressed belongs, you might need
- to specify the location of the config files used by the
- programs invoked via <command>.
-
- Example:
-
- AfterArcExport Hatch %a
-
-
-
- ExportNeededBeforeKill
-
- Specifies that the exported file is needed by the
- "BeforeKillSource" command.
-
-
- Export Example:
-
- NodeList nodelist.???
- NodeDiff nodediff.???
- ArcList nodelist.??? 2
- ArcDiff nodediff.??? 5
- ArcListDesc Fido Nodelist for day %d (%D), %a format
- ArcDiffDesc Fido Nodediff for day %d,(%D), %a format
- Export region25.??? 2:25
- ArcExport region25.??? 1
- ArcExportDesc Region 25 %D, %a format
- ArcExportMethod zip lh
- AfterArcExport Hatch %a
- Export region24.??? 2:24
- ArcExport region24.??? 1
- ArcExportDesc Region 24 %D, %a format
- ArcExportMethod zip
-
-
- Export Example to generate a joined list:
-
- NodeList nodelist.???
- NodeDiff nodediff.???
- ArcList nodelist.??? 2
- ArcDiff nodediff.??? 5
- ArcListDesc Fido Nodelist for day %d (%D), %a format
- ArcDiffDesc Fido Nodediff for day %d,(%D), %a format
- Export + megalist.Lst
-
- NodeList zonelist.???
- NodeDiff zonediff.???
- ArcList zonelist.??? 2
- ArcDiff zonediff.??? 5
- ArcListDesc Zonelist for day %d (%D), %a format
- ArcDiffDesc Zonediff for day %d,(%D), %a format
- Export + megalist.Lst
- ArcExport megalist.??? 1
- ArcExportDesc MegaList, %a format
- ArcExportMethod zip lh
-
-
-
-
- COMPRESS DEFINITION FILE
-
-
- The file specified in the CompressCfg statement is a sequence of
- Archive definition blocks, each one starting with "Archiver" and
- ending with "End Archiver". You can find an example in the
- Compress.Cfg file included in the distribution pack.
-
- The order of the archive definition blocks within this file may
- be important: when trying to unpack a compressed file, the list
- of archivers is scanned in a reverse order.
-
- In the case of two archivers that use the same identification
- string (e.g. ARC and PAK), you must specify the archiver that
- can unpack both (PAK) after the other one (ARC).
-
- The compress.cfg file can be shared between DOS/NT and OS/2
- applications: the "DOS" and "OS2" keywords are available to
- distinguish between the commands to be used under DOS/NT and
- OS/2.
-
- O.S. specific archivers or commands must be prefixed with the
- relevant keyword.
-
- IMPORTANT NOTE: The lines that begin with "DOS" or "OS2" are
- parsed by the DOS/NT and OS/2 versions respectively. If you need
- the OS/2 version to execute a DOS command, you MUST NOT use the
- DOS keyword: if you do, it will never parse that line; if you do
- not, it will execute the DOS command "normally", provided you
- have installed OS/2's Dos support.
-
- See the examples below.
-
-
- Archiver <ARCname>
-
- Starts the Archive definition block.
-
- <ARCname> is the name used to identify this archiver.
-
- Example:
-
- Archiver ZIP
-
-
-
- Extension <ext>
-
- Specifies the default extension for the compressed
- files.
-
- Example:
-
- Extension ZIP
-
-
-
- Ident <ofs>,<ID>
-
- <ofs> is a decimal integer number representing the
- offset at which an archive identity marker <ID> must be
- present.
-
- Negative values can be used to indicate offsets from the
- END of a compressed file. -1 means "the last byte", -2
- "the second last byte" and so on.
-
- <ID> is a series of hexadecimal figures which represent
- the bytes of the marker string that must be present at
- the specified offset of the archive file.
-
- Example:
-
- Ident 0,504b0304 ; "PK^c^d"
-
-
-
- Add <command>
-
- Specifies the command to add files to an archive.
- %a and %f are translated to the name of the archive and
- file to add.
-
- Example:
-
- Add zip -jk %a %f
-
-
-
- Extract <command>
-
- Specifies the command to extract files from an archive.
- %a and %f are translated to the name of the archive and
- file to extract.
-
- Example:
-
- Extract unzip -qqnjC %a %f
-
-
-
- View <command>
-
- This line is recognized and accepted for compatibility,
- but not used.
-
-
-
- End Archiver
-
- This statement is used to close a Archive definition.
-
-
- Examples
-
-
- Complete example 1 (you need OS/2 only):
-
- Archiver ZIP
- Extension ZIP
- Ident 0,504b0304
- Add zip -jk %a %f
- Extract unzip -qqnjC %a %f
- View unzip -v %a
- End Archiver
-
-
- Complete example 2 (you need DOS only):
-
- Archiver ZIP
- Extension ZIP
- Ident 0,504b0304
- Add pkzip -a %a %f
- Extract pkunzip -n %a %f
- View pkzip -v %a
- End Archiver
-
-
- Complete example 3 (you need both OS/2 and DOS):
-
- Archiver ZIP
- Extension ZIP
- Ident 0,504b0304
- OS2 Add zip -jk %a %f
- DOS Add pkzip -a %a %f
- OS2 Extract unzip -qqnjC %a %f
- DOS Extract pkunzip -n %a %f
- OS2 View unzip -v %a
- DOS View pkzip -v %a
- End Archiver
-
-
- Complete example 4 (archiver to be used under DOS only):
-
- DOS Archiver ZOO
- DOS Extension ZOO
- DOS Ident 0,5a4f4f ; "ZOO"
- DOS Add zoo a: %a %f
- DOS Extract zoo e:O %a %f
- DOS View zoo v %a
- DOS End Archiver
-
-
- Complete example 5 (it's a DOS executable, to be used under
- DOS or OS/2 indifferently):
-
- Archiver ZOO
- Extension ZOO
- Ident 0,5a4f4f ; "ZOO"
- Add zoo a: %a %f
- Extract zoo e:O %a %f
- View zoo v %a
- End Archiver
-
-
-
- T R O U B L E S H O O T I N G
-
-
- Extraction problem
-
- Problem:
- FastLst does not extract the correct
- nodelist/nodediff.
-
- Solution:
- Perhaps there is some nodelist/nodediff with corrupted
- file date. Check your "ArcPath", manually extract to
- the "InputPath" the required nodelist/nodediff and
- delete the archive (or reset its file-date so that it
- is similar to that of the enclosed file). FastLst will
- automatically rearchive the nodelist/nodediff if you
- use "ArcMethod"/"ArcDiffMethod", otherwise you can
- rearchive manually.
-
-
- Out of Memory
-
- Problem:
- FastLst runs out of memory (Dos versions).
-
- Solution:
- DOS 16: - try freeing as much conventional memory as
- possible.
- - reduce the "MsgSize" buffer, if you have
- used that statement in the configuration.
- - be aware that 530K of free conventional
- memory is the minimum requirement.
- - If you have a 386sx or better, you can use
- the 32 bit version that has less stringent
- conventional memory requirements, but you
- will need at least 800KB of extended memory.
-
- DOS 32: - give more DPMI memory to FastLst
- - enable the temporary file method: use the -t
- command line switch or the "FileMode"
- statement in the configuration file.
-
-
- Problems with Empty Phone entries
-
- Problem:
- Some program behaves oddly while accessing entries
- that contain an empty phone number.
-
- Solution:
- The problem might be caused by the cost that is
- assigned to empty-phone nodes (65535 by default).
- Try using the "CostNullPhone" global statement to give
- lower costs.
-
- Example:
-
- CostNullPhone 900 0
-
-
- Empty SysOp List
-
- Problem:
- The SysOp List is empty, even if I have specified its
- name in the configuration.
-
- Solution:
- You must use the SysOpLst statement to specify which
- nodelists must be considered for output to the SysOp
- list.
-
-
- Slow processing
-
- Problem:
- FastLst works very slowly (OS/2 version).
-
- Solution:
- Perhaps you are compiling a large nodelist or set of
- nodelists on a system with few MegaBytes of free
- physical RAM, so that OS/2 needs to extensively use
- virtual memory. Try using the "temporary file" method:
- specify the -t command line switch or use the
- "FileMode" statement in the configuration file.
-
-
- System performance degradation
-
- Problem:
- FastLst loads the system excessively, so that other
- OS/2 tasks don't perform properly (OS/2 version).
-
- Solution:
- Use the "Priority Idle" statement in the configuration
- file, so that FastLst receives its time slices only
- when other processes with higher priority are idle.
-
-
- I want maximum speed
-
- Problem:
- I run FastLst while the communications are off, so I
- would like it to run as fast as possible even if it is
- in the background and other tasks are active (OS/2
- version).
-
- Solution:
- Use the "Priority High 31" statement in the
- configuration file, so that FastLst receives the
- maximum priority for "non time-critical" processes.
-
-
- Archived Diffs are not applied
-
- Problem:
- FastLst does not apply the archived Diffs.
-
- Solution:
- Remember that "InputPath <path>" is the default path
- for lists and diffs, while "ArcPath <path>" is the one
- for archives.
-
- Please compare your Compress.cfg with the example one,
- check the paths and try the commands manually.
-
- Check the day-extensions and time-stamps of the
- relevant files.
-
-
- Dos/32 DOS4GW exception
-
- Problem:
- The Dos/32 version of FastLst aborts with an exception
- from the Dos extender.
-
- Solution:
- Try using the 16 bit version.
- If this works, try again the 32 bit version, but
- starting with a "clean" config.sys and autoexec.bat
- (the Dos extender might be incompatible with some of
- your loaded drivers or TSRs.
-
-
- Dial Scripts and VMODEM addresses
-
- Problem:
- How can I put script names or internet addresses in
- the place of a phone number ?
-
- Solution:
- You may use the "Phone" statement
- in the "verbatim" form (phone string prefixed with
- '#').
-
- You may find handy to specify flag and cost overrides
- in the same statement.
-
- See the "Phone" statement.
-
- Note: you will usually need to specify a modem type
- for Vmodem calls.
-
- Example:
-
- Let's suppose the following Modem Type table is
- defined:
-
- TypeDef
- ISDNC 1
- V34 2
- VMP 3
- End
-
- You may use a Phone override of this kind:
-
- Phone 2:345/678 #domain.com VMP,CM 10 0
-
- And a ModemTrans (for Binkley's VMODEM line):
-
- ModemTrans 0
- ModemTrans 1
- ModemTrans 2
- ModemTrans 3 ATDT# ; Vmodem
-
-
-
- Region and zone-level Export
-
- Problem:
- How can I export a Region segment together with the
- zone-level entries ?
-
- Solution:
- The zone level entries have the Region/Net field equal
- to the zone number; you can use the Export statement
- in the following way:
-
- export MyR33.??? 1:1 2:2 2:33 3:3 4:4 5:5 6:6
-
-
- Support ?
-
- Problem:
- I cannot find the solution to my problems.
-
- Solution:
- - Try linking the APWORKS support echo
- - Try asking your local supporter
- - Try asking the author directly
- You can find the addresses in the ReadMe.1st file.
-
-
-
- S H A R E W A R E
-
-
- If you like this program and continue using it, you should pay
- the author for his work, as per the ShareWare concept of
- distribution.
-
- Please see LICENSE.DOC and REGISTER.DOC for information.
-
- Thank you for your interest in FastLst.
-
-