                       -= NetFoss Internet FOSSIL =-
                        for Windows 2003/XP/2000/NT

                               Version 0.9.6
                              October 1, 2006
                    Copyright (c) 2001-2006 pcmicro.com
____________________________________________________________________________


 NetFoss is a FOSSIL driver for Telnet and Modem communications under
 Windows XP, Vista, 2003, 2000, and NT4. NetFoss supports the revision 5
 FOSSIL specifications plus extended FOSSIL functions defined in X00.

 A FOSSIL [Fido Opus Seadog Standard Interface Layer] is a driver which
 allows DOS based modem communication software to communicate through an
 interface that talks to the actual hardware (such as a dialup Modem).
 
 Originally FOSSIL drivers were designed only for serial communications.
 NetFoss communicates with either dialup Modems, Virtual Modems, or with
 its own Telnet communication engine (NetCom) via TCP/IP.


 Requirements
 ------------

        * Windows XP, Vista, 2003, 2000, or NT4 (any 32-bit version).

        * DOS application(s) designed to communicate with a FOSSIL driver.
          (Such as a BBS program, BBS door, Terminal, etc.)

 Options
 -------

        * A Third party Telnet Server can be used instead of NET2BBS.

        * A Virtual Modem such as NetSerial can be used instead of
          NET2BBS and NetCom.

        * A Command Prompt Shell such as DoorWay can be used for
          remotely executing Win32 Console and DOS applications from
          a FOSSIL. This should only be done by IT professionals
          aware of the security concerns in doing so.

 Features
 --------

        * Extremely fast, written entirely in ASM (MASM/32).
        * Very small, uses only 12k per node.
        * Supports up to 65535 nodes.
        * Includes a 5K Telnet Server (NET2BBS) allowing 256 nodes.
        * Internal Telnet and COM port/Modem support.
        * Acts as a DOS TSR (Terminate and Stay Resident) driver.
        * Compatible with nearly all DOS BBS and door software.
        * DESQview emulation, redirects DV timeslice release
           functions to NT.
        * CPU Usage detection / optimization for DOS applications.
        * Forces doors closed if their carrier detection fails.
        * Enhances Zmodem transfer performance for BBS downloads.

____________________________________________________________________________

 Introduction
 ------------

 NetFoss is a Windows FOSSIL driver for DOS based applications.

 NetFoss is compatible with COM ports and Modems (either real or virtual),
 or NetFoss can be passed active Telnet connections from a Telnet Server.
 NetFoss includes a Telnet Server called NET2BBS, and several third party
 Telnet Servers can be used instead.

 NetFoss is freeware, provided as-is. We encourage any bug reports and
 suggestions which can be emailed to support@pcmicro.com.



 Installing NetFoss
 ------------------

 Place the following files into a directory:

 NF.BAT        The batch file used to load/unload NetFoss.
 NET2BBS.EXE   The NET2BBS miniture Telnet Server.
 NET2BBS.INI   The NET2BBS configuration .INI file.
 NETFOSS.COM   The FOSSIL TSR Interrupt handler.
 NETFOSS.DLL   The FOSSIL Virtual DOS Driver.
 NETCOM.EXE    The NetCom Telnet Communication Engine.
 NETFOSS.TXT   The NetFoss documentation (You are reading it now).
 NFELEBBS.TXT  The NetFoss under EleBBS door guide.
 UPGRADE.TXT   The upgrade notes.
 FOSSIL.TXT    Technical Reference: FOSSIL implementation and use.
 FOSSIL.CHT    Technical Reference: FOSSIL command chart.

 If this directory is not in the Path, you must copy NETFOSS.DLL to
 a directory which is in the Path.
 *******************************************************************
 *  NETFOSS.DLL is _required_ to be located in the Windows %PATH%. *
 *******************************************************************
 Windows Vista may require NETFOSS.DLL in \windows\system32\

 Edit your NF.BAT file and change any of the paths there as needed.
 Do not add any "CD\" commands to the batch file to change directories,
 or it will not be able to find a DOOR32.SYS file which it expects in
 the current directory if no /n{node} and /h{handle} parameters were
 passed on the command line. (See section below for details on this).

 If your BBS does not support DOOR32.SYS, you will need to make an
 additional change to your NF.BAT file as shown in the non-DOOR32.SYS
 mode section below.

 Up to 65535 nodes can be created, depending on system resources and
 the software being used. Most BBS software supports up to 256 nodes,
 and the NET2BBS Telnet Server also supports 256 nodes.

 A "node" is a separate process of the BBS software, run in its own
 Virtual DOS Machine (NTVDM), commonly known as a "Command Prompt".
 Each node accepts a single user to login and access the BBS using
 either a modem connection or a Telnet connection.

 When used in Telnet mode, NetFoss accepts any COM port value up to
 4096, and the same COM port value can be used on all nodes, allowing
 BBS programs and doors to work on any node, even if they are limited
 to selecting only COM1 thru COM4. To take advantage of this, you can
 set all nodes to use the same FOSSIL port, such as COM1. NetFoss will
 ignore the COM port number that it is passed on an INT 14h call.

 NetFoss demands that each node use a unique WinSock handle value
 (only when running in Telnet mode), or a unique COM port value is
 passed on the command line (only when running in COM port mode).

____________________________________________________________________________

 DOOR32.SYS Mode
 ---------------

 If you are using NetFoss with a 32-bit BBS package which can create
 both a DOOR32.SYS and a standard dropfile (such as EleBBS or WWIV BBS)
 then you do not need to pass the node number, or the Telnet Socket handle
 to either NetFoss or NetCom.
 Instead they can be automatically read from the DOOR32.SYS file located
 in the current directory (which should be the nodes dropfile directory).

 Some 32-bit BBS's which support DOOR32.SYS can not create a standard
 drop file at the same time (i.e.: MysticBBS 1.07.03 and Synchronet 3.10)
 So in this case DOOR32.SYS mode should not be used. See below for info
 on configuring Mystic or Synchronet in non-DOOR32.SYS mode.

 If your Win32 BBS does not automatically start a batch file in the current
 nodes directory then you would have to change to the nodes directory in
 the beginning of your NF.BAT file. This is not required for most BBS
 programs.

 You will need to edit the door command line for each of your doors.
 A typical type-7 command line in EleBBS would look like this:

 C:\BBS\NF.BAT c:\bbs\lord\start.bat *N
 ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
    |                     |
 This loads NetFoss.     This is the batch file that runs a door.

 Note that NF.BAT is not passed any information on which node or Winsock
 handle to use. That is because both NETFOSS.COM and NETCOM.EXE will
 find this information by reading the DOOR32.SYS from the current
 directory.

____________________________________________________________________________

 Non-DOOR32.SYS Mode
 -------------------

 To run a DOS based BBS under Windows in Telnet mode, you also need to
 install either of the following software applications:

 A. A Windows compatible Telnet Server, such as the included NET2BBS.
    Several compatible Telnet Servers including NET2BBS are freeware.

  or

 B. A Virtual Modem designed for Windows, such as NetSerial, which can
    emulate COM ports and modems, supporting Modem AT Commands. ($25)


 There is a list of free Telnet Servers compatible with NetFoss below.

 NetSerial is a commercial Virual Modem and COM port redirector which
 creates up to 256 Virtual Modems under Windows. Each Virtual Modem can
 be assigned to a BBS node which answers the next incoming Telnet
 connection as if it was communicating with a real dialup Modem.

 NetSerial also allows outbound telnet connections to redirect to your
 application software such as a FidoNet Mailer or a Terminal program by
 "dialing" an IP address and making a Telnet or RAW TCP/IP connection as
 if it was a phone number. NetSerial includes advanced features like
 SSL Encryption, and realtime COM port tracing/logging of all data flow
 and Virtual Modem AT commands and responses.

 NetSerial is available to BBS Sysops at a discounted price of $25 USD.
 ----------------------------------------------------------------------
 Contact sales@pcmicro.com to request the Sysop discount offer.

 NetSerial is available for download at http://pcmicro.com/netserial

 NetSerial is designed to work with NetFoss - or any DOS based FOSSIL
 driver, such as ADF, BNU, or X00. (limited to COM1-COM4 because of DOS)
 NetSerial also functions without a FOSSIL, with its DOS UART Emulator.

 Please refer to the "Using NetFoss with a COM port" section of this
 guide for details on configuring NetFoss to work with NetSerial.


 The following freeware Telnet servers have been tested with NetFoss:

 * NET2BBS by PC Micro. This Telnet Server is included with NetFoss.
   Only 5k in size, and runs as a console application. Supports log
   files, WAV player, Semaphore checking, and more. Freeware.
   http://net2bbs.net

 * TelSrv by Mannsoft. A simple yet elegent GUI Win32 BBS Telnet Server.
   This is the original and simpler version of GameSrv in which the
   Telnet Server is seperate from the included mini-bbs. Freeware and
   open-source. http://pcmicro.com/netfoss/telsv412.zip

 * GameSrv by R & M software. A telnet server with an internal mini-BBS.
   Freeware. http://gamesrv.ca

 * Argus by Ritlabs. A complete front-end mailer. Freeware, open-source.
   http://www.ritlabs.com/argus

 * Radius. An enhanced mailer based on Argus. Freeware, open-source.
   http://radius.cphost.ru/cgi/en/index.php

 * Taurus. More advanced mailer based on Radius. Freeware, open-source.
   http://taurus.rinet.ru

 * Dumple BBS Server, by SWT. Written in Python. Freeware, open-source.
   http://members.cox.net/swt2/Dumple/

 * zTelnet Server. Freeware.
   http://grouty.org/bbs/ztelsrv.php

 * EleBBS Telnet Server, (telserv/EleServe) Freeware, open-source.
   http://elebbs.com and http://pcmicro.com/elebbs/faq

 * VADV32 Telnet Server for Virtual Advanced BBS. Freeware.
   http://vadv32.at2k.org

 * Mystic Telnet Server for Mystic BBS Win32. Freeware.
   http://www.safesite.com/product.php[id]38283

 * WWIV Win32 Telnet Server (Works with any BBS). Freeware, open-source.
   http://wwiv.sourceforge.net/

 For Non-DOOR32.SYS mode, you will need to change one line of the NF.BAT
 file, to pass the node number to NETFOSS.COM. This is only needed if you
 are running either A) DOS based BBS software, or B) Win32 BBS which does
 not create a DOOR32.SYS drop file when it runs a DOS door.

 NetFoss is distributed with a default NF.BAT which is configured to run
 in DOOR32.SYS mode with Win32 BBS Software. It looks like this:

               @echo off
               c:\bbs\netfoss.com
               if errorlevel 1 goto end
               c:\bbs\netcom.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
               c:\bbs\netfoss.com /u
               :end

 In order for it to work on a Non-DOOR32.SYS environment, you will need
 to change the second line to "c:\bbs\netfoss %1" in order to pass the
 node number to NETFOSS.COM.

 Next you will need to configure your telnet server (or a Win32 BBS) to
 pass both the node number, and the WinSock handle to the NF.BAT file,
 as parameters %1 and %2  These will need to be prefixed with the "/n"
 and "/h" switches, respectively. It woudl resemble this:

    C:\BBS\NF.BAT /N{node} /H{handle} c:\bbs\bbsname.exe -C1 -B38400

 In which {node} and {handle} are positive numeric values representing
 the node number to use and the telnet "socket handle" to use.

 For example, Argus uses &n to pass the node number, and &h to pass the
 Winsock handle to an external program. So your Argus external command
 line (Config >Externals >Doors >Door Parameters) would look like:


  c:\path\nf.bat /n&n /h&h c:\path\bbs.bat -N&n -C1 -B38400
      |            |    |       |           |    |   |
  NetFoss-loader   node handle  bbs-loader  parameters sent to bbs.bat


 In this example, we assume the BBS software uses -C1 to pass the
 current com port, -B38400 to pass the baud rate, and -N1 to pass a node
 number to the BBS software.

 Almost all DOS BBS software allows an active call to be passed from a
 front-end mailer to the BBS in this fashion, though the BBS parameters
 such as -C -N -B will differ slightly from one BBS program to another.
 Please consult your BBS documentation on the proper parameters needed
 to pass a connected caller from a front-end mailer to the BBS.

____________________________________________________________________________

 Installing NET2BBS Telnet Server
 --------------------------------

 NET2BBS is a small yet powerful Telnet Server included with NetFoss.
 It has the following features:

   * Very small footprint, .exe is only 5K.
   * Configurable Node support, up to 256 nodes.
   * Logs all IP's connections + node numbers to screen and file.
   * Multimedia support, plays login.wav and logoff.wav if found.
   * Semaphore support, refuses connections when semaphore file exists.
   * A classic Console mode text interface.


 NET2BBS needs to be configured before you can run it. This is done by
 editing the NET2BBS.INI file with a text editor, such as EDIT.EXE or
 notepad.exe. You must have NET2BBS.INI located in the same directory
 as NET2BBS.EXE.

 The default NET2BBS.INI file looks like this:

     [Settings]
     Command=Command=c:\netfoss\nf.bat /n*N /h*H c:\pcb\board.bat *N
     Log=telnet.log
     Semaphore=c:\bbs\wait.sem
     Port=23
     Nodes=256
     Debug=0

 Here is what each line does:

 [Settings] -  This line must appear above any other lines.
               It is required, as it defines a Settings group.

 Command=      The Command Line NET2BBS spawns each time a node is
               assigned to an incoming telnet connection.
               ======================================================
               Normally this will execute NF.BAT and a second batch
               file for the BBS software. Both the Node number and
               the TCP Socket Handle need to be passed on the command
               line the spawned application, allowing it to take
               control of the incoming TCP connection.

 Log=          The Log file name (the path is optional). If you do not
               want a log file, set this to Log=nul

 Semaphore=    The Semaphore file name (the path is optional).
               Before NET2BBS assigns an incoming connection to
               a node, it checks to make sure that the Semaphore
               file does not exist. If the file does exist, the
               connection is refused due to a semaphore event.
               If the Semaphore file contains any text, this will
               be displayed to the connection before the user is
               disconnected.

 Port=         The TCP/IP Port that NET2BBS will monitor for
               incoming telnet connections. By default this will
               be port 23, the Telnet port. Some ISP's block port
               23 from incoming connections, in which case you can
               define a non-standard port here.


 Nodes=        The maximum number of simultaneous connections allowed
               to be active. By default this will be 256 which is the
               maximum value that NET2BBS currently supports. You can
               define any value from 1 to 256.


 Debug=        A logical flag (either 0 or 1), to disable or enable
               debug mode. When debug mode is enabled, some extra
               information is displayed on the screen. By default
               this is disabled.

 The only line you need to adjust in NET2BBS.INI is the "Command="
 line. This needs to run NetFoss and your BBS software, passing the
 Node Number using the *N macro, and passing the Socket Handle using
 the *H macro.

 Refer to the following BBS configurations listed below for examples
 of how the "Command=" line should appear.

 NET2BBS uses a Console mode user interface, which displays all the
 IP connections and disconnections made. Pressing the ESC key will
 exit the Console, and shut down the Telnet Server. The Console can
 be hidden or moved to the system try by installing a third party
 tray manager such as TrayIt (freeware).

 NET2BBS does not accept any command line parameters, as it gets all
 settings by reading the NET2BBS.INI.

-----------------------------------------------------------------------------

 GameSrv Usage
 ------------------

 If you wish to install GameSrv as your Telnet Server (or mini-bbs)
 then please refer to the documentation included with GameSrv.
 Different versions of GameSrv have unique config settings.

-----------------------------------------------------------------------------


 Mystic BBS Win32 USAGE
 ----------------------


 The Win32 version of Mystic BBS comes with its own telnet server named
 TSERVER.EXE. In our testings in 2001, Mystic BBS version 1.07.3 will crash
 with an exception error when attempting to create a DOOR32.SYS.

 Mystic was not designed to create both a DOOR32.SYS and a standard drop
 file at the same time. However there are scripts for Mystic avilable that
 overcome this by creating both DOOR32.SYS and DOOR.SYS which allows NetFoss
 to be used in DOOR32.SYS mode. Another solution is to run NetFoss without
 using a DOOR32.SYS file, as described below:


 1) If you have problems using Mystic's TSERVER.EXE you can use an
    alternative telnet server such as NET2BBS.EXE included with NetFoss
    The commandline the new telnet server should use to start the Win32
    version of Mystic is:
         C:\MYSTIC\MYSTIC.EXE -N{node} -TID{socket handle}

    If you are using NET2BBS, edit your NET2BBS.INI file to include
    the following:  Command=c:\mystic\mystic.exe -N*N -TID*H


 2) Modify one line of your NF.BAT, to pass the node number to NETFOSS.COM.
    Change the line that loads NETFOSS.COM to have a " %1" at the end.  
    (this is explained in detail in the DOS BBS section above.)

 3) Add the door to Mystic.  Tell it to create whatever dropfile you want to
    use with the door (ie DOOR.SYS, DORINFO1.DEF...anything but DOOR32.SYS)
    and use this commandline as a template:
         C:\NetFoss\NF.BAT /N%3 /H%0 C:\LORD\START.BAT %3

   Subsitute "C:\LORD\START.BAT" with the actual path/filename of the batch
   file that runs door.

   Mystic will replace "%3" with the node number, and will replace "%0"
   with the socket handle.  Note that %3 is actually used twice in the above
   example, first to pass the node number to netfoss.com and netcom.exe in
   the NF.BAT, and then again to pass the node number to the doors own batch
   file.

____________________________________________________________________________


 EleBBS Win32 Usage
 ------------------


 NetFoss was originally developed for use the Windows and DOS verions of
 EleBBS, which is RemoteAccess compatible BBS package for Windows, Linux,
 DOS, and OS/2.  The Windows version of EleBBS includes a Telnet Server.

 There are detailed instructions on how to configure NetFoss with EleBBS
 included in a separate file in the NetFoss archive named NFELEBBS.TXT


____________________________________________________________________________

 Synchronet BBS 3.1x USAGE
 --------------------------

 Synchronet already has its own FOSSIL support, but using NetFoss in place
 of the internal FOSSIL can allow DOS doors to run considerably faster,
 often by a factor of 2 or more times faster then the internal speed.
 You can use NetFoss to run all or just some or all of your door programs,
 and run others using the internal FOSSIL.

 Synchronet can create a DOOR32.SYS file, but we do not suggest running
 NetFoss in DOOR32.SYS mode because Synchronet is unable to create both a
 DOOR32.SYS and a standard drop file at the same time. For this reason the
 DOOR32.SYS mode should not be used at the time this guide was written.
 
 Here is how to configure the "Legend Of The Red Dragon" door in Synchronet
 3.10j using the Non-DOOR32.SYS mode:


  Name                       LORD
  Internal Code              LORD
  Start-up Directory         C:\SBBS\XTRN\LORD
  Command Line               c:\sbbs\nf.bat /N%# /H%H start.bat %#
  Clean-up Command Line
  Execution Cost             None
  Access Requirements
  Execution Requirements
  Multiple Concurrent Users  Yes
  Intercept Standard I/O     No
  Native (32-bit) Executable Yes
  Use Shell to Execute       No
  Modify User Data           No
  Execute on Event           No
  Pause After Execution      No
  BBS Drop File Type         GAP             DOOR.SYS
  Place Drop File In         Node Directory
  Time Options...

  Notice that the Native (32-Bit) Executable option is enabled. This needs
  to be turned on in order for Synchronet to not enable its own internal
  FOSSIL driver. REPEAT - even though you are not using DOOR32.SYS as your
  dropfile, Native (32-Bit) Executable must be enabled.  Additionally, make
  sure to change the command line to reflect the directory that you
  installed NetFoss and the Start-up directory should either reflect where
  your door is located if you dont use a batch file to start the door, or
  could have the startup directory point to your current node directory
  where the dropfiles are created. (If you do the later, you should launch
  the door with a batch file that first uses the CD\ command to Change the
  Directory to where the door is located.

  When using the Non-DOOR32.SYS mode, you must edit your NF.BAT file to add
  the " %1" at the end of the second line, as explained earlier in this
  document. Instructions can also be found in the NF.BAT.

  Make sure to change the Command line to reflect the directory that you
  installed NetFoss in, and the Start-up directory should reflect where
  your door is installed.

  In the LORD door example above, the start.bat is the batch file located
  in the Start-up Directory which actually runs this door game.

____________________________________________________________________________


 PCBoard BBS Usage
 -----------------

 NetFoss has been tested with PCBoard version 15.3 & 15.4beta for DOS.
 Here is how to configure it:

 1) Install either NET2BBS or any of the other Win32 Telnet Servers listed
    in the non-DOOR32.SYS mode section above.

 2) Edit your NF.BAT file as described in the non-DOOR32.SYS mode section.

 3) Install PCBoard in the c:\pcb directory, and create a separate directory
    for each node, such as c:\pcb\node1 and c:\pcb\node2 etc.

 4) Run PCBSETUP.EXE > Modem Information> Modem Setup.
    Set the COMM Driver to use as "F=FOSSIL, set the COM port to any
    non zero value. Setting it to "1" will work even if you have a real
    COM1 port already. Set the Opening Baud Rate to 115200, and select
    Lock in Opening Baud Rate = Yes.

 5) Create a BOARD.BAT in the PCBoard directory which looks like this:

        @ECHO OFF
        CLS
        SET PCB=/NODE:%1 /PORT1F:
        SET PCBDRIVE=C:
        SET PCBDIR=\PCB\NODE%1
        SET PCBDAT=C:\PCB\PCBOARD.DAT
        SET NODE=%1
        :top
        %pcbdrive%
        cd %pcbdir%
        if exist remote.bat REN remote.bat remote.sys
        if exist door.bat   DEL door.bat
        if exist endpcb     DEL endpcb
        pcboardm /file:%pcbdat% /C:115200
        if exist remote.bat CALL remote.bat
        if exist door.bat   CALL door.bat
        if exist event.bat  CALL event.bat
        if NOT exist endpcb GOTO top
        :end

        Note that each %1 will be replaced with the node number
        when this batch file is run. The line that actually runs pcboard
        is the "pcboardm /file%pcbdat% /C:115200". The /C:115200 tells it
        to assume that the user is already connected at that baud rate.
        The "/PORT1F" setting tells PCBoard to use FOSSIL port COM1,
        and it is preferable to set the same FOSSIL port for all nodes.

  6) Unzip the NetFoss files into a directory, and copy NETFOSS.DLL
     to a directory located in your Windows PATH.

  7) Configure a Win32 Telnet Server to run the NF.BAT and the BOARD.BAT
     batch files. If you are using the included NET2BBS Telnet Server,
     then edit your NET2BBS.INI file to use a command line like this:

          Command=c:\netfoss\nf.bat /n*N /h*H c:\pcb\board.bat *N


     If you are using the Mannsoft TelSrv, configure it like this:

      Working Directory:

             c:\pcb


      External Program Command Line:

             c:\telsrv\nf.bat /n*N /h*H c:\pcb\board.bat *N

      [ ] Enable NetFoss Support (Disabled)


    Note: If you check the "Enable NetFoss" box, and the "/NetFoss" directory
    containing your nf.bat is located within the TelSrv directory, then you
    can (and must) enter a simpler form of External Command Line:

          c:\pcb\board.bat *N

    Then TelSrv will automatically add "NetFoss\nf.bat /n*N /h*H " to
    the actual command line.


  8) For maximum file transfer speed, install Public Domain Zmodem
     (PD ZModem) as an external protocol in PCBoard. This runs several
     times faster then the PCBoard internal Zmodem or FDSZ.

____________________________________________________________________________


 ProBoard BBS Usage
 ----------------------
    
 NetFoss was tested with ProBoard BBS for DOS version 2.17 (freeware).
 Here is how to configure it:

 1) Install ProBoard in c:\pb and create directories for each node
    such as c:\pb\node1 and c:\pb\node2 etc.

 2) Create a RUNPB.BAT in the ProBoard Directory, which looks like this:

            cd\pb\node%1
            pb.exe -B115200 -N%1


    The -B115200 switch tells ProBoard to assume that the caller is
    already connected to the modem at that speed.
    The -N%1 passes the node number, since %1 is replaced with the
    node number when the batch file is run.

  3) Unzip the NetFoss files into a directory, and copy NETFOSS.DLL
     to a directory located in your PATH.


  4) Configure a Win32 Telnet Server to run the NF.BAT and the RUNPB.BAT
     batch files. If you are using the included NET2BBS Telnet Server,
     then edit your NET2BBS.INI file to use a command line like this:

             Command=c:\netfoss\nf.bat /n*N /h*H c:\pb\runpb.bat *N



     If you are using Mannsofts TelSrv it should look like this:

      Working Directory:

             c:\pb\node*N


      External Program Command Line:

             c:\telsrv\nf.bat /n*N /h*H c:\pb\runpb.bat *N

      [ ] Enable NetFoss Support (Disabled)


     Note: If you check the "Enable NetFoss" box, and the "/NetFoss"
     directory containing your nf.bat is located within the TelSrv
     directory, then you must enter a simpler form of External Command
     Line:

          c:\ra\runpb.bat *N

     This is because the rest is automatically added by TelSrv.

  5) For maximum file transfer speed, install Public Domain Zmodem
     (PD ZModem) as an external protocol in ProBoard. This runs several
     times faster then the ProBoard internal Zmodem or FDSZ.

____________________________________________________________________________


 RemoteAccess BBS Usage
 ----------------------
    
 NetFoss was tested with RemoteAccess BBS for DOS version 2.62.1
 Here is how to configure it:

 1) Install RemoteAccess in c:\ra and create directories for each node
    such as c:\ra\node1 and c:\ra\node2 etc.

 2) Create a RUNRA.BAT in the RemoteAccess Directory, which looks like this:

            cd\ra\node%1
            ra.exe -B115200 -N%1


    The -B115200 switch tells RemoteAccess to assume that the caller is
    already connected to the modem at that speed.
    The -N%1 passes the node number, since %1 is replaced with the
    node number when the batch file is run.

  3) Unzip the NetFoss files into a directory, and copy NETFOSS.DLL
     to a directory located in your PATH.


  4) Configure a Win32 Telnet Server to run the NF.BAT and the RUNRA.BAT
     batch files. If you are using the included NET2BBS Telnet Server,
     then edit your NET2BBS.INI file to use a command line like this:

             Command=c:\netfoss\nf.bat /n*N /h*H c:\ra\runra.bat *N


     If you are using Mannsofts TelSrv it should look like this:

      Working Directory:

             c:\ra\node*N


      External Program Command Line:

             c:\telsrv\nf.bat /n*N /h*H c:\ra\runra.bat *N

      [ ] Enable NetFoss Support (Disabled)


     Note: If you check the "Enable NetFoss" box, and the "/NetFoss"
     directory containing your nf.bat is located within the TelSrv
     directory, then you must enter a simpler form of External Command
     Line:

          c:\ra\runra.bat *N

     This is because the rest is automatically added by TelSrv.

  5) For maximum file transfer speed, install Public Domain Zmodem
     (PD ZModem) as an external protocol in PCBoard. This runs several
     times faster then the RemoteAccess internal Zmodem or FDSZ.



____________________________________________________________________________


 Telegard BBS Usage
 ------------------
    
 NetFoss was tested with Telegard BBS for DOS version 3.09G2 and SP4.

 The same method can also be used to install Renegade (Which was a
 similar BBS based on an older version of Telegard source).

 Here is how to install NetFoss with Telegard:

 1) Install Telegard, and optionally install the service pack4 for it.
    The official site is http://telegard.net

 2) Create a TG.BAT in the Telegard Directory, which looks like this:

            cd\tg
            telegard.exe -B115200 -Q -N%1


    The -B115200 switch tells Telegard to assume that the caller is
    already connected to the modem at that speed.
    The -Q switch tells Telegard to exit after the caller logs off.
    The -N%1 passes the node number, since %1 is replaced with the
    node number when the batch file is run.


  3) Unzip the NetFoss files into a directory, and copy NETFOSS.DLL
     to a directory located in your Windows PATH. Restart any DOS
     Windows to see the new path.

  4) Edit the NF.BAT to add a " %1" to the end of the netfoss.com
     command line, as described in the "Non-DOOR32.SYS mode" above.

  5) Configure a Win32 Telnet Server to run the NF.BAT and the TG.BAT
     batch files. If you are using the included NET2BBS Telnet Server,
     then edit your NET2BBS.INI file to use a command line like this:

             Command=c:\netfoss\nf.bat /n*N /h*H c:\tg\tg.bat *N



     If you are using Mannsofts TelSrv it should be configured as follows:

      Working Directory:

             c:\tg


      External Program Command Line:

             c:\telsrv\nf.bat /n*N /h*H c:\tg\tg.bat *N

      [ ] Enable NetFoss Support (Disabled)


    Note: If you check the "Enable NetFoss" box, and the "/NetFoss"
    directory containing your nf.bat is located within the TelSrv
    directory, then you must enter a simpler form of External Command
    Line:

          c:\tg\tg.bat *N

    This is because the rest is automatically added by TelSrv.


  6) For maximum file transfer speed, install Public Domain Zmodem
     (PD ZModem) as an external protocol in PCBoard. This runs several
     times faster then FDSZ.


____________________________________________________________________________


 Door Game Usage
 ---------------

 It's preferable to set up all nodes of a door to use the same COM port
 value, such as COM1. NetFoss ignores the COM port value, but many
 FOSSIL aware doors only work on COM1 thru COM4, while some doors support
 up to COM9. There are a few doors that support higher COM port values,
 for example Trade Wars supports up to COM255.

 Here are some notes on specific doors:

 * The Pit 

       Version 4.17 (as well as 4.16 and 4.15) have a bug which
       prevents them from working with a FOSSIL driver if a COM
       port UART is not available. This is a bug in these versions.
       Version 4.05 and below do not have this issue, and will work
       fine with NetFoss. I'm not sure 4.06 or above. If your
       computer has a real COM port, or PCI modem card it will work
       by setting all the nodes of The Pit 4.17 to use that COM port.
       At the time of this writing, an older version of the source
       code to ThePit was recovered and is being updated by "Deuce".

 * Lunatix

       Version 4.3a is considerably slower then some older versions
       (such as 4.0).

 * BBS Crash

       Version 5.6 does not support a FOSSIL driver even though it is
       supposed to. Version 5.1 has been tested and works fine. I'm
       not sure about other versions.


 * Battle of the Arts

       Version 2.0 runs fine under NetFoss, but version 2.20 has broken
       FOSSIL support and never even attempts to communicate with it.



 If you notice any other doors that say they support a FOSSIL driver
 but are not working, please email support@pcmicro.com.

____________________________________________________________________________

 X00 Function 02h Kluge
 ----------------------

 While all versions of NetFoss have included support for the extended
 X00 FOSSIL commands above AH=1Bh, a new parameter was added to NetFoss
 version 0.9.2 and above, which controls how the FOSSIL command 02h
 (Receive character with wait) returns. The official FOSSIL rev 5 specs
 states that this command will always return with AH=0, but X00 returns
 with AH=status (the same status returned by command 03h).

 Most FOSSIL aware programs ignore the results returned in AH after a
 command 02h (Receive character with wait), but a small number of door
 games have been found to expect either 00, or a valid status.
 To provide maximum compatibility, NETFOSS.COM can be passed a command
 line parameter /x which forces it to return from command 02 with the
 status in AH, rather then zero.

 To enable the X00 compatibility mode, you can edit your NF.BAT file to
 add an /x parameter, like this:

   @echo off
   c:\bbs\netfoss.com /x
   if errorlevel 1 goto end
   c:\bbs\netcom.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
   c:\bbs\netfoss.com /u
   :end

 The above NF.BAT is for door32.sys mode only. For non-door32.sys
 mode it would look like this:

   @echo off
   c:\bbs\netfoss.com %1 /x
   if errorlevel 1 goto end
   c:\bbs\netcom.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
   c:\bbs\netfoss.com /u
   :end

 When /x is not present on the netfoss.com command line, then
 Command 02h always returns with AH=00.

 When /x is present on the netfoss.com command line, then
 Command 02h always returns with AH={Status}

 Hint: If you run a Win32 BBS, you can create a second batch file
 which includes /x such as NFX.BAT which makes it simple to allow
 only certain doors to use this mode.

 For most door games, /x is not needed and should not be used
 as it can cause a some other doors to fail.



____________________________________________________________________________


 COM port Mode
 -------------

 NetFoss can be used either in Telnet mode, or in COM port mode.

 COM port mode allows Netfoss to be used with real Modems for a legacy
 Dialup BBS, or it can be used with Virtual Modems such as NetSerial.
 PC Micro no longer supports COM/IP and if you purchased COM/IP from us
 between January 2000 and September 2004 then we can provide you with
 a upgrade to NetSerial at no charge. (contact support@pcmicro.com).
 Other BBS Sysops can purchase NetSerial at a 70% or higher discount.

 Currently the COM port support is not optimized, so software which only
 writes one character to the fossil at a time will be noticably slower
 when used on a COM port compared to running NetFoss in Telnet mode.
 Well designed BBS software can send over a thousand characters of text
 to the FOSSIL driver at a time, which is currently considerably faster.
 A Coalesing feature is planned for future versions of NetFoss to optimize
 software that sends single character COM port writes.

 When using NetFoss in COM port mode, there is no need to use the NF.BAT
 file, because NETCOM (The Telnet Communication Engine) is not neeeded.
 Simply run NETFOSS.COM as a TSR, by loading it with the node number and
 COM port number like this:

       NETFOSS.COM /N1 /C1

 This will install the NetFoss TSR (Terminate and Stay Resident)) code
 by binding it to the current Command Prompt (Virtual DOS Machine).

 Now you can simply run your BBS application or Front End Mailer, and
 it will see NetFoss is operating on INT 14h.

 When your application is finished running, you can uninstall the
 NetFoss TSR by running:

       NETFOSS.COM /U

 ----

 It is also possible (but not suggested) to use the NF.BAT file when
 using NetFoss in COM port mode, but you would need to make some changes
 to your NF.BAT as shown below.

 To use the /C parameter to pass the COM port number, you could make the
 following changes to your NF.BAT:

 1. The line that runs netfoss.com will need both /c{value} and
    /n{value} parameters, which each need to be a value from 1 to 256.
    i.e.: /N1 /C1
 2. The line that runs netcom.exe will need to be removed and
    replaced with the following line:
    call %1 %2 %3 %4 %5 %6 %7 %8 %9
 3. Any batch files that NF.BAT executes (via the call command),
    may not contain an "Exit" command. This is because the call
    command is used to run one batch file from another one, but
    the exit command will prevent the original batch file from
    regaining control. This will result in nf.bat never uninstalling
    netfoss afterwards.

 The last step (#3) is optional, as NETCOM.EXE is not required for
 COM port mode. However if NETCOM.EXE is passed a /C{value} or
 detects the door32.sys is set for COM port mode, it will run in
 local mode, simply spawning the given command line.

 Please note that if the /C parameter is passed to NETFOSS.COM,
 this effectivly disables Telnet mode (Unless you use NetSerial).
 Do *NOT* pass /C to NETFOSS.COM if you use a Telnet Server.

 ---

 Here is how to run NetFoss as a TSR, so you don't need a NF.BAT.
 This will *ONLY* work in COM port mode:

 Load NETFOSS.COM into memory by passing it the node number and
 the COM port number to use, like this:

 NETFOSS.COM /N1 /C1

 This will Install NetFoss into the current "Command Prompt" (NTVDM)
 Window, running as a TSR. 

 If you install NetFoss in other "Command Prompt" windows using COM port
 mode, they will each need to use a unique Node number and a unique COM
 port number.

 ---

 When using NetFoss with NetSerial'S Virtual Modems, you should configure
 NetSerial like this:

 Connection type: Telnet
 [  ] Request Remote Telnet Echo
 [X] Accept Local Telnet Echo
 [X] Request Binary Connection
 Port Mode: Virtual Modem
 Inbound TCP Port: 23
 [X] Accept inbound connections

 The suggested BBS Init string for NetSerial is AT&D2
 This forces the virtual modem to disconnect when the BBS software
 lowers the DTR line on the virtueal COM port.

 NetSerial can create up to 256 Virtal Modems.
 Each Virtual Modem can be controlled by NetFoss in a seperate node.
 Virtual Modems do not require Windows modem drivers to work with NetFoss
 and DOS based applications including BBS programs.


____________________________________________________________________________


  Compatibility Issues
  --------------------

  Some "security" software (anti-virus and firewalls) will interfere with
  a socket being passed from a Telnet Server to another process such as
  NetFoss.

  NOD32 anti-virus must be configured to allow the Telnet Server to do this,
  by doing the following:

  1. Click on IMON from the NOD32 control center.
  2. Click on Setup, and then click the "Miscellaneous" tab.
  3. Under the Exclusion section, click the "Edit" button and add the
     path/name of your telnet server .exe file.


  ZoneAlarm Security Suite will not allow exclusions to be defined, so it
  must be uninstalled.


____________________________________________________________________________

 Zmodem File Transfer notes
 --------------------------

 The following FOSSIL aware Zmodem File Transfer Protocols have been
 successfully tested with NetFoss in BBS Download mode:

 PD Zmodem 1.2.6     - Peter Mandrella, Daisy Data & Information Systems
 SynZM 1.00          - Synopsis, Edge of Honor
 PDrive 2.10         - Larry Athey, Max Graphics
 FDSZ (5/20/97)      - Chuck Forsberg, Omen Technology
 AnDan Zmodem 1.04   - Anders Dannielsson, Andan Softare
 SDPF                - Thomas Thayer, Streamline Design
 CEXYZ 1.0 DOS       - George Hatchew, Cutting Edge Computing

 ZSX 3.10 was also tested, which claims to be FOSSIL compatible, but it
 failed to transfer any files.


 Zmodem benchmark results
 ------------------------

 The following Zmodem benchmarks were performed on a Celeron 1.5Ghz CPU
 with 256 megs RAM running Windows 2000 Professional. Your results may
 differ under other environments.

 The Zmodem protocols were used to send files to an Mtelnet terminal
 program (version beta 12 by Dink available at http://ozone.eesc.com)
 Mtelnet was located locally on the same PC to avoid any network lag.

 Only the default block size of 1K was used in this test, because
 Mtelnet does not support the larger 8K blocks.

 The benchmark results for sending files to an Mtelnet terminal are:


 PD Zmodem    -  280,000 CPS < The Winner! >
 SynZM        -   28,500 CPS
 PDrive       -   28,500 CPS
 FDSZ         -   28,500 CPS
 SDPF         -   21,900 CPS
 AnDan Zmodem -   19,000 CPS
 CEXYZ        -    9,065 CPS
 ZSX          -   Failed


 These are speeds which Mtelnet can receive/download the files being sent
 by a BBS using the listed protocols. Mtelnet has its own internal Zmodem
 implementation, so the protocols are only installed on the BBS end.

 The result is that "Public Domain" Zmodem is by far the fastest Zmodem
 file transfer protocol tested, by 10 times the speed of any other!

 When Mtelnet is used to send/upload files to a BBS running these Zmodem
 protocols, Mtelnet can only send at a maximum of around 100,000 CPS.
 This is because Mtelnet sends data in smaller packets causing the data
 to become buffered while the receiving protocol eventually recieves the
 data (at its fastest speed).

 This presents a problem in which Mtelnet will finish sending a large file
 long before the BBS is finished receiving the file. Mtelnet will wait
 several minutes for a conformation from the BBS end acknoleging that the
 transfer was completed sucessfully. If it does not see this within a few
 minutes, the transfer will fail. The only protocol which can keep up with
 high speed transfers of large files being sent from mtelnet is "Public
 Domain" Zmodem.

 To allow a BBS to accept large Zmodem uploads using NetFoss, you *MUST*
 use the "Public Domain" Zmodem (also known as PD Zmodem) protocol.
 The "Public Domain" Zmodem protocol is freeware, and is available from
 http://netfoss.com

 You can download other protocols at the BBS Archives here:
 http://archives.thebbs.org/ra90a.htm
____________________________________________________________________________




 Frequently Asked Questions:
 ---------------------------


  Q:  Does NetFoss run under Windows 95, 98, or ME?
  A:  No.

  Q:  Does NetFoss run under Windows 2003, XP, 2000, or NT4?
  A:  Yes.

  Q:  Does NetFoss run under Windows Vista?
  A:  Yes. As of Vista RC1, NetFoss is compatible. Earlier beta versions
      of Vista did not support Virtual DOS driver hooks NetFoss requires.

  Q:  Does NetFoss allow all DOS BBS programs and doors to redirect to
      an existing telnet connection?
  A:  Yes, as long as they support a FOSSIL correctly.

  Q:  Does NetFoss work with Windows BBS programs?
  A:  Yes and No. Window programs don't use a FOSSIL themselves, though
      a FOSSIL is needed to run DOS doors. NetFoss does allow Windows
      BBS programs to shell to DOS doors, and NetFoss takes over the
      Telnet connection until the door exits, at which point NetFoss
      returns the telnet Connection to the Windows BBS.

  Q:  Does NetFoss work with doors that do not support a FOSSIL driver?
  A:  NetFoss can run most DOS console applications under Doorway, and
      we have also developed an ANSI to FOSSIL redirector that allows
      a few DOS based programs to send ANSI.SYS console I/O to NetFoss.

  Q:  Do I need a Telnet Server to use NetFoss?
  A:  NetFoss includes a Telnet Server called NET2BBS, and it is also
      compatible with several oth Windows Telnet Servers. NetFoss can
      even be used with real modems, and Windows Virtual Modem software
      such as NetSerial.

  Q:  Does NetFoss work as a FOSSIL for physical com ports?
  A:  Yes. 

  Q:  Does NetFoss work as a FOSSIL for NetSerial and other Virtual Com
      ports or Virtual Modems for Windows?
  A:  Yes. 

  Q:  Does NetFoss work as a FOSSIL for direct Telnet?
  A:  Yes. NetFoss includes the NetCom Telnet Communication engine
      which takes over an active IP connection from the Telnet Server.

  Q:  Why do I get a "Node is already in use" message from NetFoss?
  A:  See the NETCOM.EXE error messages section below.

  Q:  How can I improve Zmodem transfer speeds?
  A:  By installing PD Zmodem as an external protocol in the BBS.

  Q:  Do I need to use NET2BBS to use NetFoss?
      No, you can use other Telnet Servers instead, or you can use
      NetFoss with NetSerial which does not require a Telnet Server. 

  Q:  Can NET2BBS be run from the System Tray?
  A:  Yes, by installing the freeware TrayIt Utility downloadable from
      http://www.teamcti.com/TrayIt

____________________________________________________________________________

 NETFOSS.COM Error Messages
 --------------------------

  Usage:
   /n{value}  Set node
   /c{value>  Set COM port mode (this disables Telnet)
   /x         Set X00 status kluge
   /u         Uninstall

       This helpscreen is displayed if any unknown parameter as passed
       on the command line.


  Node is already in use

       This indicates that either the current or another DOS Window
       already has the NETFOSS.DLL file activated with the same node
       number assigned.
       The node number was either passed on the command line, or read
       from the DOOR32.SYS file.

       If you see this, try closing any open DOS windows (command prompts)
       that are open, in case you inadvertently had installed netfoss
       to the same node number from another window.

       Another possibility is that you loaded NetFoss before you loaded
       your Win32 BBS from the same window, in which case the BBS is
       attempting to open another instance of NetFoss from that window.

  Can't find netfoss.dll


       This means that netfoss.dll was not located in any of the directories
       listed in the Windows environment variable called "Path".
       
       You can change the path (a system environment variable) by going to
       the Windows Control Panel, click on "System Properties", Click on
       the "Advanced" Tab, Click on "Environment Variables" and edit the
       value for the System variable named "Path".

  Bad netfoss.dll [0x]

        This means that netfoss.dll was found, but it was unable to load it.
        The error code in the brackets should be sent to the developer.
 

  DOOR32.SYS not found

       This means that there was no /n{node number} switch passed from
       the command line, so NetFoss was expecting to find a DOOR32.SYS
       in the current directory where it would obtain the node # from.

       Most BBS's create drop files (including DOOR32.SYS created by newer
       Windows BBS's) are created in the nodes default directory, which
       is often the directory that the BBS was started from.
       When a BBS runs an external program (a door), it starts out in
       this directory, and often a doors batch file may then change
       the directory to door location.
       This is not usually the case with Synchronet BBS, as it allows
       the sysop to define which directory the door starts out in.
        

  Low memory
        
       This means there was not enough RAM for NetFoss to install itself.
       Netfoss requires approximately 2k of conventional memory to install
       itself, (conventional is memory below 640k) but once installed it
       uses less then 1k of conventional memory. It also requires about 8k
       of extended memory to operate.
 
  Needs NT

       This means an inferior version of Windows has been detected. ;)
       NetFoss requires NT4, 2000, XP, or 2003.

  Can't uninstall

       This means that NetFoss was told to uninstall itself (with the /u)
       but it was either not previously installed from that window or it
       was unable to uninstall itself.


____________________________________________________________________________

 NETCOM.EXE Error Messages
 --------------------------


  Error: No command line given. NETCOM aborting

      This means that NETCOM was not given the path\filename.exe of
      a DOS application to execute (such as a BBS or a door) or a
      Batch file (either .BAT or .CMD) to process.
      The command line given must include the extension.


  Error: no node/handle passed, and no DOOR32.SYS found

      This means that NETCOM was not passed a /n{node number}
      and a /h{socket handle} value on the command line, and there
      was also no DOOR32.SYS file found in the current directory.
 
  Error: This Node is already in use

      This means that another NetCom is already communicating with
      NETFOSS.DLL on the node number that was either passed on the
      command line or read from the DOOR32.SYS file. 
 

  Error: External application failed to execute

       This means that the command line that netcom was told to
       execute failed to work. Usually this indicates the path
       or filename you specified did not exist, though there could
       be other reasons.


  Error reading DOOR32.SYS

      The DOOR32.SYS file was not readable, or was in the wrong
      format.


  No port given, assuming local or COM mode.

      This means that the port listed in DOOR32.SYS or passed on the
      command line was -1, which means the door should be run in local
      mode without any tcp/ip interface.

 
____________________________________________________________________________

 FOSSIL Functions Reference
 --------------------------

    Common Functions:
               Function 00h - Set communications parameters
               Function 01h - Transmit character and wait
               Function 02h - Get received character with wait
               Function 03h - Return Serial Port Status
               Function 04h - Activate Port
               Function 05h - Deactivate Port
               Function 06h - Raise/lower DTR
               Function 07h - Return timer tick information
               Function 08h - Flush output buffer
               Function 09h - Purge output buffer
               Function 0Ah - Purge input buffer
               Function 0Bh - Transmit no wait
               Function 0Ch - Non-destructive read-ahead (Peek)
               Function 0Dh - Keyboard read without wait
               Function 0Eh - Keyboard read with wait
               Function 0Fh - Enable / Disable Flow Control
               Function 10h - Control-C / Control-K checking
               Function 11h - Set cursor location
               Function 12h - Read cursor location
               Function 13h - Single character ANSI write to screen
               Function 14h - Enable or disable the DCD watchdog
               Function 15h - Write character to screen using BIOS
               Function 16h - Add / Delete a routine from the timer tick
               Function 17h - Reboot system (not supported by NetFoss)
               Function 18h - Block Read
               Function 19h - Block Write
               Function 1Ah - Break begin or end
               Function 1Bh - Get FOSSIL Driver information

      X00 Enhanced Functions:
               Function 1Ch - Activate Port
               Function 1Dh - Deactivate Port
               Function 1Eh - Extended line control initialization
               Function 1Fh - Extended serial port status/control
               Function 20h - Read with no wait (destructive)
               Function 21h - Stuff/Poke the receive buffer

       Layered Application Functions:
               Function 7Eh  - Install an "external application"
               Function 7Fh  - Remove an "external application"
 
 For detailed information on using these functions, refer to the
 FOSSIL.TXT and FOSSIL.CHT files included in the NetFoss archive.
 Additional information can be found in the X00 package.
  
____________________________________________________________________________

 License and Disclaimer
 ----------------------

 NetFoss is provided free of charge, without any warranty whatsoever.

 Use NetFoss entirely at your own risk. In no event will PC Micro Systems,
 or its agents be liable for any damages, including loss of profits or
 other consequential damages arising from the use or inability to use
 NetFoss.

 You may copy and distribute verbatim copies of NetFoss, in any medium,
 provided that none of the files in the archive are tampered with and no
 files are added or removed.

 You may bundle NetFoss with your own BBS software or telnet server, if
 you do not charge a fee for the product, and as long as all the files in
 the original NetFoss archive are placed in a seperate sub directory, with
 no changes except for the NF.BAT file which may be customized as needed.

 NetFoss is a trademark of PC Micro Systems, Inc.
 Windows is a trademark of Microsoft Corporation.
 DESQview is a trademark of Symantec Corporation.
 FrontDoor is a trademark of Definite Solutions.
 X00 is a trademark of Raymond L. Gwinn.
 Other products mentioned are properties of their respected authors.
___________________________________________________________________________


 Credits
 -------

 A big thanks goes to Maarten Bekers for answering many Winsock related
 questions during the original NetCom development in 2001. Maarten is the
 author of EleBBS and EleCom, and NetFoss began as a side project while
 we were beta testing Maarten's SyncFos interface and encountered issues
 with door compatibility and performance, so NetFoss was coded to redirect
 INT 14h calls to NetCom communication driver. NetFoss and NetCom would
 never have become a reality without Maartens support and encouragement.

 Another big thanks go to `Hutch' for developing MASM32, the ultimate
 Macro Assembler package for designing Windows software in ASM, and to
 Rob Swindell for info on the C++ Virtual DOS Driver BOP hooks.

 And finally, to the following beta testers who reported problems and/or
 offered suggestions on improving previous versions of NetFoss:

 Andrew Grimsby       aka Andrew
 Maarten Bekers       aka ele
 Mark Netzel          aka Kram
 Rick Parrish         aka Ree
 Marty Kazmaier       aka Surato
 Brian Zohu           aka Zoob
 Matthew Sullivan
 Louis Northmore
 Jani Sirpoma         aka Dragon
 Mike Dillon          aka GSValore
 Michael Preslar      aka Z
 Christopher Evans    aka Teknopup
 Jimmy Rose           aka BlueWizard
 Loginius
 Daryl Hunt           aka DeadMeat
 Chris Costakis
 Charles Ren de Cotret
 Michael Everett, III aka Bobo
 George A. Roberts IV aka Sirtwist
 Eric Schwimmer       aka Uber
 Bud Younke           aka Raptor
 Doug Rhee            aka BBSFiles
 Tom Jackson          aka ACTION
 Darryl Dynnaway
 Steve Winn
 Deathr0w
 Ioram Sette
 Minh Van Le
 Brian Taylor
 Rich Ringer          aka Pony
____________________________________________________________________________


 Whats new:
 ----------
                      
           0.2wb      Added support for /n{node} in NetFoss.com
                      and both /n{node} and /h{handle} in netcom.exe.

           0.3wb      Optimized code, fixed win2k command line bug.

           0.4wb      Redesigned buffering routines, and in the process
                      fixed the FOSSIL peek/poke (0CH &21H) commands,
                      so now Scrabble, Axe & Fang, and any other doors
                      which previously didnt work should now be fine.
                      Fixed random input buffer garbage on first run.

           0.5        Reoptimized new code for additional speed. Improved
                      status returned when reading a character to allow
                      T&J software's doors to run. Check for carrier drop
                      during a function 2 (read character /w wait)
                      command. Set function 2 timeout to 30 seconds.

           0.6        After a long break from NetFoss development, this
                      is just a minor update that adds support for NT4.
                      The error messages are now always returned to the
                      DOS window rather then to a pop-up window. Fixed a
                      bug in FOSSIL Function 1B (return info in FOSSIL)
                      which was not returning everything it should.

           0.7        Forced Echo off for non Win32 BBS software.
                      Fixed the block-read function, which was not
                      compatible with PCBoard.

           0.7.1      Fixed buffer output bug on slower computers or
                      slow connections, thanks to Charles Ren de Cotret
                      for reporting the issue and testing the fix.

           0.7.2      Added work around to fix CR/LF telnet bug in L.O.R.D.

           0.8        Added DESQview emulation, to release DV timeslices
                      to NT. Added detection and optimizations for poorly
                      designed doorkits. Enhanced carrier detection
                      routine to work around EasyDoor kit bugs
                      (Reported by Mark Netzel). Force non responding
                      doors to terminate 10 seconds after carrier drops.
                      Improved timeslicing release for local mode doors
                      (requested by Marty Kazmaier). Fixed INT1C Timer
                      Chain handling to work around the Fresh Water Fishing
                      door (reported by Mark Netzel). Optimized base memory
                      usage in netfoss.com. Updated docs. Added a pause to
                      all error messages.

           0.8.1      Minor Update. Fixed ANSI detection problem introduced
                      in v0.8 in which Renegade BBS and some doors created
                      using doorframe were unable to detect ANSI.
                      (Reported by Cory Snow and Marty Kazmaier).

           0.8.2b     These were private beta versions of a rewritten Netcom
            thru      released only to the beta team. They included command
           0.8.5b     line paremeters to configure the timer settings.
                      Removed the L.O.R.D. CR/LF work around since its fixed
                      in the beta version of L.O.R.D. 4.07.

           0.8.5wb    An "experimental" Wide beta of NetCom, to be used with
                      NetFoss 0.8.1. It now responds to AIC "Are you there"
                      requests, and turns on binary mode by default, although
                      binary transfers may not be fully functional. Please
                      read the BETANOTE.TXT file for details on this release.

           0.8.6      The Return of NetFoss! After a year and a half pause,
                      development has now resumed. Thanks to Doug Reah for
                      testing hundreds of doors with NetFoss on his BBS, and
                      reporting which ones didn't run. It turned out that
                      several doors by "William Rountree" did not follow the
                      level 5 FOSSIL specs correctly, so a work around was
                      added. Also some doors such as Death Masters could
                      generate a blank remote display, fixed. Adjusted the
                      timing to slow down during Zmodem transfers, to
                      prevent the BBS end from finishing first and timing out.
 
           0.8.7      Fixed a bug that could cause version 0.8.6 to crash
                      PCBoard, reported today by Darryl Dynnaway.
                      Restored a small delay at startup after setting the
                      telnet options, as Mtel (and terminals running under
                      COM/IP) would sometimes expereince garbage input
                      chars without this. Reported by Doug Rhee and Mark
                      Netzel.

           0.9        Adjusted block-read command to support FOSSIL Zmodems
                      (other then FDSZ) that transfer in blocks rather
                      then a character at a time.

           0.9.1      Prevented VADV BBS from hanging after a portscan is
                      done on port 23, reported by Steve Winn.

           0.9.2      It's been just over 2 years since the last update.
                      It turns out that one of the changes made to version
                      0.8.6 to allow a some doors to work which don't follow
                      the FOSSIL rev.5 specs causes certain other doors to
                      fail. The problem was that the X00 Specifications go
                      against the official FOSSIL level 5 specifications in
                      regards to what command 02 (Receive character with
                      wait) returns in AH. The Specs require AH=0, but X00
                      returns the status in AH instead. To resolve this,
                      NetFoss now follows the official specs unless the
                      netfoss.com is given the /X parameter on its command
                      line (within nf.bat) in which case it follows the X00
                      method. Both methods support extended X00 functions.
                      Worked around an issue with a certain PCBoard PPE
                      that sends invalid commands to the FOSSIL. Reported
                      by Deathr0w.
                      Improved timeslice releasing to allow certain doors
                      (BRE,FE,FH,TAL), to run at close to 0% CPU usage.
                      Slowed down binary transfers to avoid upload timeouts.

           0.9.3      Improved binary tranfer speed by redesigning the
                      timeslice release handler to optimize for both FDSZ
                      and PD Zmodem transfer modes (byte or block). BBS
                      uploads should never timeout when using PD Zmodem.
                      Fixed minor NetCom issue introduced in 0.9.2 causing
                      a C/R to not be seen by the L.O.R.D. door with some
                      terminals, reported by Ioram Sette.

           0.9.4      Experimental support for COM ports added, allowing
                      NetFoss to be used with dialup Modems, and Virtual
                      Modems such as NetSerial.

           0.9.5      NetFoss now allows DOS based FTN (FidoNet Technology)
                      Mailers such as FrontDoor and D'Bridge to run over a
                      Telnet connection using NetSerial. Fixed some issues
                      introduced in 0.9.4 with status and COM port DTR
                      signals, reported by Rich Ringer. Fixed zero byte
                      write issue also issue introduced in 0.9.4, reported
                      by Ioram Sette. Added keepalive feature for unstable
                      networks and DialUp ISP connections, requested by
                      Minh Van Le.

           0.9.6      NetFoss now includes a miniture Telnet Server called
                      NET2BBS, which logs IP's, plays wav files and supports
                      semaphore file event triggers. NetFoss now runs the
                      "Kannons & Katapults" door game at lower CPU usage -
                      http://x-bit.org/k-n-k/ Thanks xbit. NetCom was
                      ajusted to avoid a Windows Vista Issue, reported by
                      Steve Winn.
