CREEPINGNET'S WORLD
SETTING UP & USING mTCP ON VINTAGE CLIENTS
Mike Brutman's mTCP Suite to me is an indispensable piece of vintage connectivity. Without it, I'd be forced to use ancient network software to connect a vintage PC to my LAN (like Microsoft Network Client 3.0 or **gasp** Novell Netware Nightmares). As well as internet connectivity would be a real challenge. I know this is more aimed at beginners and people not used to these kinds of tools, but if you ever wondered what a vintage PC connected to the internet is actually useful for - well here's your page.
Setting Up and Installing mTCP On a Modern Network
The first thing you are going to need, is to know the network card inside your machine, and then obtain a packet driver for it. A Packet Driver typically is manifested in the form of an Executable (*.EXE), and basically, enables the Ethernet adapter to allow the computer to be used to connect to networks. It can usually be found in the root directory or the \packet directory of most installation disk sets. Sometimes there may not be a packet driver, the CRYWNR site might have a packet driver for your device.

The Packet Driver - for internet use - needs loaded at Interrupt Vector 0x60. For some packet drivers, this is set in the *.ini file (CSCPKT.INI for my Cisco Aironet LMC-352 WiFi card for example, for others, it's added as a command line switch or just inserted after the packet driver executable name ie Ether 0x60.

The next thing we will need to do is put mTCP on the machine. I usually just download it, put it on Floppy Diskettes, or a CD-R, and then copy it to the new host, either as a ZIP file, or I just copy the contents of the disks to a folder called C:\MTCP. Make sure if copying the individual files to use XCOPY to copy them with the /E switch (retain directories) because there are two files in the /SAMPLES directory we will need. SAMPLE.CFG which is a sample configuration file for mTCP, and the other is FTPPASS.TXT, which is the password/silo/configuration file for FTPSRV. The latter you will only need if you plan to use the FTPSRV (FTP Server) application, which most of us plan to because it's the easiest way I can think of to get files on and off of a vintage PC quickly via DOS using a modern FTP Client.

DHCPVER DHCP Client version Mon XX 20XX
TIMESTAMP Aug 08 10:50:30 2022
# This is a sample mTCP configuration file. These lines are comments.
# Uncomment options that you want to turn use.
#
# Read setup.txt for the full details on how to use this file.

# Settings for my machine
#
# Be sure to load your packet driver first. My packet driver lives
# at software interrupt 0x60
#
packetint 0x60

# Standard MTU is 576 and should be safe for any Ethernet.
# MTU for SLIP and PPP might be even smaller. 1500 is the max
# and works well for LANs and broadband access.
#
#mtu 1500

#Be sure and pick a good hostname!
hostname DOSmachine

# IRCjr options - see ircjr.txt
#
#ircjr_nick YourNick
#ircjr_user YourNick
#ircjr_name Your Full Name (or not)
#ircjr_connect_timeout 30
#ircjr_register_timeout 60
#ircjr_color_scheme cga_mono
#ircjr_timestamps on
#ircjr_backscroll 300
#ircjr_backscroll_chat 50
#ircjr_backscroll_server 100

# FTP options - see ftp.txt
#
#ftp_connect_timeout 10
#
#Set these foreven better performance
#
#ftp_tcp_buffer 16384
#ftp_file_buffer 32768
#
#
#Set this if you are doing mget and mput with lots of files
#
#ftp_mlist_buffer 8192

# FTP Server parms - see ftpsrv.txt
#
# Required parameters
#ftpsrv_password_file c:\ftppass.txt
#ftpsrv_log_file c:\ftpsrv.log
#
# Optional parameters
#ftpsrv_motd_file c:\ftpmotd.txt
#ftpsrv_session_timeout 120
#ftpsrv_ext_ipaddr some.ip.addr.here
#ftpsrv_control_port 2
#ftpsrv_pasv_base 2048
#ftpsrv_pasv_ports 1024
#ftpsrv_clients 10
#ftpsrv_filebuffer_size 16
#ftpsrv_tcpbuffer_size 16
#ftpsrv_packets_per_poll 2

# DHCP generated settings will appear here. If you are using DHCP
# then these will be update automatically by the DHCP client (dhcp.exe)
# You can use the same lines to do a STATIC network setup; just alter
# them and don't run DHCP client
#
IPADDR 192.168.1.100
NETMASK 255.255.255.0
GATEWAY 192.168.1.1
NAMESERVER 0.0.0.0
LEASE_TIME 86400

Next is the FTPPASS.TXT file. Keep in mind that this IS a PLAINTEXT file. You will need to edit this to put a username and password in (highly reccommended) as well as define directories that only files are allowed to.

# mTCP FTPSrv user/password sample file
#
# User file format
#
# user password sandboxdir uploaddir permissions
#
# Commands with permissions: dele, mkd, rmd, rnfr, stor, appe, stou
# "all" is an alias for everything
#
# DOS paths are in /drive_X/path form where X is the drive letter.
# For example, e:/ftpdata is written as /drive_e/ftpdata .
#
# For sandboxdir, enter [none] or a full path name (drive letter included)
# For uploaddir, enter [any] or a full path name (relative if using sandbox,
# or absolute if not using the sandbox).
#
someguy password [none] [any] all
ftp [email] /drive_e/ftpdata /testdir/incoming stor stou
anonymous [email] /drive_e/ftpdata /testdir/incoming stor stou
#
#
# The next line defines a readonly user - notice there are not
# permissions defined. Don't worry about the [any] in the
# uploaddir field - it is just taking up space
#
readaonly [email] /drive_e/ftpdata [any]

Please note the file above is only needed if you are using FTP to store and retrieve files from the vintage machine.


DHCP
DHCP is nothing more than the Domian Host Control Protocol program used to resolve ana IP Address for your DOS system. You just run it, and it writes the IP/Subnet/Gateway/Lease information to the file defined in MTCPCFG= environment variable. If you don't want to use DHCP, you just set thosse parameters in the config file and don't run DHCP at startup.
FTP
This is the FTP Client for mTCP. It's actually quite simple to use. I first used this on 8/1/2022 to access TV Dog's Tandy 1000 Archive FTP from my Tandy 1000A. It's a lot different than say, WS-FTP, WinSCP, or FileZilla if you are used to using those products for FTP. But once you are used to the command line it'll be a breeze, and in some ways - faster than those GUI based products.

Once you're connected to the network, you simply access FTP shares by using FTP ftp.mydomain.com with the domain beingg whatever you are connecting to. So say, I'm connecting to TV' Dog's Archive, I used ftp.oldskool.org and then you'll be connected and dropped at a command prompt that looks a bit like this: -->.

Once in the FTP Server, you can navigate much like you do in DOS. CD drills down further into a directory, but to go back a directory, go up in the hiearchy, you use CDUP.

But what do we use these on? Well, just like DOS (or anything else), an FTP server is just a directory structure with files. You can list those files using the LS command - which you should be familiar with from Linux if you ever used Linux or any other *nix before. But it's a little different, LS just gives you a "list" of directories, what if you want to see the date, time, perms, other details, then you'd use the old DOS command DIR on that. It will automatically "page" the entries it seems as well, so you can get a good look at date, time, attributes, etc.

But what about downloading a file? You use get to do that. And it's done this way....

get myfile.zip c:\myfile.zip

Basically, you use the get command, and it will download myfile.zip from the FTP server to your hard drive at the root of C:\. So say, I'm pulling from my FTP share on my network and I want to copy Ultima 5 from there, Inavigate to the folder, and run get ultima5.zip c:\ultima\ultima5\ultima5.zip, and dthen when I'm done, I use quit to exit. Then I go unpack Ultima V: Warriors of Destiny from the Zip file using pkunzip.


FTPSRV - FTP Server for Vintage PCs
FTPSRV is one of the most used utilities in this suite in my house, and it's used for transferring files/programs over to vintage computers. But it also can be used to host a FTP Archive on your vintage machine - internally, or over the internet. So if you have some old box you don't need that can run DOS, this might be a good use for it.

The first thing to use FTPSRV is to make sure the settings for FTP in the configuration file are correct.

Next, you need to make sure your FTPPASS.TXT file is properly configured. This file usually looks a little something like this.....

# mTCP FTPSrv user/password sample file
#
# user password sandboxdir uploaddir permissions
#
# Commands with permissions: dele, mkd, rmd, rnfr, stor, appe, stou
# "all" is an alias for everything
#
# DOS paths are in /drive_X/path form where X is the drive letter.
# For example, E:/ftpdata is written as /drive_e/ftpdata.
#
# For sandboxdir, enter [none] or a full path name (drive letter included)
# For uploaddir, enter [any] or a full path name (relative if using sandbox,
# or absolute if not using the sandbox).
#
username password [none] [any] all
ftp [email] /drive_e/ftpdata/ /testdir/incoming/ stor stou
anonymous [email] /drive_e/ftpdata/ /testdir/incoming/ stor stou
#
# The next line defines a readonly user - notice there are not
# permissions defined. Don't worry about the [any] in the
# uploaddir field - it is just taking up space.
readonly [email] /drive_e/ftpdata/ [any]

Once these are properly configured, your computer should be able to setup an FTP server on the network per the screenshot below. Once we are here, then we need to FTP into the machine from another client in order to use it to transfer files over.

Typically for me, I use Filezilla regardless of platform, so that makes the experience a bit homogenized on my modern machines. However, depending on the age of your mTCP machine, you may need to tweak and tune to get reliable file transfers. This is not the fault of mTCP at all, I've found it has a lot to do with the modern FTP Client and the computer it's on. We're talking a vastly different field of devices here: one machine is sub 1GHz (in my case, sub-120MHz) and runs DOS, has limited security, less than a Gigabyte of RAM, and a slow, old IDE Interface for the hard disk at best. While on the other side, we have a 2+GHz powerhouse with gigabytes of RAM, a hard drive capable of 3/6gbps or more, sometimes solid state, and a gigabit ethernet connection with a whole gaggle of extra steps on network connections behind the O/S. Typically anything older than a 386 tends to need some consideration of "slowness" when it comes to moving files using FTP.


HTGET
HTGET is a utility to download web-based content directly from the internet using your vintage PC - no browser needed. This is actually quite handy as you may have other files you want to download using mTCP to add to your suite of applications for internet access on your vintage machine. This is also a good way to pull the mTCP update
HTTPSRV
This is an HTTP Server supportin HTTP 0.9, 1.0, 1.1 that can be used to support hosting a website or something similar. Maybe your own in-home intranet hosted on your legcy device.
IRCJR
This is (obviously) an IRC Program. For those unfamiliar, IRC is short for "Internet Relay Chat", and is a early version of "Chat Room" of sorts. I've been using IRC since I got on the internet at home in 2001, and this client is great for this, however, it's meant to be fast and small footprint even on an 8088 system so you are a little more limited in functionality.
PING
Obviously it's the "ping" tool used on network and internet connected computers to check for connctivity to, test, get an IP Address from, and see response times from another machine on the network or internet.
PKTTOOL
TBD
SERVICES.BAT
In more recent mTCP Releases (2022+) Brutman's started providing a "Services.Bat" file that allows you to check to see if there is a new release of mTCP available for your computer. This allows you to keep the program up to date and get the latest bugfixes and features. If you see a new version, you can just use HTGET to download it.
SNTP
This is a Network Time Protocol or NTP utility. What it does it syncs your computer with what my mom used to call the "atomic clock". What it really does it contacts an internet facing, or even your own internal Network Time Protocol (NTP) Server, and then syncs the system clock with it. This is incredibly useful when you have an old Pre-CMOS IBM Compatible like my Tandy 1000 that has no internal clock - so instead I use SNTP to set the system date and time when I'm connecting to the internet, so much so I even use it when using Deskmate.
TELNET
This is the terminal emulator client provided with mTCP. It's known as "Teletype Network Protocol" and was invented in 1969 for using a Teletype to access a remote mainframe/server, or remote device. It's also what we use - well what I use - to connect to BULLETIN BOARD SYSTEMS - aka BBSES! To use it you just type in telnet and then include the server/resource name and if required, it's access port after it ie telnet neobbs.org:23 would connect me to the neobbs.org telnet service (BBS) on port 23, and then if it responds, the terminal program will take over and that will become your menu system. That's the most common thing I use it for. However, it also cann be used for things like telnetting into a remote device and administering it. So DOS systems are still pretty useful.