A nice little
TCP/IP stack for IBM PCs, XTs PCjrs, and newer machines
Current version: October 29th, 2011
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
- an SNTP
client for getting the current date and time from NTP servers
on the network
- an FTP
server allowing multiple concurrent connections, a sandbox
area for untrusted users, etc.
- HTGet
for
downloading files/content straight from a web server
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
- IBM PCjr at 4.77Mhz with a NEC V20 CPU, Western Digital
8003 Ethernet Adapter, and DOS 3.3
- IBM PS/2 Model 25, 3Com 3C503 Ethernet adapter, and DOS 5
- IBM PC Convertible 5140, Xircom
PE3-10BT
parallel-port to Ethernet adapter and DOS 3
- IBM L40sx laptop, Xircom
PE3-10BT
parallel-port to Ethernet adapter and DOS 6.3
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 96KB to 256KB depending on the
application. (The FTP server requires a bit more.)
Other environments such as DOSBox, SwsVpkt, VirtualBox and VMWare work
fine too. See "Using
mTCP in Virtual Environments" for details. A more comprehensive list of machines and network cards known to work with mTCP can be found here: http://code.google.com/p/mtcp/wiki/TestedMachines
News!
Recent changes
- October 2011: Upgrades and fixes for the FTP server; added user input editing to IRCjr, fix Telnet options negotiation
- July 2011: HTGet added
- May 2011: mTCP is open source! Download the
source at http://code.google.com/p/mtcp/
- May 2011: Add Client-To-Client protocol to IRCjr, add
-retries and -timeouts to DHCP, and minor enhancements
- April 2011: Add a multi-session version of IRCjr, make the
FTP server coexist nicely with FileZilla, and some bug fixes
- January 2011: Increase default stack size to improve
stability on older machines when using STACKS=0,0
- January 2011: Add new FTP server, fix minor bugs in FTP
client
Downloads
Get the current set of mTCP applications for DOS here! mTCP_2011-10-29.zip
Source code is available here: http://code.google.com/p/mtcp/
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@gmail.com.
Powered By ...
Open Watcom (http://openwatcom.org/)
|
Open Watcom is an open source C and C++ compiler that I
use to do most
of my mTCP work now. I use a version that runs natively under Windows
XP and generates 16 bit DOS code that runs on my oldest PCs. The
compiler does a decent job of optimizing code and
the runtime is current and up-to-date.
The current release (1.9) is new as of June 2010. |
Created July 29th, 2008, Last updated October 29th, 2011
(C)opyright Michael B. Brutman, mbbrutman@gmail.com