[My Home Page] [Library] [Net]

Trumpet TCP Driver for DOS

Using TCPDRV v2.01 for creating TCP-enabled DOS applications

NB! This information is provided as it is. Since the project has not been active for a long time, no additional information can be given.

In this short overview of Trumpet TCP driver I give an binary interface description of the driver along with examples of usage. As a basis of this work is the Trumpet's TCPDRV v2.01 specification written by Peter R. Tattam, University of Tasmania in 1992. The specification can be found from several places on the Internet (see Sources of Information section for details), or from this site in HTML format (along with some bug-fixes) or in plain text format.


On ISO (International Standards Organization) OSI (Open System Interconnection) model, the TCP stays on Transport layer. In OSI terms, TCP is a Connection-Oriented Acknowledged Transport protocol.

TCP has a multi-stage flow-control mechanism which continuously adjusts the sender's data rate in an attempt to achieve maximum data throughput while avoiding congestion and subsequent packet losses in the network. It also attempts to make the best use of network resources by packing as much data as possible into a single IP packet, although this behaviour can be overridden by applications that demand immediate data transfer and don't care about the inefficiencies of small network packets.

Table 1 - ISO/OSI model
Level Layers Protocol
7 Application Applications
6 Presentation
5 Session
4 Transport TCP & UDP
3 Network IP, ARP, ICMP
Data-Link (2a+2b)
2b-Logical Link Control (LLC)
2a-Medium Access Control (MAC)
Network Driver
Physical (1a+1b)
1b-Physical (PHY)
1a-Physical Medium Dependant (PMD)
Network Interface

TCP/IP is a most widely used protocol for internet. There are a number of TCP stacks for many operating systems available. This paper concentrates on one of DOS-based TCP stacks provided by Trumpet Software International, called TCPDRV. This driver is one of the few freely available TCP stacks that have a binary programming interface (Trumpet calls it ABI, which stands for Application Binary Interface). This was of a cruicial importance to me since I had to write an application in Turbo Pascal, and there were no source-code implementations of TCP for it (for C, there is a number of implementations, like WATTCP, and others); plus, many TCP stacks are commertial, like FTP Software's PC/TCP SDK, or Asynch System's TCP/IP for DOS.

Trumpet TCP driver, as many other DOS TCP/IP packages, use packet drivers for low-level network interfaces. There is a number of different network cards supported, plus SLIP and PPP support. For more information about packet drivers, see Crynwr Software page.

Turbo Pascal interface unit

In the following, we will look at the TCPDRV interface unit written in Turbo Pascal. The actual unit source code can be seen as well.

Here's also a small list of downloadable files. (Use at your own risk)


Trumpet TCPDRV is a fairly good solution if you have to implement something on a free basis and be able to call the driver via simple interrupt calls. Since this driver uses packet drivers for accessing the low-level network cards, it can be used in almost every situation - all kinds of network cards, SLIP, PPP, and etc.


Sources of information and related links

Requests for comments


[My Home Page] [Library] [Net] Last Updated:

Copyright © 1998 Priidu Paomets
Design & Test Center