Back to Table of Contents

## [4.1] - Using UART Serial Cards/Internal Modems (v2 Only)

    If you are using a shared IRQ or non-UART serial card, you should skip this
    section and go to the section on 'Using a Shared IRQ or Non-UART Serial Card'.

    If you are using an internal modem, note that all references to serial boards
    are the same as referring to an internal modem.  Also note that most internal
    modems only have support for up to 4 different IRQ's and I/O addresses.

    Prior to installing your serial board, you should insure that neither the IRQ
    or the I/O address of any of the ports on the board are being used by any other
    devices in your system.  Following is a list of IRQ's and I/O addresses which
    are commonly used by devices (those marked with a minus sign (-) may never be
    used by a serial board):

    		  Device		  IRQ	  I/O Address
    		  ----------------------  ---	  -----------
    		 -Timer 		   0	   040 - 05F
    		 -Keyboard Controller	   1	   060 - 06F
    		 *EGA/VGA Cards 	   2
    		  Serial Port 2 	   3	   2F8 - 2FF
    		  Serial Port 1 	   4	   3F8 - 3FF
    		  Parallel Port 2	   5	   278 - 27F
    		  Floppy Drive		   6	   3F0 - 3F7
    		  Parallel Port 1	   7	   378 - 37F
    		 -Real Time Clock	   8	   070 - 07F
    		 *Same as IRQ 2 	   9
    		 -Co-processor		  13	   0F0 - 0F1
    		  Fixed Disk Controller   14	   1F0 - 1F8

    	*NOTE: IRQ's 2 and 9 may never be used at the SAME time.

    The following are suggested IRQ and I/O address settings for using up to 8
    serial ports:

    		      Device		      IRQ     I/O
    		      ----------------------  ---     ---
    		      Serial Port 1	       4      3F8
    		      Serial Port 2	       3      2F8
    		      Serial Port 3	       5      3E8
    		      Serial Port 4	       2      2E8
    		      Serial Port 5	      10      1F8
    		      Serial Port 6	      11      1E8
    		      Serial Port 7	      12      1A8
    		      Serial Port 8	      15      2A8

    An additional 2 serial ports may be added using the following IRQ and I/O
    addresses:

    		      Device		      IRQ     I/O
    		      ----------------------  ---     ---
    		      Serial Port 9	       7      400
    		      Serial Port 10	      14      408

    Refer to the documentation provided by the manufacturer of your particular
    serial board for information on how to select IRQ and I/O addresses.

    After you have the ports on your serial board set up to fit your system
    requirements, you should write down the IRQ and I/O address information for
    future reference.  Once you have determined the IRQ and I/O address that each
    node on your system will use, you must run the SCFG program and go to the
    Nodes->Node #->Modem Configuration and set the COM Port, UART IRQ Line, and
    UART I/O Address.  Each node, when running on the same machine, should have a
    unique COM Port number.

    Notes on UARTs

    If you are using an external high-speed modem, you may require a buffered
    UART chip on your serial board for error-free transmissions. 8250 and 16450
    UARTs DO NOT have buffers and are usually insufficient for high-speed modems.
    16550AFN UARTs have a 16 byte FIFO UART which allows error-free transmissions
    with high-speed modems, particularly necessary when multi-tasking. Almost
    all internal high-speed modems come with a built-in 16550 UART.

## [4.2] - Using a Shared IRQ or Non-UART Serial Card

    If you are using a serial card which allows the use of shared IRQ's or has a
    non-standard UART interface, you will need to use a device driver to interface
    this card with Synchronet. Usually, such a driver would be included with the
    serial card from the manufacturer. Third party drivers are also available (such
    as COMM-DRV and X00).

    Synchronet supports three driver interfaces, all using Int 14h services. The
    supported driver interfaces are:

    	FOSSIL (Fido/Opus/SEAdog Standard Interface Layer Version 5)
    		Functions 0 through 6, and Fh
    		Example FOSSIL drivers: X00, BNU, and COMM-DRV

    	PC BIOS
    		Functions 0 through 3

    	PS/2 BIOS
    		Functions 1, 2, 4, and 5

    	DigiBoard
    		DigiCHANNEL PC/Xi and PC/Xe DOS driver

    When setting the COM port in SCFG->Nodes->Node #->Modem Configuration, you
    will be prompted for the COM port type:

    If you are NOT using a special shared IRQ or non-UART serial card, then you
    should select "UART" and ignore the rest of this section.

    When selecting a non-UART COM port type, the "Channel" will automatically be
    set to the COM port number minus one. This is the zero-based COM port that will
    be used when communicating with the device driver (i.e. COM port 1 is channel
    0, port 2 is channel 1, etc). You should NOT change the channel number unless
    you have a specific reason for doing so and understand exactly what you are
    doing.

    If you are using an Intelligent DigiBoard and are using the DigiBoard supplied
    device driver, then select "DigiBoard Int 14h".

    If the card you are using has a FOSSIL compatible device driver, this should
    be your preferred selection unless you wish to use baud rates greater than
    38400, in which case a "PS/2 BIOS" compatible driver would be a better choice.
    The COMM-DRV/Universal Serial Communications Driver supports both FOSSIL and
    PS/2 BIOS interfaces.

    You should only select "PC BIOS" in a last case scenario (i.e. Your card's
    device driver does not support any other Int 14h interface). The PC BIOS
    interface does not support DTR, so if you use such a limited driver, you must
    set "Drop DTR to Hang Up" to "No" under "Modem Toggle Options", set the
    "Hang Up String" to "~~~\1\1\1~~~ATH" and change "S2=128" to "S2=1" in your
    "Initialization String".

    Int 14h drivers can also be used to communicate with non-UART serial devices
    such as Packet Assembler/Disassemblers (PADs), Network Redirectors, HAM Radio
    Packet Servers, etc.

## [4.3] - Dumb (NULL) Modem Connection

    If you are connecting a Synchronet node to another computer or terminal through
    a serial port WITHOUT the use of a modem, you must set SCFG->Nodes->Node #
    ->Modem Configuration->Toggle Options->Dumb Modem Connection to "Yes". This
    disables all modem commands (Init, Special Init, Answer, Off-hook, etc.) and
    causes Synchronet to only log a user on when the DCD serial line is raised.

    If your serial connection or terminal does not support the correct use of the
    DCD line, then you must run SBBS with the 'D' command line switch to force
    Synchronet to assume that DCD is always high. If this is the case, then there
    is no way to "hang up" on the BBS.

## [4.4] - Modem Configuration

    Now that you've set up your serial card, the easiest way to finish setting up
    the rest of the options for your modem is to run the SCFG program and go to the
    Nodes->Node #->Modem Configuration->Auto-Configuration, and select your modem
    model from the list of available choices.  If your modem is not listed, you may
    select Generic 2400 for unlisted 2400bps Hayes compatible modems, Generic 9600,
    Generic 14400, or Generic 28800 for unlisted high speed modems.  You may also
    import .MDM configuration files (located in your control directory) if you
    receive an updated or new version of a configuration file for your modem from
    Digital Dynamics or a third party.

    Following is a list of remaining options and a brief description of each for
    those of you that wish to manually alter the modem settings.

    UART (DTE) Rate is the data transfer rate between your computer and your modem,
    for non-data-compressing, non-high-speed modems, you should set this to your
    modem's highest DCE rate (e.g. a 2400bps modem should use a 2400bps DTE rate).
    If you have a data-compressing or high-speed modem, this value should be set
    to the highest DTE rate your modem supports (consult your modem manual).  If
    you plan on using a FOSSIL driver for any external programs or doors, the
    DTE rate you set for your FOSSIL driver should be the same number you use for
    this option.

    Hardware Flow Control should be set to Transmit and Receive (Both) if your
    modem supports CTS/RTS hardware flow control (usually data-compressing or
    high-speed modems).

    Answer delay is the number of seconds to pause after a connection is
    established and before the terminal detection string is sent. It is suggested
    that this delay be set to a minimum of 5 seconds to allow for accurate
    terminal type detection. If the callers on your BBS are experiencing
    inaccurate terminal type detection, you may want to increase this number.

    Answer after (# rings) is the number of rings the bbs should wait for before
    answering the phone, the minimum is 1 ring.

    Reinitialization Timer is used to automatically reinitialize the modem
    periodically to make sure it is functioning correctly.	If you find that your
    modem works most of the time, but occasionally will not answer the phone or
    functions incorrectly, you may wish to use this feature.  Setting this value to
    0 will disable periodic modem reinitialization.

    Example (for Generic 28.8k Modem on COM 2):

## [4.5] - Result Codes

    Result Codes is a list of numeric result codes (connect codes) supported by
    your modem. If you have set "Use Verbal Result Codes" to 'Yes' in your
    the SCFG modem toggle options for this node, this list is not used.

    You would use this list to add result codes that your modem supports, but are
    not currently in the list or to remove codes that are in the list but are not
    supported by your modem.  For each result code, the actual numeric code, the
    DCE (connect) rate, estimated file transfer CPS, and an 8 character description
    of the connection type are stored. A complete list of result codes supported by
    your modem should be given in your modem manual.

    Here is an example of what the result code list would look like for a Generic
    28.8k modem:

    Selecting result code 15 from this menu would result in a sub-menu as follows:

    If "FAX" is used for the result code description, Synchronet will exit with
    an error level of 100 when this result code is returned. This feature is used
    for FAX/Modems that can auto-detect FAX and DATA calls and return a numeric
    result code for FAX connections. If a different error level is preferred,
    use "EXIT nnn" (where nnn is a numeric value) for the description. If a verbal
    "FAX" or "+FCON" result code is returned, Synchronet automatically exits with
    an error level of 100 (see FAX/Modem setup later in this chapter).

    If your modem returns any result codes PRIOR to the actual connection result
    code (and this behavior cannot be disabled), then add these result codes to the
    result code list and enter "IGNORE" for the result description, thus causing
    Synchronet to ignore this result code and wait for another result code to
    determine the actual connection type. This step is only necessary for modems
    that insist on returning multiple result codes during a connection.

## [4.6] - Toggle Options

    Selecting this option gives a menu of available modem toggle options:

    Caller Identification:
    	This is used for toggling the ability to use Caller-ID. Consult the
            section on caller identification for more information.

    Dumb Modem Connection:
            This option should be set to 'Yes' if you are using a dumb (null) modem
            cable to connect a computer to your BBS.

    Drop DTR to Hang Up:
            This is normally set to 'Yes', but some modems do not support the
    	dropping of DTR to hang up the modem. If your modem is one of those,
            you should toggle this option to 'No'.

    Use Verbal Result Codes:
    	This option should be set to 'Yes' for the easiest configuration of
    	your modem. When this option is set to 'Yes', SBBS will automatically
    	parse the CONNECT message received by the modem to determine the
    	connect (DCE) rate and estimated CPS of the call. If "ARQ", "V42",
    	"LAPM", "MNP", or "REL" are contained in the connect string, hardware
    	error correction is assumed to be in effect and the estimated CPS
    	rate is increased appropriately. Setting this option to 'Yes' has the
    	added advantage of allowing DCE rates above 64000. Result codes not
    	recognized as CONNECT messages (e.g. PROTOCOL, CARRIER, etc) are
    	ignored. Result codes with "FAX" or "+FCO" cause SBBS to exit with an
    	error level of 100 (for the execution of FAX receive software).

    Allow Unknown Result Codes:
    	If "Use Verbal Result Codes" is set to 'No', then numeric result codes
    	returned by the modem are then looked up in the configured result code
    	list. If the result code is not found and the "Allow Unknown Result
    	Codes" option is set to 'No', the call is immediately disconnected and
    	an error message is logged for the sysop's attention. If the result
    	code is not found and the "Allow Unknown Result Codes" option is set to
    	'Yes', then the connection information (DCE rate, estimated CPS rate,
    	etc) is taken from the last configured result code and an error message
    	is still logged for the sysop's attention.

## [4.7] - Control Strings

    Modem Control Strings are the strings which are sent to your modem at various
    times during BBS operation.  Normally the default strings are sufficient for
    proper operation, but occasionally you may wish to modify one or more of these
    settings.

    Initialization String is the basic modem initialization for Synchronet. You
    should not modify this unless you are unhappy with any of the settings and are
    familiar enough with the AT command set to understand what each command does.
    Placing a tilde '~' anywhere in this string will produce a 500 millisecond
    (half second) pause. Synchronet requires that the modem NOT echo characters
    back and return numeric result codes. So "E0" and "V0" must be included
    in the init string. Since Synchronet manually detects incoming calls from
    the modem, the modem's auto-detect feature must be disabled with "S0=0". If
    you do not want to hear the connection progress sounds, add "M0" to the end
    of your modem initialization string to disable the modem's speaker.

    Special Init String is where additional initialization commands are placed for
    specific modem types, usually error-correcting, data-compressing, or high-speed
    modems.

    Terminal Init String is the initialization string sent to the modem when you
    enter Synchronet's terminal mode ('T' from the waiting for call screen).

    Dial String is the command sent to the modem for making outbound calls.
    Currently only used by the Synchronet Callback Verifier.

    Off Hook String is the command sent to the modem to take the phone off-hook
    (busy).

    Answer String is the command sent to the modem when a ring is detected by
    Synchronet.

    Hang Up String is the command sent to the modem to hang up the phone and is
    only used if Drop DTR To Hang Up modem toggle option is set to No.

## [4.8] - Auto-Configuration

    The auto-configuration contains a very long list of modem types.  Using this
    list is the EASIEST way to configure your modem to work with Synchronet.  All
    you need to do is select your modem from this list and most everything will be
    configured for you.  If you do not see your modem in this list, you can
    normally select a 'Generic' model from the list.

    If someone later creates an .MDM configuration file specifically for your
    modem, you can use this configuration file simply copying the .MDM file into
    your control directory and then selecting the 'Import Configuration' option
    from the menu and typing in the name of the .MDM file.

    If you create a new configuration you would like to make available to people,
    you can export the configuration information into an .MDM file by selecting the
    'Export Configuration' option from the menu.

## [4.9] - Caller Identification

    If your modem supports one of the Caller-ID formats listed below and you have
    Caller-ID service enabled on your phone line, you can have Synchronet log
    Caller-ID information and disallow specific numbers. First, add the appropriate
    commands to SCFG->Nodes->Node #->Modem Configuration->Special Init String to
    enable Caller-ID on your modem (see your modem's manual for details). Then set
    SCFG->Nodes->Node #->Modem Configuration->Toggle Options->Caller Identification
    to "Yes".

    If you are using a Front-End (e.g. FrontDoor) on your BBS, the CID information
    can be passed to Synchronet on the SBBS command line with the 'Z' command line
    switch (e.g. sbbs c14400 z01-09_11:15_7145295313). The Caller-ID information
    must be ONE string with no spaces.

    The user's phone number will be placed in the user's note field for your
    records and logged for each call in the system log. If you wish to disallow
    access for a specific number, create the file CID.CAN in your TEXT directory
    and enter one phone number per line to disallow that number. If you want a
    message to be displayed to the user who calls with a disallowed number, create
    the message file BADCID.MSG in your TEXT directory.

    Supported formats:

    	Single Line:

    		MM-DD HH:MM Number

    	Three Line:

    		TIME:
    		CALLER NUMBER:
    		CALLER NAME:

    	Four Line:

    		DATE =
    		TIME =
    		NMBR =
    		NAME =

## [4.10] - FAX/Modem Setup for Receiving FAXes

    In order for Synchronet to be able to receive incoming FAXes, there are a few
    requirements that must be met, these are:

    	1) Your modem MUST be able to return either a verbal or numeric FAX
    	   result code (verbal results must contain "FAX" or "+FCO").

    	2) Your modem MUST be able to auto-detect FAX and DATA calls.

    	3) You MUST have a command line receive FAX program that works with
    	   your FAX modem.

    If all of the above requirements can be met, then you will need to modify the
    SBBS.BAT/SBBS.CMD file in the directory of the node(s) to be used for receiving
    incoming FAXes as follows (using a ZyXEL FAX/Modem setup on COM 2 as an
    example):

    -----------------------------------[ Begin ]-----------------------------------
    @echo off
    :top
    ..\exec\sbbs %1 %2 %3 %4 %5
    if not errorlevel 100 goto end
    c:
    cd \zfax
    rcvfax 2 /p:1
    echo Incoming FAX! >> c:\sbbs\data\msgs\0001.msg
    c:
    cd \sbbs\node1
    goto top
    :end
    ------------------------------------[ End ]------------------------------------

    Change the 'c:' on the 5th line to the drive letter where your receive FAX
    program resides.

    Change the 'cd \zfax' on the 6th line to the name of the directory where your
    receive FAX program resides.

    Change the 'rcvfax 2 /p:1' on the 7th line to match the name and command line
    options of the receive FAX program for your modem.

    Change the 'c:\sbbs\data' portion of the 8th line to match the location of your
    Synchronet data directory.

    Change the 'c:' on the 9th line to the drive letter where you have Synchronet
    installed.

    Change the 'cd \sbbs\node1' on the 10th line to match the directory of the
    node(s) that will be set up for receiving FAXes.

    Check your modem manual to find out if your modem responds with a verbal
    "FAX" (e.g. ZyXEL) or "+FCO" (e.g. Practical Peripherals) result code or a
    numeric FAX result code (e.g. Hayes). If a numeric result code is returned,
    then run SCFG from your node directory and go to Nodes->Node #->Modem
    Configuration->Result Codes and add the numeric result code your modem returns
    for a FAX connect and enter "FAX" for the result description. If your modem
    returns a numeric "DATA" result code when in auto-detection mode (e.g. Hayes)
    then add this result code to your result code list in SCFG and enter "IGNORE"
    for the result description.

    Example numeric FAX result code (using Hayes Optima 288):

    Example numeric DATA result code (using Hayes Optima 288):

    If there are any commands needed to enable FAX auto-detection, add these
    commands to the end of your Special Init string in SCFG->Nodes->Node #->Modem
    Configuration. If there is an auto-configuration entry listed for your modem
    with FAX enabled, this step is not necessary.

    Now you are ready to receive FAXes!  When your modem returns a FAX result code
    to Synchronet, the receive FAX program specified in this batch file will be
    executed.  FAXes will be placed into the directory that your FAX program uses
    for received FAXes.

    FAXes CANNOT be sent to specific users on the BBS, this option is only for the
    convenience of being able to receive FAXes without the need of a dedicated FAX
    machine and phone line.  However, the ability to allow users to FAX on demand
    or to upload files to be sent out as FAXes can be accomplished by using one of
    the add-ons (Domain FAX) from Domain Entertainment.

Back to Top

Copyright © 2000 by Rob Swindell
Synchronet BBS Software (Synchronet) Version 3 is comprised of several documentation,
library, executable, and source code files, all of which are covered by the
GNU General Public License with the exception of the following portions covered by
the GNU Lesser General Public License: SMBLIB and XSDK.
Synchronet Version 2 (for DOS and OS/2) and its source code was released to the
Public Domain by Digital Dynamics in 1997 and remains Public Domain software today.
Synchronet Version 3 is not Public Domain software.

Rob Swindell
PO Box 501
Yorba Linda, CA 92885
http://www.synchro.net

For the complete Copyright Information please read the Copyright Documentation .