Dec 262017
Fido Standards Committee #2 (Fidonet Compatiblity Info).
File FSC-0002.ZIP from The Programmer’s Corner in
Category BBS Files
Fido Standards Committee #2 (Fidonet Compatiblity Info).
File Name File Size Zip Size Zip Type
FSC-0002.TXT 15599 5244 deflated

Download File FSC-0002.ZIP Here

Contents of the FSC-0002.TXT file


The Distribution Nodelist

by Ben Baker, 100/76

Copyright (c) 1986, 1987 International FidoNet Association. All
rights reserved. Duplication and or distribution permitted for non-
commercial purposes only.

This document defines the format and content of the nodelist for
the Public FidoNet Network (PFN) as published each Friday.

The PFN is an international network of independently owned elec-
tronic mail systems, most with interlocking electronic bulletin board
systems. The distribution nodelist, or simply "nodelist," is the glue
which holds the network together. It is the PFN's "phone book" and it
defines the top-level network structure.

The nodelist is published as an ASCII text file named
NODELIST.nnn, where nnn is the day-of-year of the Friday publication
date. This file is packed into an archive file (by System Enhancement
Associates' ARC utility) named NODELIST.Ann, where nn are the last two
digits of day-of-year.

A companion file, COORD.nnn, lists the coordinators of the vari-
ous regions and local networks which constitute the PFN. This file
may be created from NODELIST.nnn by the program COORD.EXE, distributed
by many PFN bulletin boards.

As stated above, NODELIST.nnn is an ASCII text file. It contains
two kinds of lines, comment lines and data lines. Each line is termi-
nated with an ASCII carriage return and line feed character sequence,
and contains no trailing white-space (spaces, tabs, etc.). The file is
terminated with an end-of-file character (EOF - decimal character
value - 26).

Comments lines contain a semicolon (;) in the first character po-
sition followed by zero or more alphabetic characters called "interest
flags." A program which processes the nodelist may use comment inter-
est flags to determine the disposition of a comment line. The remain-
der of a comment line (with one exception, treated below) is free-form
ASCII text. There are five interest flags defined as follows:

;S This comment is of particular interest to System Operators.

;U This comment is of particular interest to BBS users.

;F This comment should appear in any formatted "Fido List."

;A This comment is of general interest (shorthand for ;SUF).


;E This comment is an error message inserted by the nodelist gen-
erating program MakeNL.

; This comment may be ignored by a nodelist processor.

The first line of a nodelist is a special comment line containing
identification data for the particular edition of the nodelist. The
following is an example of the first line of a nodelist:

;A FidoNet Nodelist for Friday, July 3, 1987 -- Day number 184 : 15943

This line contains the general interest flag, the day, date and
day-of-year number of publication, and ends with a 5-digit decimal
number with leading zeros, if necessary. This number is the decimal
representation of a check value derived as follows:

Beginning with the first character of the second line, a 16-bit
cyclic redundancy check (CRC) is calculated for the entire file,
including carriage return and line feed characters, but not including
the terminating EOF character. The check polynomial used is the same
one used for many file transfer protocols:

2**16 + 2**12 + 2**5 + 2**0

The CRC may be used to verify that the file has not been edited.
The importance of this will become evident in the discussion of
NODEDIFF, below. CRC calculation techniques are well documented in
the literature, and will not be treated further here.

The content of the remaining comments in the nodelist are in-
tended to be informative. Beyond the use of interest flags for dis-
tribution, a processing program need not have any interest in them.

A nodelist data line contains eight variable length "fields" sep-
arated by commas (,). No space characters are allowed in a data line,
and underscore characters (_) are used in lieu of spaces. The follow-
ing discussion defines the contents of each field in a data line.

Field 1: Key-word

The keyword field may be empty, or may contain one of the

Zone -- begins the definition of a geographic zone and defines
its coordinator. All the data lines following a line with
the Zone keyword down to, but not including the next occur-
rence of a Zone line, are regions, nets and nodes within the
defined zone.

Region -- begins the definition of a geographic region and de-
fines its coordinator. All the data lines following a line
with the Region keyword down to, but not including the next


occurrence of a Region or Host line, are independent nodes
within the defined region.

Host -- begins the definition of a local network and defines its
Host. All the data lines following a line with the Host
keyword down to, but not including the next occurrence of a
Region or Host line, are local nodes, members of the defined
local network. The difference between a region and a local
network is in the routing of messages. A message addressed
to a member of a region is sent direct to the addressee,
while a message to a member of a local network is sent to
the network host.

Hub -- begins the definition of a routing sub-unit within a
multi-level local network. The Hub is the routing focal
point for nodes listed below it until the next occurrence of
a Hub, Region, Host or Zone keyword. The Hub entry MUST be
a redundant entry, with a unique number, for one of the
nodes listed below it. This is necessary because some
nodelist processors eliminate these entries in all but the
local network.

Pvt -- defines a private node with unlisted number. Private
nodes are only allowed as members of local networks.

Hold -- defines a node which is temporarily down. Mail may be
sent to it and is held by its host or coordinator.

Down -- defines a node which is not operational. Mail may NOT be
sent to it.

-- defines a normal node entry.

Field 2 - Net/Node number

This field contains only numeric digits and is a number in the
range of 0 to 32767. If the line had the Zone, Region or Host
keyword, the number is the zone, net or region number, and the
node has an implied node number of 0. Otherwise, the number is
the node number. The region or net number and the node number,
taken together, constitutes a node's FidoNet address.

Zone numbers must be unique. Region or Net numbers must be
unique within their Zone. Other numbers must be unique within
their respective units.

Field 3 - Node name

This field may contain any characters except commas and spaces.
Underscores are used to represent spaces. This is the name by
which the node is known.


Field 4 - Location

This field may contain any characters except commas and spaces.
Underscores are used to represent spaces. This field contains
the location of the node. In the US it is typically "City_ST"
where ST is the standard two-letter abbreviation for the state.

Field 5 - Sysop name

This field may contain any characters except commas and spaces.
Underscores are used to represent spaces. This is the name of
the system operator.

Field 6 - Phone number

This field contains at least three and usually four numeric sub-
fields separated by dashes (-). The fields are country code (1
for USA and Canada), city or area code, exchange code and number.
The various parts of the phone number are frequently used to
derive cost and routing information, as well as what number is to
be dialed. A typical example of the data in a phone number field
is 1-800-555-1212, corresponding to country 1 (USA), area 800
(inward WATS), exchange 555 and number 1212.

Alternatively, this field may contain the notation
"-Unpublished-" in the case of a private node. In this case, the
keyword "Pvt" must appear on the line.

Field 7 - Baud rate

This field contains one of the values: 300, 1200, 2400 or 9600,
and defines the maximum baud rate supported by the node.

Field 8 - Flags

This optional field contains data about the specific operation of
the node, such as special hours, modem protocol supported, etc.
Any text following the sixth comma on a data line is taken col-
lectively to be the flags field. For this reason, it may contain
any characters including spaces and even commas. It has a recom-
mended format, but that format is not now guaranteed. The recom-
mended format is zero or more subfields separated by commas
consisting of a flag code, followed by a colon (:), possibly
followed by a value.

The following codes are used to define operating hours:

Code Meaning

DA: Daily
WK: Week days
WE: Week ends
SU: Sundays SA: Saturday
MO: Mail Only


The following codes define special operating conditions:

Code Meaning

RE: Node exercises some access restrictions.
XP: Node that supports the extended protocol which means
it supports file request and update request.

The following codes define modem protocols supported:

Code Meaning

CT1: 300 baud CCITT (V21)
CT2: 1200/75 split baud rate view data mode (V23)
CT3: 1200 baud full duplex (V22)
CT4: 2400 baud full duplex (V22bis)

NOTE: Many V22 modems also support Bell 212

The following codes define the dedicated mail periods supported
They have the form "#nn" or !nn where nn is the GMT hour the mail
period begins, # indicates Bell 212 compatibility and ! indicates
incompatibility with Bell 212:

#02: European mail hour (02:30 - 03:30 GMT)
#09: North American mail hour (09:00 - 10:00 GMT)
#18: Western Pacific mail hour (18:00 - 19:00 GMT)
#CM: Accepts mail 24 hours per day

When applicable, the mail period flags may be strung
together with no intervening colons, eg. "#02#09:"

The following are examples of nodelist data lines:


With more than a thousand nodes, the nodelist, even in archive
form, is a substantial document (or file). Since distribution is via
electronic file transfer, this file is NOT routinely distributed.
Instead, when a new nodelist is prepared, it is compared with the pre-
vious week's nodelist, and a file containing only the differences is
created and distributed.

The distribution file, called NODEDIFF.nnn, where nnn is the day-
of-year of publication, is actually an editing script which will
transform the previous week's nodelist into the current nodelist. A
definition of its format follows:


The first line of NODEDIFF.nnn is an exact copy of the first line
of LAST WEEK'S nodelist. This is used as a first-level confidence
check to insure that the right file is being edited. The second and
subsequent lines are editing commands and editing data.

There are three editing commands and all have the same format:

is a 1-letter command; A, C or D. is a deci-
mal number greater than zero, and defines the number of lines to be
operated on by the command. Each command appears on a line by itself.
The commands have the following meanings:

Ann - Add the following nn lines to the output file.

Cnn - Copy nn unchanged lines from the input to the output file.

Dnn - Delete (or skip) nn lines from the input file.

The following illustrate how the first few lines of NODEDIFF.213
might look:

;A Friday, July 25, 1986 -- Day number 206 : 27712
;A Friday, August 1, 1986 -- Day number 213 : 05060

This fragment illustrates all three editing commands. The first
line is the first line from NODELIST.206. The next line says "delete
the first two lines from NODELIST.206. These are the identification
line and the line following it. The next command says "add the next
two lines to NODELIST.213. The two data lines are followed by a com-
mand which says "copy five unchanged lines from NODELIST.206 to
NODELIST.213. Notice that the first line added will ALWAYS contain
the new nodelist's CRC.

Since only the differences will be distributed, it is important
to insure the accuracy of the newly created nodelist. This is the
function of the CRC mentioned above. It is sufficient for a program
designed to perform the above edits to pick the CRC value from the
first line added to the output file, then compute the CRC of the rest
of the output file. If the two CRCs do not agree, one of the input
files has been corrupted. If they do agree, the probability is very
high (but not 100%) that the output file is accurate.

For actual distribution, NODEDIFF.nnn is packed into an archive
file named NODEDIFF.Ann, where nn are the last two digits of day-of-


 December 26, 2017  Add comments

Leave a Reply