6

I have a modern Linux computer and a 286 computer running DOS. I would like to transfer files from the Linux computer to the DOS computer over a null modem serial cable. I know you can use INTERLINK.EXE/INTERSVR.EXE for DOS-to-DOS, but what about Linux-to-DOS (or Linux-to-FreeDOS)?

  • 4
    I'd install a terminal emulator program (of the sort used to connect to BBS'es) on the DOS computer and Zmodem on the Linux computer. You'd also need to setup the serial port on the Linux computer to allow log ins. – Ross Ridge Dec 17 '17 at 0:59
  • I can't point to exact tools, but I would look for terminal programs for Dos and Linux that both support Xmodem. Ymodem or Zmodem are even better protocols for file transfers, but Xmodem works just fine. – Geo... Dec 17 '17 at 1:31
  • 1
    @Geo... on the Linux side, minicom has been the de-facto standard for this since the last time I regularly used a Linux system as a serial terminal, which was probably in 1994. Not so sure about DOS, however. – Jules Dec 17 '17 at 1:38
  • What distribution and version of Linux are you using? – Ross Ridge Dec 17 '17 at 4:23
  • 1
    @Geo...: if using Xmodem, I'd recommend the first thing to transfer to be Zmodem, since Xmodem is latency limited (stop-response protocol). IIRC, I got ~300 Bps with Xmodem and ~900 Bps with Zmodem on a 9600 bps null-modem connection. – ninjalj Dec 19 '17 at 12:01
9

Some sort of comms program that supports Zmodem on the 286 end and use "sz" to send from the unix end. Zmodem has some advantages in that usually the receiving computer will auto start reception of a file when it sees a Zmodem start sequence (there's a random number handshake to stop spoofing)

The reason for recommending Zmodem is means you don't need to start the receiving process on the other computer (so no need to flip between keyboards).

7

You can also use dosbox or dosemu to run a simulated DOS environment, give it access to whatever ttyS* or ttyUSB* you have, and then use the DOS-to-DOS transfer methods.

Personally, I prefer Laplink, which offers a convenient Norton-Commander like interface for file transfer. It can also bootstrap via the CTTY command on the remote computer, which is handy if you've no other way to install something on the DOS computer.

  • This would probably be the easiest approach. – mathreadler Dec 17 '17 at 9:03
6

Is it text? In that case just pipe it from COMx into a file. Otherwise get some simple terminal program like @RossRidge already suggested. Or maybe Kermit. Kermit is a great start if you really want to start from scratch on the PC side since you may really bootstrap with a few lines of code. Or use BASIC to write your own receiving program :) Might be a real fun task.

  • Fun task... I recall circa 1996 or so deciding I needed a parallel port DOS -> Linux transfer capability, grabbing the port descriptions of the PC parallel port (probably from the collection of documents I'd accumulated around that time that included Ralf Brown's interrupt list and a whole load of other similar things -- I think there was a "DOS Games Programmer's Encyclopedia" or something similar in there too) and figuring out how to do it on the DOS side (that was probably the last significant program I wrote purely in assembly, I think), but failing to get it to work in Linux... – Jules Dec 17 '17 at 1:29
  • 2
    ... think I gave in and just bought ethernet cards instead. :) – Jules Dec 17 '17 at 1:36
  • @Jules Yeah :)) Well, I had to force myself staying with the restriction the OP put on this by making it a question about serial/nullmodem transmission :)) Using LAN cards is ofc the easy way out. Personally I wouldn't have even thought about parallel port at all when there's a serial arround. – Raffzahn Dec 17 '17 at 1:49
  • 1
    @Jules the PCGPE? bespin.org/~qz/pc-gpe – Tommy Dec 18 '17 at 2:02
  • @tommy ... That's the one, yes. – Jules Dec 18 '17 at 12:32
1

In addition to the suggestions above, you can run the terminal program "minicom" on Linux, and use a PC terminal package (e.g. ProComm), and transfer the files between the two machines using zmodem or another file exchange protocol (zmodem is very time-efficient over serial ports).

1

On the 286 PC DOS side, you should be able to use Telix (SIMTEL mirror), it has all the standard protocols plus a very good scripting language.

The SIMTEL mirror has several scripts that can be used to setup the old PC in unattended host mode, allowing to do all the transfers from the Linux side.

And for reliable transfers at 115200bps, get a good FOSSIL driver.

0

If you wish to use ethernet instead of serial, there is a program that was obtainable from MS at one time called MSWGCN.exe (Microsoft Workgroup Connect). It allowed a network to be set up on a DOS box. It only works on the NETBEUI protocol so you'll have to install that on Linux too.

Once both sides have NETBEUI, it works quite well. It is a bit slow but faster than either the serial or parallel cable (interlnk also worked on the parallel cable).

I used it to transfer all my C sources from DOS to Linux, only to find that the linefeed-carriage return caused no end of problems with the compiler.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.