# DOS on XP? (For Experts Only!)



## imnprsd (Sep 25, 2005)

Calling on all you experts. What's the big deal about running DOS with XP? This seems simple enough but apparently it's not. Can any one come up with a simple solution that us non-experts can follow; i.e., no DosBox, No VM this or that... Just plain work arounds that allow you to run true 16 bit DOS on a 32bit machine (XP with an NT backbone).


----------



## Elvandil (Aug 1, 2003)

There should be no problem running 16-bit DOS programs in XP. Though XP has no DOS, it supports DOS programs, including 16-bit, through its emulator.

You asked for a "solution". What is the "problem"?


----------



## imnprsd (Sep 25, 2005)

The problem is that I need to access two serial ports with this BMW diagnostic tool from CarSoft. It only appears to work with older PCs (95/98/me) because they are True-DOS based. Moreover, it only appears to work when the old PC motherboard has 2 serial ports installed or when the box uses a ISA adapter (not PCI). 

Note: The software will not work with a PCI-serial port adapter. Why? I think it's because the program wants to find a COM1 and COM2 address and interrupt. 

Anyway, it's hard to locate these old PCs, especially with 2 serial ports -- so I would like to know how to run TRUE-DOS on my EP box.... where I do have 2 serial ports installed on the XP motherboard in addition to a COM1 & COM2. 

For further clarification, the PCI-Serial card seem only to be set up for COM4 & COM5 and that's probably why the diagnostic software will not work. 

So... How can I trick the XP (NT) OS into running True DOS? None of the emulators seem to work. Is it impossible?


----------



## Elvandil (Aug 1, 2003)

You won't be running DOS in XP in any form. But why not just create yourself a small partition and install DOS to it?

DOS 7.1 installer:

http://www.ddvip.net/OS/dos/index2/soft/dos71scd.zip (CD)
or
http://www.ddvip.net/OS/dos/index2/soft/dos71_1.zip (Floppy1)
http://www.ddvip.net/OS/dos/index2/soft/dos71_2.zip (Floppy2)

Another possibility is to use a CPU emulator. I run other operating systems and DOS apps in a small window in XP on the QEMU CPU Emulator. It works as well as VirtualPC or VMware in many cases, especially with the acceleration drivers installed.


----------



## kiwiguy (Aug 17, 2003)

Those issues usually come down to the manner that the software was coded, in that it tries to access the serial port registers directly and not via DOS interrupt calls. That fails in the XP DOS emulator it appears.

I also have some legacy software that has the same problem, for use on a laptop. 

I solved the problem by buying a spare laptop hard drive and swapping them over when I need to use the DOS software, as I installed DOS 6.22 on the spare Hard Drive. It allows normal RS232 register access where the XP DOS emulator refuses.


----------



## Elvandil (Aug 1, 2003)

Installing pure DOS seems like the easiest and best idea. But that depends what the goal is.

I have little experience with how emulated OS's handle hardware.


----------



## Squashman (Apr 4, 2003)

Heck, I probably got a few 486 and Pentium desktops and laptops that you can have if you want to pay for shipping.


----------



## imnprsd (Sep 25, 2005)

Okay.... So if I understand you correctly, XP emulates DOS and can not address the serial port registers my diagnostic software needs... so it can send the interrupts necessary to make the software work (which is basically a high or low signal). 

If that is right, is there a way to find out what address/registers my diagnostic software is looking for? ....How can I view the source code? ...Then perhaps I can go into XP's CMOS Setup and force the COM ports (that is set it up) for a specific register/address/IRQ???


----------



## Elvandil (Aug 1, 2003)

Maybe if you explained in more detail exactly what you are trying to do.

But the emulated DOS can indeed address ports. It doesn't just exist in a vacuum, but is intended to allow DOS applications to be used in the absence of true DOS.

Have you tried your app in the emulator?


----------



## Rockn (Jul 29, 2001)

Have you tried running the application in "Compatibility mode" for Win95 or other? The best soulution would be to install DOS on a seperate partition like mentioned earlier, and run it from there.


----------



## kiwiguy (Aug 17, 2003)

imnprsd said:


> Okay.... So if I understand you correctly, XP emulates DOS and can not address the serial port registers my diagnostic software needs... so it can send the interrupts necessary to make the software work (which is basically a high or low signal).
> 
> If that is right, is there a way to find out what address/registers my diagnostic software is looking for? ....How can I view the source code? ...Then perhaps I can go into XP's CMOS Setup and force the COM ports (that is set it up) for a specific register/address/IRQ???


The answer to the above would almost be guaranteed to be no.

Unless you have all the original commented source code (that the program was complied from) for the diagnostic application, and are skilled at machine code programming you cannot realistically reverse engineer the executable code.


----------



## carrotstix (Oct 22, 2005)

I run a legacy DOS apps on a Win XP machine using Microsoft's Vitual PC. Works great and even allows me to assign my laptop's modem to one of DOS's com ports.


----------



## DaveBurnett (Nov 11, 2002)

The problem is that the test equipment is NOT digital and the program monitors the ports in REAL time. This is never going to work in any emulation. I would be surprised if it worked when the ports are buffered.


----------

