0

I have a program called Parsonstech Hebrew Tutor, designed for Windows 98. Evidently it was compiled as a 16-bit program, although it is not DOS, and has a GUI (16-bit Windows program). I have been able to get this to run on 32-bit Windows XP running in a VMWare virtual machine, but that is a lot of overhead for what is otherwise a very simple and could even be portableized program (it is one of those older programs that runs off CD without installation). I don't really want to boot up a whole OS to run this program.

That being said, I have done some research into DOS box, and read a tutorial on installing Windows 3.1 on Dos box, but I do believe this is a full system emulation anyway, and I don't know if the program would run on Windows 3.1 since it is designed for Windows 98.

The most promising thing I have seen is qemu user-mode emulation, which claims it can emulate just the processor and call the program (even 16-bit programs) without running a whole elaborate VM environment. Unless I am misunderstanding it. I tried to call the program as follows:

qemu-system-x86_64 HT.exe

from command line, but it just runs and resets and doesn't open the program. I think I am using it wrong. Can somebody help? Or what are my options? Ideally, I would love to make the entire program and whatever virtualization it needs to run into a portable executable, without installing VMWare player on every computer I use it on. I do not have the source code to recompile it, and the company that made it does not exist anymore, but I don't want to let it die!

4
  • According to the QEMU docs, user mode emulation is only supported on Linux and BSD. I think you're going to have to boot a VM. You could always try and load Windows 95 or 98 into a VM if that is going to be lighter than XP (don't know that it will be).
    – heavyd
    Commented Mar 27, 2015 at 17:43
  • There's really no way around it. You're not going to be able to execute 16-bit programs on 64-bit Windows without a virtual machine.
    – Josh
    Commented Mar 27, 2015 at 18:03
  • Hmm I know I will have to use hardware virtualization of some sort, but the question is if I need to emulate a full system. Windows 95 should be substantially smaller than XP, and I am reading now that it may even run on 3.1, so that is a backup option. If I do end up running it in a Windows 3.1 VM, would you recommend using DOS box or another emulator? Is DOS box faster? Also, am I understanding the qemu command line syntax properly, so that this command would theoretically run the program in user mode in linux: "qemu-system-x86_64 -cpu kvm32 HT.exe" ? Thank you!
    – Nathanael
    Commented Mar 27, 2015 at 21:00
  • you should throw that away and find a new program. Those programs don't even support Unicode and may cause problems later
    – phuclv
    Commented Jul 8, 2017 at 17:30

2 Answers 2

0

If the app is 16-bit, you could theoretically get away with running the program inside DOSBOX. you would need this: DOSBOX

Once installed, you can run mount C:\foo Z: which will mount the apps folder in DOSBOX. then all you need to do is: Z: and then appname.exe. Just remember to replace C:\foo with the real folder and appname with the real exe name.

3
  • Thank you. It does have a GUI, though, so I think I may need to install Windows 3.x on DOSbox. But I will try it both ways, just in case. I did read that Windows 3.x has a pretty low processing overhead in DOSbox.
    – Nathanael
    Commented Mar 28, 2015 at 4:07
  • DOSBOX should be able to launch the app with a GUI, as it does the same for DOS games
    – td512
    Commented Mar 29, 2015 at 5:23
  • I just tried it and DOXbox says "this program needs windows." I will experiment with Windows 3.x later today. Thank you!
    – Nathanael
    Commented Mar 29, 2015 at 15:47
2

For me otvdm was the unofficial replacement of Ntvdm I was looking for. While 16 bits Windows uses protected mode, and thus doesn’t require real mode accessing at all unlike Microsoft is claiming (the requirement is 16‑bits segments access).
It emulates the ᴄᴘᴜ either completely like Ntᴠᴅᴍ or through Intel Haxm for better performance, but it does so just in order to wrap Syscalls like Wine would do on Linux : no virtual Network card ; no Virtual hard disk (%systemdrive% is %systemdrive%) ; no allocated but unused memory ; and there’s the option I’m looking for but which is disabled by default : that changes written to the registry is done to the one of the system !

It’s even more powerful than the official Ntᴠᴅᴍ : the transparent level of hardware access is so high that It should be possible to use the full processing power of original graphics hardware. Though there were no ᴀᴘɪ for doing that at that time…

Like Ntᴠᴅᴍ, it’s launched transparently and automatically when a 16 bits program is encountered.
The only bad point is the Windows 3.11 userland like the Program Manager isn’t included with this version (not even an open‑source clone of it) whereas even modern Windows 32‑bits Windows 10 contains it. But as it’s about exe, it should be possible to just copy from a 32 bits Windows in order to get them.

It can be downloaded pre‑compiled here.

You must log in to answer this question.

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