OS/2 and virtual COM ports.

With TCP/IP working under OS/2 I went looking for the next thing that I’ve always wanted, and that is a good modem emulator.  Funny enough SIO the COM driver replacement for OS/2 actually includes this functionality.

And has for years… I just never knew it.

I know in the NT centric would we live in today, it’s all moot, but I thought it was really interesting for those of us that still hinge on modems… And freaky hardware, since OS/2 can let some things talk directly to the hardware without OS/2 drivers (IOPL=YES).

So for the sake of it, I downloaded version 1.60 of SIO, went through the install, then added a virtual modem as described to my config.sys .. And I placed a test ‘call’ with OS/2’s terminal program, and I was talking to my MUD!

So I thought I’d try something crazier, like load up a BBS, then configure it for four modems!


And it worked!

Sure there are some slightly easier to configure ways to achieve this (DOSBox includes modem support), and I suppose the better thing to do would be to give virtual modems to Qemu.  Then OS’s with no TCP/IP can benefit from this.

15 thoughts on “OS/2 and virtual COM ports.

  1. Sure there are some slightly easier to configure ways to achieve this (DOSBox includes modem support), and I suppose the better thing to do would be to give virtual modems to Qemu. Then OS’s with no TCP/IP can benefit from this.

    Actually, a while back I wrote a Hayes modem emulator in Perl, and I put the source code on GitHub a few weeks ago. It works with QEMU and other emulators, and you can use it to “call” telnet servers or local processes (SLiRP can be used to provide Internet access, if your guest supports PPP and TCP/IP). You can even call between virtual machines.

    There’s not very much documentation, and the support for Windows hosts is somewhat poor (although I have tested it in Cygwin, and added partial support for Win32 Named Pipes). Also, it doesn’t (yet) support translating incoming telnet connections into incoming calls, which looks like what you’re doing there, but it works nicely with MSIE5.01 to bring the Internet to Windows 3.1.

    P.S. One notable limitation is that emulators don’t support the extra serial pins (e.g. DTR) used to indicate the carrier status. Some systems, WfW/NT3 RAS being the only one I’ve found so far, insist on this and I wouldn’t be surprised to discover that OS/2 is one of them.

    • Wow that’s pretty cool sounding! I may have to try to fight it with Xenix to see how far I can get it to at least talk to things. Even an outbound only connection for UUCP is enough to pickup & drop off files… So it can’t be Xenix to Xenix but that’s ok too. It’d be cool to get it hooked up to UUHecnet.

      Thanks again for the great info!

  2. My apologies for commenting on such an old post, but I was wondering if you had any tips on getting better performance out of the vmodem driver on OS/2? I recently setup PCBoard in OS/2 4, running in VirtualBox on my Mac. I’m using the SIO2K drivers. Everything works great, the BBS runs snappy, but when connected via telnet (localhost, or externally), the input lag is really bad. Like, the user hits a key and it takes almost a second to register back to the user.

    I’m currently running a BBS on a Raspberry Pi2, but would love to get PCBoard going again in OS/2 like I ran it in the 90s!

    • I found that OS/2 2.0 with the last hotfix XR6100 gave the best performance. It did require a lot of experimentation to get stuff like Z modem working OK.

      My OS/2 instance is still online @ bbs.superglobalmegacorp.com
      you may want to try it to compare lag.

      • Wow your setup has no lag at all really.

        I wonder if the use of VirtualBox has anything to do with my issue? I’m also in OS/2 Warp 4.52 and I’m using the SIO 2000 drivers, which I think were the last ones made. I’ll keep tweaking. Your setup has inspired me that mine can be lag-free 🙂

        • I’m using QEMU, and a much older version of SIO. I am 100% unsure if newer is going to be better though. I had issues with the newer versions of OS/2 being really laggy and considering the only thing I needed OS/2 for was to run MS-DOS stuff, so 2.00 was good enough for me.

          That said, I’m using Qemu version 0.15.1 I have found the newer versions of Qemu aren’t quite as adept at emulating OS/2, and the fixes for going from GCC 3 to GCC 4 killed a lot of compatibility, just as going from GCC 4 to 5 killed an incredible amount of speed.

          • Oh man, thanks for that info. That’s valuable to know. I may try rolling back some versions to see what happens. I tried to fire up Warp 4 in QEMU and it started to launch, but ultimately crashed. Ack! I see what you mean!

          • Well, I installed OS/2 2.1 and ran the updates, installed TCP/IP, plus the updates, located a device driver for VirtualBox’s emulated NICs, and everything was rocking along perfectly until it came to the TCP/IP config and despite spending all the evening fooling with it, I could not make it ping any of the other machines on my network.

            So, with that failure, on a whim I tried your SIO 1.6 drivers in Warp 4. Bingo! PCBoard isn’t lagging anymore, user input is as smooth as my Mystic setup on the Raspberry Pi, everything is silky smooth!

            I’m glad that’s worked out, but now I really want to figure out why 2.1’s networking was being such a pain. It is a lean, stripped down OS and I’d love to make it function properly!

            Thanks again for your help and the links! This has been a lot of fun.

          • I think there may be some unoffical update to 2.1 that didn’t get a version bump, but added some better PCI support… I went through some serious hell to get OS/2 to work on VMWare ESXi, and it ended up being the intel network driver had to be configured incorrectly for it to work.

            That adventure was way back here.

            Good to see that 1.6 is working for you as well, it seemed to be the best of the lot. It’s too bad I didn’t know about vmodem functionality otherwise I’d have registered SIO a long long time ago, but I only found out after playing with OS/2 BBS in a QEMU VM on a VPS… Ray Guinn either passed or disappeared from the world.

          • Oh wow, yeah that was the same issue for me as well. I changed the “PermaNet server” to TRUE and boom… I can ping the rest of my network. Amazing!

          • I don’t kow what it is, I just went through and tried every option and found this by accident. I guess I should update it to virtualbox + vmware.

          • How did you get past the PCBModem configurations? Every time I try to setup my modem, regardless of how I do it, I end up getting errors on AT&FE1.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.