Networking FreeDOS - NTCPDRV
The Trumpet TCP driver is an external TCP/IP Kernel. It works as a TSR
(=terminate and stay resident) program that runs on top of a packet
driver. TCPDRV was created in 1992 by Peter Tattam, a programmer at the
Psychology department of the University of Tasmania at Hobart,
Australia. According to a biography on his website (see: http://
www.tattsoft.com/aboutUs.htm (*01)), he developed the shareware "Trumpet
Newsreader" short time before and wrote the TCP driver just because
nothing else was openly available for Turbo Pascal. Development
eventually lead to the popular Windows software "Trumpet Winsock",
which Tattam sold through his own company "Trumpet International of
Australia", founded in 1994 (see: http://www.trumpet.com.au/ (*02)).
TCPDRV 2.01 was released as "experimental version". In 1993 a version
3.01 followed, which was called NTCPDRV. Improvements included a more
efficient memory usage and bug fixes (see: http://alumnus.caltech.
edu/~dank/trumpet/ (*03)). Both versions and the textfile TCP201.SPE
specification (*04)) - the specification for programmers - were made
publicly available from the Trumpet website (see: http://www.trumpet.
Licensing issues on this site are kept short and simple: "These DOS
applications are provided free without support." Thanks to the
popularity of the trumpet software, it can be downloaded from various
mirrors (see: http://wiretap.area.com/Gopher/pub/tsoft/trumpet-abi/
(*06)). A commerical version of the TCP driver is available from
Peter Tattam's new company "Tattam Software Enterprises" (see: http://
Installation and configuration:
Download NTCPDRV.ZIP (see: http://wiretap.area.com/Gopher/pub/tsoft/
trumpet-abi/ntcpdrv.zip (*08)) and extract it. If you need a
documentation, download the older version TCP201.ZIP (see: http://
as well, which also includes several applications.
The TCP/IP Kernel has to be configured with the settings of your
network. This is either done by commandline parameters or by setting
DOS environment variables.
So start NTCPDRV.EXE with a command like this (one line):
NTCPDRV -ip=192.168.1.80 -netmask=255.255.255.0
or configure it first by setting environment variables: Add those
lines to AUTOEXEC.BAT or to a batch file that will be started before
--- AUTOEXEC.BAT ---
As shown in the picture below, the kernel automatically searchs for a
usable interrupt vector, after it is started. You may also use the
parameter "-vec=61" to specify for instance the vector 0x61 that's
provided by the packet driver for applications. See the documentation
for more possibilities.
(Picture: Start messages of NTCPDRV)
After the Trumpet TCP/IP Kernel has been started, you are able to run
several TCP/IP applications which require a TCP/IP Kernel (for instance
the Trumpet Newsreader, the DOS webservers Sioux or Webserv). Your
machine will also be reachable from the network now, just try a ping
(Picture: Ping from a Windows machine)
In the picture above, we ping the machine with FreeDOS and the running
NTCPDRV TSR from another computer with Windows XP. It is not the
fastest performance and the first packet is lost.
Then we ping it from a Debian GNU/Linux machine:
(Picture: Ping from a GNU/Linux box)
The first packet needs more time again, the third is received in
reasonable time. At least we see: The network is up and the Trumpet
TCP driver is answering our calls.
(*05) http://www.trumpet.com.au/ ?
Copyright (C) 2007 Ulrich Hansen, Mainz (Germany), modified 2010
and 2020 by W.Spiegl.
For more information see here.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation.
A copy of the license is included in the section entitled
"GNU Free Documentation License 1.2".