On running dos executables on x64

Well it became necessary to make updates to one of my old projects, the Vgm player. And that happens to be built with a dos application SNASM68K. At this point I have fully migrated over to 64bits so this presented a small issue. How to run this application which Microsoft in their infinite retardation decided to no longer support. Their excuse; that amd64 lacks support for V86; is utter bullshit, I know for a fact that the Ntvdm code base supports x86 emulation.

Anyway I needed to run this application, one simple way would have been to use a VM but that is kind of shitty and inconvenient. There is an existing solution,  NTVDMx64 by Leecher1337. This is an x64 build of the official Ntvdm built from the leaked windows NT4 source code. I did not use this for two reasons, 1: its does not support xp/2k3. 2: I dislike how invasive the patch is to integrate it into CreateProcess, also it would have been significant work to adapt the patch for xp/2k3.

Another option. Reactos Ntvdm , this recreation of Ntvdm works on XP/2K3 and can be built in a standalone mode so does not require the invasive integration into CreateProcess. The disadvantage however is that without the CreateProcess integration one cannot start the dos executables in the normal way, all callers would need to be modified to start the dos application by proxy of ntvdm.exe

The solution: I really do not need system wide support for dos applications, I really only have one or two dos apps which I cannot replace, so why not just build ntvdm into each dos application, so that is what I did.  I have the modified the Reactos Ntvdm to load the dos application appended onto the end of the Ntvdm binary. This creates standalone x64 compliant dos applications.

dosEx64.exe – dos executable patcher
SNASM68K.exe – 64bit compatible

 

 

This entry was posted in Uncategorized. Bookmark the permalink.

4 Responses to On running dos executables on x64

  1. Zafer Balkan says:

    Just out of curiosity, have you ever contributed to ReactOS? Or, do you intend to make contributions?

    • admin says:

      I have never contributed to Reactos and I really don’t think I could. Reactos development is like trying to copy a painting but you are not allowed to look at the original even though its sitting right next to you and you can take a peek at any time. You are only legally allowed second hand descriptions and you have to pretend that you are duplicating it from those descriptions even though you can peek at any time, nobody would even know. I just cannot dance that dance.

Leave a Reply to admin Cancel reply

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