A nice little
TCP/IP stack for IBM PCs, XTs PCjrs, and newer machines
Current version: July 18th, 2010
* August 21st: New! - SNTP client for DOS! Go here for details: mTCP_Sntp.html
mTCP is a TCP/IP stack designed to run well on the oldest IBM PCs and
similar machines. Applications built using mTCP include the following:
- a DHCP client for auto-configuring your machine to use on your network
- a Telnet client for connecting to servers running Telnet or online games
- an FTP client for transferring files
- an IRC client (IRCjr) for chatting on IRC networks
- the Ping command for checking basic network connectivity
- the Netcat command which can be used like a copy command, except it works over the network
- a new SNTP client for getting the current date and time from NTP servers on the network
All of these applications will run well on the oldest, slowest PC you
can find. I routinely use them on a 1983 IBM PCjr because nothing beats
the fun of putting a 25+ year old machine on the Internet.
Want to see how fast mTCP is? Here are some performance measurements for FTP and for raw socket performance: mTCP Performance notes
Requirements
mTCP applications should work on any DOS PC with an Ethernet adapter, SLIP or PPP connection. My personal testing includes:
- Generic AMD 386-40 with an NE2000 Ethernet
adapter, DOS 5, and a VGA display
- IBM PC XT at 4.77Mhz with a 3Com 3C503 Ethernet adapter,
DOS 3.3, and a CGA display
- IBM PC XT at 4.77Mhz with a Xircom PE3-10BT parallel-port
to Ethernet adapter, DOS 5, and an MDA display
- IBM PCjr at 4.77Mhz with a NEC V20 CPU, Xircom
PE3-10BT
parallel-port to Ethernet adapter and DOS 5
Ethernet cards are supported if they have a packet driver. SLIP and PPP
connections are also supported using a packet driver. The memory
requirement varies, but it ranges from 64KB to 192KB depending on the
application.
Other environments such as DOSBox, VirtualBox and VMWare work fine too.
Recent changes
- July 2010: Misc bug fixes
- June 2010: Ported code to Open Watcom - stronger, better, faster!
- April 2010: Fix an IP checksum calculation bug and improve the
performance of the IP checksum routine
- March 2010: Add support for quotes around filenames in FTP,
fix a telnet bug
- February 2010: Complete rewrite of Netcat
- November 2009: A beta copy of Telnet was added
- September 2009: Some ICMP support for IP; small bug fixes
to FTP
- April 2009: FTP client enhancements: mget, mput, rename,
lcd and other commands
- Jan 2009: 43 and 50 line support for IRCjr, new FTP client
Downloads
Get the current set of mTCP applications for DOS here! mTCP_2010-07-18.zip
The zip file includes all of the current applications and TXT files
explaining how to set them up and use them.
Interested in seeing the source code that lets you talk directly to a
packet driver? I've taken the lowest layer of my code and packaged it
with a sample application that shows you how to interface a C program
with the software interrupt mechanism used by packet drivers. Check it
out here: mTCP_tcpacket.html
Support
I am interested in hearing about your experiences with the
mTCP applications and any
comments you have. Please email me at mbbrutman@yahoo.com. You can also
start a thread on http://www.brutman.com/forums
(Mike's PCjr Page) in the 'Programming' area.
Created July 29th, 2008, Last updated August 21st, 2010
(C)opyright Michael B. Brutman, mbbrutman@yahoo.com