Subscribe via RSS

DOS – Serial File Transfers

This was meant to be easy... I was building a 386 for sale on eBay and had a spare 286 laptop hanging around. I was also selling a 4-metre NULL-MODEM cable which I wanted to list as 'tested'.

First, a warning: Don't let the magic smoke out

There's an age-old notion of magic smoke. This smoke is contained in electronic components and, most importantly, needs to stay inside them. Usually the mistakes of an impulsive, rash, impatient user will cause the smoke to escape. Once it has, there's usually no going back... or if there is, then you'll be spending a lot of time/money trying to get back to the spot you were at prior to the damage.

In this case, I did it to the old 286 laptop used below. On the back of the machine, there's two female DB-25 ports. They're not labeled and I thought I was simply in luck! They've already put a correctly oriented serial port (COM2) on there for me!

DSC 02501

Turns out not... turns out one is the printer port (duh!?) and the other is for an external floppy drive. Regardless, I plugged my null-modem cable into the printer port and one electrolytic capacitor started cooking. I turned everything off quickly and inspected the damage. Yup, just one black capacitor (it was meant to be orange!) Unfortunately, when I powered the unit up, the capacitor kept cooking! Currently I've just disconnected it... could just be that that cap was shorted or reverse-polarised and fried... could also be that the whole LPT1 port is dead... gonna be hard to test.

DSC 02491

Anwyay... I later found the part that labeled the ports... DOH! Where were we?...


Would you believe that DOS 6.0+ came with serial transfers as standard? There's an application in-built known as INTERLINK. From here you just set one machine as the server with INTERSVR.EXE and the other as the client with the INTERLNK.EXE application itself.

DSC 0315

The basic idea is to load the INTERLNK.EXE as a driver first, in CONFIG.SYS. You can configure extra options here, but if your connection is correct then it should just-work(tm).

DSC 0316


The best method is to use a specific printer cable, affectionately known as a LapLink cable. This is a cross-over cable for printer ports and is only used for transferring of files. The next best bet is a null-modem cable which does the same thing, but via the serial port, and supposedly slower as there are less data lines.

We're going to use a null-modem serial cable today and you'll find any number of methods for creating one. You can get adapters that'll convert a standard serial cable, entire cables that are 'null-modem' or you can just create your own.

I had actually picked up a 4-metre 'null-modem' cable from a misc eBay auction and wanted to try it out. This had a male plug on one end and a female on the other and didn't quite make any sense. Hence it allowed me to plug it into the wrong port on the laptop (as mentioned above) and wreak havoc. After that little mishap, I decided to just use other spare parts and rig up my own.

I've spoken a bit about serial cables before, but the basic idea is that there's a DTE and DCE end. It's a standard client-server relationship. In our case, our servers need to talk to eachother, so we need to adapt then of of a cable to allow it to connect. The goal is to cross over the transmit and receive lines to have data transfer correctly. There's also some supporting wires to allow data-handling negotiations to take place. You'll find all the wiring methods on the Wiki page.

DSC 0318

Somehow, I found both a female DB-9 and DB-25 in the junk box and followed the first diagram on the wikipedia page. It was only three wires, GND from 5-7, RX from 2-3 and RX from 3-2.

DSC 0320

For the life of me, I couldn't get this to work. Interlink just wouldn't see the other end of the cable. I then tested both ports (just to see if I'd fried more parts in the laptop) with a serial mouse and everything worked fine. From here, it must be the cable, right? Maybe it needs to be more fully-fledged with the other data/signal lines linked up. This site seems to indicate further handshaking is required.

I browsed back to the null-modem page on Wikipedia to work out the other wires to hack together. Something then occurred to me... the DB-29 port has RX and TX the other way around! Why would they do this? Regardless, I simply disconnected my taped and twisted wires and ran 2-2 and 3-3 through directly.... the result? Success!

Configuring Interlink

Before you even think of entertaining this idea, make sure your ports are tested functional with a mouse and that you've gone over your wiring 16 times prior. Make sure you've re-read your serial port pinouts and that you have traced each wire. As mentioned above, the DB-25 RX and TX lines are swapped when compared to the DB-9 pinouts!

DSC 0322

Once you're feeling game, edit CONFIG.SYS on both your machines and add the line DEVICE=C:\DOS\INTERLNK.EXE on BOTH server and client! At this stage, you can reboot the server. It'll boot up and will spit out a little 4 line message indicating that it's loaded the driver, what disks are mapped and what printer ports are mapped. It'll also tell you that no connection is available. Once at your command prompt, run INTERSVR.EXE. You'll be presented with a pretty boring screen indicating the current activity.

Now, return to the client and reboot it after saving changes to CONFIG.SYS. When this one boots up, you'll hope to see that it's connected. Initially I didn't and it just tells you in CAPS that no connection is available. At this point, it's actually checked all of your ports for a server. This is both your printer and COM ports, so it actually really means that it couldn't find a server! I had this a lot at the start and began fine-tuning the configuration, attempting to limit it to a single com-port with /COM:2 switches... but it ended up being my cable!

DSC 0327

Once you're up though, it's all easy! As per below, you'll be told what drives/ports are mapped and it really is as easy as just switching to that drive and listing directory contents, or copying from them!

DSC 0323 DSC 0325 DSC 0326

DSC 0328

I pulled over A-Train (quite quickly, actually!) and tried to run it on the 286 Laptop... it's not VGA, so we didn't get far at all. But it's a 286 without VGA, what was I expecting? Might need to try Railroad Tycoon... I wonder if I can Interlink that over from DOSbox?

Filed under: Retro Leave a comment
Comments (0) Trackbacks (2)

No comments yet.

Leave a comment