MS-DOS and TCP/IP

Want to get a TCP stack on your DOS machine? For ages, I wanted to get TCP tools on a DOS machine to transfer files at high speed (well higher than serial anyway!) and perhaps connect to other services like Telnet etc…

Here is the problem. You have a nice new DOS machine (in beige if your lucky!) and need to get some files over to it, without butchering the inners or swapping drives! Your choices are a little limited:

Floppy disc

Most modern machines do not have a floppy drive installed. You could use a USB connected one, which work quite well, but it is still a floppy.

Pros: Cheap and usually natively supported on your DOS machine without opening the case

Cons: Slow, requires physically swapping, can be unreliable over time

Zip disc

A nice solution if you have two of them. If you can get an ATA connected device on your DOS machine, then that is a good solution.

PROS: Relatively fast if you have an ATA connected device and then sound groovy

CONS: You will need two if you don’t want to swap them.

If you have a parallel connected one then they are terrible because they are slow and require driver software installed for them to mount the drive

Also, the discs can be unreliable

Serial cable

If you want that real retro feel then serial is cool, however you need patience and a good cable, ideally with all control signals wired in.

PROS: Transports you to retro heaven and will rock your geeky world. Most DOS machines will have a spare serial port.

CONS: Slow. I mean REALLY slow. Even at 115200 baud you will be waiting ages for a decent sized game to be transferred. Also, most systems can transfer one file at a time, also a pain.

Parallel cable

If you have a LapLink cable, then you can transfer at higher speed! Works really nicely, however the host software is a pain. Typically, has a limited set of OS support and is tricky under Linux. If you DO get it working nice and have a host which is modern enough to get files onto via the network, then go for it! The cables can be difficult to locate, but they are out there.

PROS: Most DOS machines will have a parallel port, and it keeps serial ports free. In fact, most parallel ports are useless these days anyway. You can get parallel USB adaptors for more modern machines. Speed is better than serial. Using Interlink you can also mount drives over parallel, which is slower than a normal drive but cool!

CONS: Tricky to get a host setup on a machine with a more modern OS, which could make things less useful. Makes the host run slowly under load, it can feel really odd when you are using it as it takes loads of processing time to deal with the parallel port. (I used to have a PLIP connection to an old machine that used that, and it worked really well on the client machine but made the host unusable for anything else!)

Hard drive swapping

Of course, you can just swap out a hard drive from a host machine that can fill it up with retro goodies. Then unplug it and install it into your DOS machine…

PROS: Fastest approach. It will be a connected drive on your DOS machine and be blindingly fast (unless you have a REALLY crap drive)

CONS: It’s painful to physically swap drives between machines. Also, if you suddenly find that you have missed a file or copied the wrong one, you have to start over and swap it back! After about 4-5 drive swaps, you can get REALLY annoyed with this approach!

TCP/IP Under DOS

Has to be the best option! Nice and quick and modern stuff on a retro machine! Love it…

PROS: Fast and modern.

CONS: Can be painful to get working, very hardware dependent.

And the winner is? Well come on! There is no competition here. It has to be TCP/IP since you get to do so much more and don’t need to plug and unplug stuff! So how do you do it? Well here is a guide to get it done. At least it will be soon. Going to work on this stuff over the next few days and hopefully get a nice step by step for DOS TCP/IP.

What you will need:

A Network card (obviously) with a DOS compatible packet driver.

That is loaded at startup, typically, and resides in memory. The driver provides the hardware abstraction layer used by the TCP stack.

Machines to talk to

Seems obvious, but some TCP aware applications you can get are primitive and tend to use older protocols that are either insecure or have been updated/superseded.

Patience

It can sometimes be painful to get this working, so you need to stick with it! Memory usage can be a problem.

Stay tuned…