pc micro systems


  How to install A FOSSIL driver in EleBBS


This guide was written in 1999, before there were modern FOSSIL drivers for Windows with internal telnet support. Much of the information here is no longer accurate.

Click Here for information on installing NetFoss in EleBBS Win32.

A Fossil driver is a serial communication layer which allows a program to communicate with a wide variaty of serial devices, including several types of com ports and multi-port cards. Many DOS based BBS programs require a fossil driver, and most DOS based doors have an option to use a fossil driver rather then trying to communicate directly with a com port.

A door is an external program which a BBS can shell to. Most doors happen to be online games, though a door could also be designed to add functionality to the BBS (ie: a QWK mail door, a file door, a message reader door).

This explains how to configure a fossil driver for DOS based doors in EleBBS/Win32. It assumes you already have EleBBS up and running.

Some doors can be configured for either fossil based communication or direct UART communication. It's always better to choose fossil rather then direct. Direct UART communication can NOT be done over telnet under Win9x (unless you also use Turbocom), but with a Virtual Modem it can be done under Windows 2000/NT/XP on COM1 through COM4 only.

Most older BBS doors only support up to COM9, and some only support up to COM4. There are a few however that do support up to COM255, such as Tradewars 2001, and Legend of the Red Dragon to name a few.

In order for EleBBS/Win32 to run a fossil based door, a fossil driver must be loaded before the door is run, and unloaded after the door has exited. EleBBS/Win32 communicates directly with Windows, and never uses a fossil driver itself (the DOS version of EleBBS does).

Most fossil drivers will need to be loaded/unloaded before and after the DOS door is run. The exception to this is Winfossil for Win95/98, and {name removed} for Win95/98. These two fossil drivers stay resident in the background, and are only activated when needed.

All other fossil drivers should be set (loaded) before a door is run, and uninstalled after the door exits. This can be done either in the batch file which runs the door, or a cleaner method is to do this in the following two batch files which are automaticly run by EleBBS if they exist:

SFOS.BAT This is to set the fossil before a door runs.
UFOS.BAT This is to unload the fossil after the door exits.

Here are some example command lines to use with some of the popular fossil drivers. These examples assume that the following environment variables have been set to define the com port for each node:

%COMPORT% This is the number of the current port. ie: 1 for COM1.
%ZEROPORT% This is the zero-based number of the current port. ie: 0 for COM1.
%ADDR% This is the Hexidecmal address of the current port. ie: 3F8 for COM1.
%IRQ% This is the IRQ number of the current port. ie: 4 for COM1.

These can be set by your RUNBBS.BAT file using the "SET" command.

These examples also assume your com port is locked at 115200 bps, and both the transmit and recieve buffers are being set to 4096 bytes, and the FIFO is to 14.

  • ADF:
    SFOS.BAT:c:\path\adf.exe COM%COMPORT% %ADDR% %IRQ% 115200 4096 4096 14
    UFOS.BAT:c:\path\adf.exe UNLOAD

  • BNU:
    SFOS.BAT:c:\path\bnu.com /F+ /L%ZEROPORT%:11520 /Z0 /T:4096 /R:4096
    UFOS.BAT:c:\path\bnu.com /U

  • X00: (you will need to rename x00.sys to x00.exe)
    SFOS.BAT:c:\path\x00.exe E B,%ZEROPORT%,115200 F=15 T=4096 R=4096

    SFOS.BAT:c:\path\ntfoss.com /a0 /l1 /t 4096 /r 4096 COM%COMPORT% BAUD=115200
    UFOS.BAT:c:\path\ntfoss.com /u (if running Win2000 change to //u)

  • TSNT14:
    UFOS.BAT:c:\path\tsnt14.com /u (if running Win2000 change to //u)

    All of the Above fossil drivers can be found at the BBS Archives Fossil Drivers section.

    There are a few poorly written door games which do not bother to close the fossil driver after they have exited. While this would not be a problem for a DOS based BBS program, it's a big problem under a Win32 BBS because this prevents the fossil driver from unloading itself, which in turn prevents EleBBS from regaining control of the com port after the door has exited. The result is that EleBBS drops carrier on the user and exits. If you encounter this problem with some doors, the solution is to add another line to your UFOS.BAT which runs a small program to manually close the fossil port before unloading the fossil. This can be done by adding the following line to your UFOS.BAT before the fossil is uninstalled:

    c:\path\closefos.exe %COMPORT%
    The CLOSEFOS program is available Here

    Which fossil drivers work the best under Windows.

    If you are running Windows NT or (or Windows 2000) then using either TSNT14 or NTFOSS will give much better performance then the DOS based fossil drivers. NTFOSS version 1.00 has a bug which prevents it from working on ports higher then COM9, but the author has a newer unreleased version available by request to fix this.

    I can not reccomend Winfossil/NT as it's very unstable and unregisterable.

    If you are using Windows 95/98 (or Windows Millenium) then your choices are to either use a DOS based fossil driver such as ADF, BNU, or X00, or to use Winfossil/9x. Winfossil/9x (version 1.12.4) has the advantage of being able to enable itself only when its needed, and turns itself off afterwards automaticly. But it is also a bit unstable and unregisterable.

    Of the DOS based fossil drivers, ADF was found to be the fastest one when running under Windows, with BNU performing just slightly slower. X00 is considerably slower under Windows, even though it outperforms the others under DesqView (A DOS based multitasker which was popular a decade ago).
    ADF, BNU and X00 are all freeware.

    Keep in mind that DOS based fossil drivers will usually *NOT* work with Win32 specific com ports such as Winmodems or a Virtual Modem. The exception to this rule is that under NT or Win2000 you can use COM1 through COM4 as NT emulates a UART for these ports only, and under Win95/98/ME you can install a third party UART emulator called TurboCom which emulates a UART for any Win32 com port.

    How to install a Doors under EleBBS/Win32

    Usually a doors configuration also asks for the "locked baud rate". Possilble values are usually 19200, 38400, 5600, or 115200 bps. I suggest you choose 115200 and also set the Virtual Modem ports to the same speed as well, though generally the speed you tell a fossil driven door to use is ignored anyways.

    Here's what you do to add a door to EleBBS:

    Run "ELCONFIG -M" to bring up the menu editor.
    Select the language to use (if you have multiple languages defined).
    Select the menu to edit.
    Press INS to add a new menu item to this menu.
    Press Enter to edit that menu item.
    Set Action to type 7 (execute sub-program) under External doors.
    Set Display to whatever text the user should see on this menu
    (unless you use an external ansi menu screen, then put a semicolen).
    The OptData line tells EleBBS what program or batch file to execute.
    It supports several *Macros such as:

      *A Writes users handle to DORINFO1.DEF drop file.
      *B Passes the baud rate of the connection 0=local.
      *C The path\filename of the command interpreter
         i.e.: c:\windows\command.com
      *F Users first name
      *G Users ANSI settings: ON or OFF
      *H Leave the fossil hot (DOS version only)
      *L Users Last Name
      *M Tells EleBBS to shell out of memory before
         running (only used in DOS versions of EleBBS)
      *N Node Number, as specified with the -N parameter
         when ELEBBS.EXE was run.
      *O Overrides the users baud rate with hardcoded
         value, i.e.: *O19200
      *P Communications (COM) port being used, 1-255.
      *R Users Record number in the user file.
      *S Generates a custom exit file. See RA.DOC.
      *T Time Remaining in minutes for this call.
      *U Passes a 10 char useron status. ie: *UDwnloading 
      *V Avoids clearing the screen first, and does
         not send a "wait... loading." prompt.
      *W the comporthandle, used by Ele/Win32 for Win32 doors.
      *X causes a TAGLIST.RA list of tagged files to be
         written to the current (nodes) directory.
         When used from ELEMGR.EXE, *X causes @ to become
         the DOS style 8.3 pathname instead of long form.
      *Z Avoids running SFOS.BAT and UFOS.BAT before
         and after the specified command line. Adding this
         to non-fossil applications will improve load time.
      *! Stops the system timer for the duration of
         the shell, so the users time is not reduced.
      *# Turns the "Wants Chat" indicator off afterwards.
      *0 The path to the currently selected file area.
      *1 The path to the currently selected message area.
    Before EleBBS runs a door, it creates several drop files in the current (nodes)
    directory. They are: DORINFO1.DEF, DOOR.SYS, and EXITINFO.BBS.
    The first 2 are text files, while exitinfo.bbs is a binary file that is read back
    by EleBBS after the door returns. These drop files pass information to the
    door such as the users name/handle, number of minutes remaining, graphic
    mode, ect.

    Some doors need to be run from the current (nodes) directory so that it can find these drop files, while other doors need to be run from their own directory, and have a path defined to the nodes directory in order to read the drop files(s).

    If a door requires that it be run from its own directory, then you must run it from a batch file that changes to that directory before running the door's .exe file.

    If a door requires that it be run from the current directory instead, then no batch file is required.

    To run a batch file under Win9x, you must pass the name of the command interpeter (usually named command.com) on the Optdata line followed by a /c switch to keep the command interpeter active, followed by the name of the batch file to run. Since the *C macro is the full path and filename of the command interpeter, it would look like this:
    Optdata: *C /c c:\path\to\doorgame.bat

    This is not required under Windows NT, Win2000, or XP, which just needs:
    Optdata: c:\path\to\doorgame.bat

    Quite often you need to pass a door game the node number that the user is connected to, which is the *N macro. This could look like:
    Optdata: *C /c c:\path\to\doorgame.bat *N

    Many sysops also include a *M macro in their Optdata line, which tells the DOS version of EleBBS to swap itself out of memory before running the door. This is ignored in the Windows version of EleBBS.

    Set Hotkey to a letter or number that is used to activate the door. All the other options in this menu can be left as is. Press Esc to exit the menu, and answer Yes to save changes.

    Hits since December 4 1999:

  • Be sure to read our Disclaimer

    Return to the EleBBS FAQ

    copyright 1999 pcmicro.com



    Copyright © 2000 - 2004 pc micro systems, inc.