19

I have a business client who runs an old DOS 16-bit accounting and point-of-sale system in his industrial supply warehouse. He does not want to switch from the legacy DOS application since all of his sales and back-office staff are very comfortable with the old style ‘terminal’ interface.

The client asked me:

"With Windows 11 64-bit on the way, I’m thinking that moving to 32-bit Linux may be the way to go."

He is concerned about this (from the Internet):

Windows 11 does not support NTVDM, which eliminates support for 16-bit application supportability.

Windows 11 is 64-bit only and will likely not run DOS programs well. Note that if you use a 32-bit operating system, you have to make sure you are using the 32-bit versions of any Windows programs you're using (not the 64-bit versions). Only the 32-bit versions of W7 & W8 & W10 work correctly with DOS programs!

Key Requirements:

  • 16 staff Windows workstations on a Windows network
  • which share 4 networked printers
  • each printer is attached to a local workstation
  • there is a Windows server that hosts the main accounting stock item files for the POS lookups
  • there are some Python applications which
    • send invoice as PDF to Outlook email
    • send invoice as PDF to shared network printer

We need a 16-bit DOS emulator which will satisfy the key requirements above. What do you recommend? And should we look at a DOS emulator running on Linux, or Windows?


Also, this I think is useful information to add. Not so much an answer to the problem, but a mitigation of how critical it actually is in practice.

I read that the Windows 11 64-bit deadline is for OEMs – Original Equipment Manufacturers. Hardware suppliers will not be able to buy 32-bit Windows 10 to pre-install for sale on a new PC. Existing 32-bit Windows users however can carry on as they were, and individual users should be able to buy a legal 32-bit Windows.

So, down the line, the client may buy new workstations which come pre-installed with 64-bit Windows 11 – but nothing would prevent him from installing 32-bit Windows 10 himself.

2
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Matt Lacey
    Commented Nov 9, 2022 at 15:53
  • Would you be willing to pay Microsoft money to stay longer on Windows 10? Commented Nov 12, 2022 at 15:23

4 Answers 4

25

In absolute terms yes, migrating to a current accounting system would be better. However, that will not be easy.

Migrating away from a Windows NTVDM-based solution won’t be easy either, but there are a few options. First, note that support for 32-bit isn’t as much of a concern as one might think. On Windows, DOS-based programs are only supported directly on 32-bit versions of Windows because NTVDM is only available there. But that’s not the only way to run a DOS program, and various emulation environments can be used on Windows and Linux.

One option available on modern 64-bit PCs in both Windows and Linux is to run DOS inside a full-blown hypervisor or PC emulator. That might not be appropriate in your case, in particular because providing access to host directories and host printers isn’t well-supported for DOS-style guest operating systems.

DOSBox-style environments would provide a better solution: they make host directories directly available in the DOS environment. (They also provide more conventional memory for DOS programs, and don’t require a licensed version of DOS since they emulate it entirely.) The original DOSBox is intended for running games, so it probably won’t be a great fit; in particular, networking and printing support might not be good enough for your purposes. A couple of DOSBox descendants would fit the bill on Windows, including 64-bit Windows:

  • DOSBox-X — this is actively developed, with frequent releases, and much better support of applications; it includes networking and printing support, and DOS programs running inside it can start commands on the host, which would allow you to implement your PDF handling workflow.
  • vDos — this is also supposed to be a good DOS environment for Windows, with printing and networking support, but I’ve never used it.

There is also a proof-of-concept 64-bit NTVDM, NTVDMx64, but its legal status seems to be somewhat sketchy.

If you were to migrate to Linux, DOSBox-X would still be a possibility; it isn’t widely available in distributions yet (it will hopefully be available in Debian 12 and Ubuntu 23.04) but it’s easy to install anyway, and it’s the most usable option for your scenario in my opinion. There would be a couple other options:

  • DOSEMU — this runs well, has good networking and printing support, but is unmaintained and is no longer available in most distributions. (It was removed from Debian two years ago and didn’t ship in Debian 10 or 11.)
  • Dosemu2 — this is still in development, but its aim is to provide a modern replacement for DOSEMU, with networking and printing support.

Unlike DOSBox, these require a DOS installation, so you’d need either FreeDOS (or fdpp in Dosemu2) or some way of getting licenses for MS-DOS, PC DOS or some other DOS variant.

8
  • 3
    I hadn't considered running a DOS emulator under Windows. That's opened up a new area to explore for me. With some initial searches, I see a few Microsoft support threads saying that DOSBox-X doesn't run under Windows 11. This however looks promising: "vDos is a third-party DOS emulator that replaces Windows’ own NTVDM technology. When you run DOS software through vDos, it’ll load in its own window. It adds network and printer support, provides clipboard access and allows direct access to your system files."
    – TaoRich
    Commented Nov 8, 2022 at 13:25
  • 4
    I still recommend giving DOSBox-X a shot, its current release should work on Windows 11; if it doesn’t, if you open an issue the developers are quite responsive. Commented Nov 8, 2022 at 13:32
  • 2
    Do you really need to use a "DOS emulator" as opposed to a "PC emulator" like qemu?
    – user20574
    Commented Nov 8, 2022 at 16:25
  • 2
    I also find it odd why the DOS needs to be emulated. Why not run a real DOS in a VM, but if you need a real DOS, the problem is getting licenses for MS-DOS if FreeDOS won't work. It is also unclear if the program can run under real DOS or does it run in Windows which provides compatible networking.
    – Justme
    Commented Nov 8, 2022 at 16:47
  • 2
    Using a VM might be overkill in an issue like this. With a DOS emulator it runs more like a native application than another machine which should ease integration and further processing. The value of $BEST for RL applications if often quite different from what tech folks assume.
    – Raffzahn
    Commented Nov 8, 2022 at 18:14
6

I know you already have accepted an answer, but maybe consider 86Box instead, running a full copy of MS-DOS (or FreeDOS) and your application.

It supports networking and can print to a PostScript file, which then could be consumed by a Python script (e.g. this) to turn it into a PDF.

I made a quick test:

  1. Create a new 86Box machine and point the parallel port to PostScript.

enter image description here

  1. Under Windows on that machine, add a printer that outputs PostScript (I used "HP LaserJet 4P/4MP PostScript").
  2. When I print, under the printer directory where my disk image is, I get a PostScript file that I can view with e.g. Okular.

enter image description here

1
  • 2
    IIRC 86Box's printer driver doesn't support converting plain text to PostScript/PDF, it just outputs a plain text file with a .ps extension. But if you do send it PostScript from guest Windows with a generic postscript driver installed for example, it will generate a PDF automatically. Maybe there is a DOS driver to automatically convert to postscript, I don't know.
    – Meatwad
    Commented Nov 9, 2022 at 19:25
4

There is another software solution not mentioned in the existing answers: winevdm. It's supposed to be a drop-in replacement for the old NTVDM that works on x64 Windows. It hooks itself in the native mechanism for handling legacy EXE files, and uses a Windows port of Wine to run the incompatible applications.

Having tested it, it works quite well, and I haven't encountered any serious bug despite its pre-release status. It handles printers and local filesystem access, in addition to GUI interaction.

-2

Why even bother upgrading to Windows 11 (or 10). Why not buy a new PC (with Windows Licence), and downgrade to Windows XP or 7 or even just stick with 10. You obviously don't need the latest version of Windows (heck you could probably just run W95 if pushed).

7
  • 10
    There is a lot of new-ish hardware that has no Windows 7 drivers around - you might not be able to find Windows 7 drivers for your USB adapters, ethernet, wifi and bluetooth chips, and even NVME and Sata. Tried that route once a few years ago with a then-new laptop, and gave up after 2 days. Commented Nov 9, 2022 at 19:40
  • 3
    Aside from the driver issue, the real reason not to do this is that your system doesn't get security updates, which means you absolutely cannot connect it to the Internet (and likely not even a local network, and preferably not even have any connections to the outside world whatsoever, including flash drives, which makes data transfer quite complicated). If you're willing to deal with all of the hassles of running a legacy system, why stop at Windows 7 or XP? Just go all the way back to DOS or, as you said, Windows 95, where the software runs directly, with no emulation required?
    – Cody Gray
    Commented Nov 10, 2022 at 1:49
  • @CodyGray: I've had Windows 7 systems connected to the open internet until now for years. Never had any security issues. This isn't to say they should replicate that—the risk is obviously higher than for a more recent OS, and obviously the more sensitive the data the more prudent you need to be—but "you absolutely cannot connect it to the internet, likely not even a local network" is an exaggeration for a lot of use cases. Between firewalls, AVs, routing rules, VLANs, etc., you can probably come up with adequate protection for quite a few use cases.
    – user541686
    Commented Nov 10, 2022 at 7:26
  • 5
    @user541686 What you're doing there is confusing anecdote with data.
    – Alan B
    Commented Nov 10, 2022 at 8:18
  • @CodyGray You shouldn't be connecting ANY PCs directly to the internet, firewalls are your first line of defence, which means you won't get any random hacks from the internet. Even WindowsXP can prevent unauthorised installation of software, so there won't be any 'rogue' programs running. Driver issues is a reasonable point point though.
    – Neil
    Commented Nov 12, 2022 at 21:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .