FidoNet nodelist
The FidoNet nodelist is distributed weekly to nodes of FidoNet, a network of BBSs in operation since the 1980s, giving information about all the nodes (BBSs) in the network. Its format is defined in FidoNet standards documents.
Contents |
File extension
There was no single file extension for nodelists; rather, the filename format was NODELIST.nnn', where nnn was a three-digit number from 001 to 366 giving the number of the day of the year (starting with January 1) that the nodelist was released. Usually the nodelist was distributed in a compressed form (originally ARC and later ZIP), and in that case the filename replaces the first digit of the extension with "A" for ARC, Z for ZIP, or J, L, or R for ARJ, LZH, or RAR respectively if they are used (though they are not the standard compression methods for nodelist distribution).
Format
The nodelist (once any compression is decompressed) is a plain ASCII text file with lines separated with CR (hex 0D) followed by LF (hex 0A), with the file terminated with Ctrl-Z (hex 1A). No other control characters or characters outside the 7 bit ASCII range are permitted. (Which means that even the current-day remnant of Fidonet which seems to be largely in Russia is saddled with a nodelist format that uses only Latin letters, not Cyrillic.)
Lines are limited to 157 characters (though it's recommended that nodelist processing programs support lines up to 1024 characters, and also tolerate files without the Ctrl-Z at the end).
Lines starting with a semicolon (;) are comments, and the next character(s) (if non-blank) signify which audience the comment is intended for: S for sysops, U for users, F for comments intended to be included in formatted Fido lists, A for general interest, E for error messages. You can include multiple audience target letters (end with a blank).
Other lines are nodelist entries, consisting of these fields (comma-delimited):
1) Node type keyword
2) Node number
3) Node name (also used for domain, IP, or e-mail address for non-dialup-based systems)
4) Location (physical location of system, like city, state/province, and country)
5) Sysop name
6) Phone number (starting with country code, formatted with dashes), or -Unpublished-
7) Modem speed (allows numbers from 300 to 33600 in a doubling sequence, but numbers over 9600 are rarely used because some nodelist processing programs are so ancient they are unaware that faster modems exist and pitch a fit on encountering them; anyway, the flags in the next field specify the particulars of modem capabilities)
8) Flags
Node numbers
The node number given for each node is a single number. To get the fully-qualified FidoNet node number of the system (in the form zone:net/node.point), take the number in field 2 of the entry for the BBS as the 'node' part, and get the 'net' and 'zone' parts by going upward in the file to find the first entry with 'Host' in the type field (1), which defines the 'net', and the first entry with 'Zone' in the type field, which defines the 'zone'. The 'point' part is used only for "point" nodes (not in the nodelist) which get their FidoNet mail and updates from a parent node which is in the list; it is zero or omitted for nodes in the list.
Nodediffs
At the height of the popularity of FidoNet, the size of the nodelist was pretty large for the bandwidth of the time to handle, so normal distribution was in the form of nodediffs, which had commands to insert and delete lines from the previous nodelist, and the text of the added lines. Nodediffs used the filename NODEDIFF.nnn where nnn was the same number as the corresponding nodelist. Compressed versions used A, Z, etc., as the first letter of the extension to note compression method, similarly to the full nodelists. New FidoNet nodes needed to obtain the full nodelist once upon starting, and received and applied nodediffs weekly from then on.
Command lines in a nodediff are:
Ann (nn is replaced with a 2-digit number): Add nn lines (followed by the lines to add)
Cnn Copy the next nn lines unchanged from the previous nodelist
Dnn Delete the next nn lines from the previous nodelist