Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!xlned.com!feeder7.xlned.com!newsfeed.xs4all.nl!newsfeed1a.news.xs4all.nl!xs4all!news.stack.nl!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.os.msdos.programmer Subject: Re: WATCOM DOS/4G won't execute on Windows 8.1 system Date: Thu, 27 Feb 2014 20:02:08 -0500 Organization: Aioe.org NNTP Server Lines: 45 Message-ID: References: <5272a2cd-70f2-4277-ada0-4ebf99f87f87@googlegroups.com> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.os.msdos.programmer:1290 On Thu, 27 Feb 2014 17:33:08 -0500, fknoop@yahoo.com wrote: > When I try to run a program compiled and linked with WATCOM DOS4G on a > PC with Windows 8.1 it fails with the message: program is not compatible > with this version of Windows, which is 8.1. > > Does anyone know why and how to work around this? > The program is compiled for MS-DOS using a DPMI host. DOS support is no longer available or very limited with modern versions of Windows. I'm not sure about 8 or 8.1, but Windows 7 and Vista still support Windows PE console applications. If you run a Windows system tool at the command prompt, that's what you're seeing. But, the console window no longer has support for DOS applications, like it did for earlier versions of Windows, although it looks the same. There are some patches and fixes available, but I'm not familiar with them. Did you compile this? If so, you can try recompiling the application as a Windows PE console application with OpenWatcom. That may work if it's generic C code, and not depedent on any DPMI calls. If the application was coded specifically to use a DPMI host, it would need to be recoded to not use DPMI in order to recompile it as a PE application. I believe OW supports Windows PE, but if not, there are many other Windows C compilers available, MinGW, Cygwin, Pelles C, LCC-Win32, Ladsoft CC386, etc. If you didn't compile it, then your options are to use a DOS emulator or PC emulator or DOSBox. DOSBox is a leading simulator, not emulator. It doesn't fully emulate DOS. It is intended for use with games. Officially, DOSBox doesn't support DPMI. But, it may work if you have DOS4G available with your application. It seems to execute DPMI hosts acceptably well. A project related to MAME arcade emulator, known as MESS, emulates computers. It has a PC emulator which emulates an entire IMB class PC, such as IBM PC, XT, or AT. This allows DOS to run and therefore the application. There are many other PC emulators available, e.g., Bochs, QEMU, VMWare, etc. VMWare seems to be the leading one. You could also use a Linux machine with DOSEmu and FreeDOS. FreeDOS provides the DOS. DOSEmu provides the "DOS box" or console window like in Windows. Rod Pemberton