By registering with us, you'll be able to discuss, share and exchange private messages with other members of our community.

SignUp Now!

MS-DOS Player for Win32-x64

This is an MS-DOS emulator that runs on Win32-x64 command prompt.

16bit MS-DOS compatible commands can be executed on Win32-x64 envrionment.

Last update was May 10, 2020. Tested and works on Windows 10 64-bit.

I can now run the 16-bit LIST.COM in a 64-bit TCC;
e:\dosbox\utils>msdos.exe LIST.COM

I can create a "64-bit version" of the 16-bit LIST.COM;
e:\dosbox\utils>msdos.exe -cLIST64.EXE LIST.COM
'LIST64.EXE' is successfully created

This is from the README.TXT file;
----- Convert Command File To 32bit Or 64bit Execution File

You can convert a 16bit command file to a single 32bit or 64bit execution file
by embeding a command file to the msdos.exe.

For exmaple, you can convert LIST.COM by this command:

    > msdos -cLIST32.EXE LIST.COM

and you can simply run LIST32.EXE without msdos.exe.

I also created a 4DOS64.EXE, which I can run in TCC;
e:\dosbox\4dos>E:\dosbox\utils\msdos.exe -c4DOS64.EXE 4dos.com
'4DOS64.EXE' is successfully created

A bit of a problem when EXITing 4DOS;
4DOS server error -- Attempt to exit from root shell
Fatal error -- reboot the system or restart the session
but it matters not, as I won't need to run 4DOS.COM since I have TCC.EXE

Nice to be able to run my old utilities again. Sharing this with others who may also be interested.

How is this different from vDos? www.vdos.info
From readme.txt:

MS-DOS Player for Win32-x64 console

----- What's This

This is MS-DOS emulator running on Win32-x64 command prompt.
16bit MS-DOS compatible commands can be executed on Win32-x64 envrionment.

This emulator inherits the environment variables from the host Windows,
and a target command can access the host's file path directly.

So you can execute 16bit MS-DOS compatible commands on your 64bit Windows
in the same sence as you did on 32bit Windows, and you do not need to copy
any files to/from a virtual machine (VMware, Virtual PC, XP mode, or others).

NOTE: This emulator DOES NOT support Win16 execution files.

This emulator aims to support character user interface utilities, for example
file converters, compilers, assemblers, debuggers, and text editors.

NOTE: This emulator DOES NOT support graphic/sound hardwares and DOES NOT
aim to support game softwares. I recommend DOSBOx for this purpose.


OPH. 2021-05-07 19:48
MS-DOS Player (i486) for Win32-x64 console


MSDOS [-b] [-c[(new exec file)] [-p[P]]] [-d] [-e] [-i] [-m] [-n[L[,C]]]
      [-s[P1[,P2[,P3[,P4]]]]] [-sd] [-sc] [-vX.XX] [-wX.XX] [-x] [-a] [-l]
      (command) [options]

        -b      stay busy during keyboard polling
        -c      convert command file to 64bit execution file
        -p      record current code page when convert command file
        -d      pretend running under straight DOS, not Windows
        -e      use a reduced environment block
        -i      ignore invalid instructions
        -m      restrict free memory to 0x7FFF paragraphs
        -n      create a new buffer (25 lines, 80 columns by default)
        -s      enable serial I/O and set host's COM port numbers
        -sd     enable DTR/DSR flow control
        -sc     enable RTS/CTS flow control
        -v      set the DOS version
        -w      set the Windows version
        -x      enable LIM EMS, VCPI, and XMS
        -a      disable ANSI.SYS
        -l      draw box lines with ank characters

Works fine on my system;
     _x64: 1
   _admin: 1
_elevated: 1

TCC  30.00.22 x64   Windows 10 [Version 10.0.19044.3086]

Try running it as msdos.exe -d -e list.com and see if that works.

Which msdos.exe are you using?

I'm using the one from msdos\binary\i486_x64\


I used the one from v30_x64 but it wasn't really clear for me which one to use.

The msdos.exe -d -e list.com did successfully run list.com! Wow! it's been ages! I was just looking for a replacement last week haha. But then realized it's an internal command now.
But yea, the -c convert doesn't result in a runnable EXE, it just says "too many environments". Would be nice to be able to successfully convert. I wonder what's wrong. Am I using the wrong version?
It would be best to read through the msdos documentation (msdos\readme.txt), and set your dos environment up appropriately.

For example, I have the following environment variables set in TCC;
E:\Utils>set ms*

This tells msdos.exe that I am using the COMMAND.COM that is included with FreeDOS.

It also tells msdos.exe that my DOS path is e:\dosbox\utils

I have no problems creating LIST64.EXE from LIST.COM, and I get no errors from running it;


The C++ source code is included, so you could step through the code using Visual Studio, and see how it does what it does

Did you try creating the LIST64.EXE with the -d and -e switches?
E:\...\utils>msdos -d -e -cLIST64.exe LIST.COM
'LIST64.exe' is successfully created

You stated that you are using the v30_x64 version.

That version emulates NEC V30.

Do you want to emulate NEC v30?

I am using the i486_x64 emulator.

From the readme.txt;
This archive contains 12 executable binaries:

    i86_x86     Emulates 8086 and supports both 32bit/64bit Windows
    i86_x64     Emulates 8086 and supports only 64bit Windows
    i286_x86    Emulates 80286 and supports both 32bit/64bit Windows
    i286_x64    Emulates 80286 and supports only 64bit Windows
    i386_x86    Emulates 80386 and supports both 32bit/64bit Windows
    i386_x64    Emulates 80386 and supports only 64bit Windows
    i486_x86    Emulates 80486 and supports both 32bit/64bit Windows
    i486_x64    Emulates 80486 and supports only 64bit Window
    v30_x86     Emulates NEC V30 and supports both 32bit/64bit Windows
    v30_x64     Emulates NEC V30 and supports only 64bit Windows
    ia32_x86    Emulates IA32 and supports both 32bit/64bit Windows
    ia32_x64    Emulates IA32 and supports only 64bit Windows