Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Windows XP NTVMD on AMD Athlon and Pentium P4

31 views
Skip to first unread message

Guy Dawson

unread,
May 16, 2005, 6:35:58 AM5/16/05
to
We have some old DOS applications that we've been running on the Windows
XP DOS box as implemented by the NTVDM system.

Our usual PCs use AMD Athlons and all our applications run fine but when
we try try them on PCs using Intel P4s we get illegal instruction errors
from the NTVDM.

We've put an MS-DOS 6.22 disk in the PC with the P4 and the applications
then work fine.

Does anyone know about the internals of the NTVDM and why different
processors might cause different results with the same DOS application?

TIA!

Guy
-- --------------------------------------------------------------------
Guy Dawson I.T. Manager Crossflight Ltd
gn...@crossflight.co.uk

DOS Guy

unread,
May 16, 2005, 6:02:43 PM5/16/05
to

On 2005-05-16 Guy Dawson <gn...@crossflight.co.uk> said:

> We have some old DOS applications that we've been running on
> the Windows XP DOS box as implemented by the NTVDM system.
>
> Our usual PCs use AMD Athlons and all our applications run fine
> but when we try try them on PCs using Intel P4s we get illegal
> instruction errors from the NTVDM.
>
> We've put an MS-DOS 6.22 disk in the PC with the P4 and the
> applications then work fine.
>
> Does anyone know about the internals of the NTVDM and why
> different processors might cause different results with the
> same DOS application?
>
> TIA!
>
> Guy

Don't know specifically, but speculating: it's likely due
either to the hardware and the configuration of your partic-
ular Pentium 4 machines, or to what's going on internally
within the DOS programs.

Mikro$loth is tightly tied with Intel -- so the chances of a
P4 'processor incompatibility' in NTVDM are slim.

It's a known and documented fact that the 'DOS' emulation in
NTVDM is not perfect -- but this doesn't appear to be causing
the problem in your case.

The P4 has a documented eccentricity with 'self-modifying'
code. A program which self-modifies its own code during run-
time causes the P4 to flush its hardware cache.

This behavior is specific to the P4 only, and can potentially
cause problems under certain circumstances.

Perhaps the error being generated by NTVDM is caused by a
cache-flush in the P4 when it encounters self-modifying code
within certain DOS programs.

Just a guess. Good luck!

Guy Dawson

unread,
May 18, 2005, 4:05:56 AM5/18/05
to
DOS Guy wrote:
> On 2005-05-16 Guy Dawson <gn...@crossflight.co.uk> said:
>
> > We have some old DOS applications that we've been running on
> > the Windows XP DOS box as implemented by the NTVDM system.
> >
> > Our usual PCs use AMD Athlons and all our applications run fine
> > but when we try try them on PCs using Intel P4s we get illegal
> > instruction errors from the NTVDM.
> >
> > We've put an MS-DOS 6.22 disk in the PC with the P4 and the
> > applications then work fine.
> >
> > Does anyone know about the internals of the NTVDM and why
> > different processors might cause different results with the
> > same DOS application?
> >
> > TIA!
> >
> > Guy
>
> Don't know specifically, but speculating: it's likely due
> either to the hardware and the configuration of your partic-
> ular Pentium 4 machines, or to what's going on internally
> within the DOS programs.

The PCs are the first ones we've used in a long time that
have Intel chips in them. The DOS applications are written
in Microsoft Quick Basic 7.

> Mikro$loth is tightly tied with Intel -- so the chances of a
> P4 'processor incompatibility' in NTVDM are slim.

So it's reasonable to assume the NTVDM is working as designed.

> It's a known and documented fact that the 'DOS' emulation in
> NTVDM is not perfect -- but this doesn't appear to be causing
> the problem in your case.
>
> The P4 has a documented eccentricity with 'self-modifying'
> code. A program which self-modifies its own code during run-
> time causes the P4 to flush its hardware cache.

I can't say for sure that Quick Basic 7 does or does not create
self modifying code. Is it that clever (or stpuid)?

We did try the same applications with the P4 PCs booted into
MS-DOS 6.22 and the program ran fine. The problems only start
when Windows XP and the NTVDM get between the processor and
the DOS applications.

> This behavior is specific to the P4 only, and can potentially
> cause problems under certain circumstances.
>
> Perhaps the error being generated by NTVDM is caused by a
> cache-flush in the P4 when it encounters self-modifying code
> within certain DOS programs.

Perhaps.

> Just a guess. Good luck!

Understood & thanks.

Guy
-- ---------------------------------------------------------------------
Guy Dawson @ SMTP - 3...@cuillin.org.uk // ICBM - 6.15.16W 57.12.23N 986M
4.4>5.4 4.4>5.4 4.4>5.4 The Reality Check's in the Post! 4.4>5.4 4.4>5.4

dixiedog

unread,
May 21, 2005, 6:58:08 PM5/21/05
to
On 16 May 2005, Guy Dawson <gn...@crossflight.co.uk> filed the following
report in comp.os.msdos.programmer:

It might be because many DOS programs directly access the hardware,
especially games, for maximum speed of execution. And that is not
allowed in NT-based Windows (NT,2K, XP, etc). It'll cause an exception.
However, if these are just run-of-the-mill apps, that's probably not too
likely. It's possible though. So what you can do is try to run the DOS
app in a real DOS emulator instead of a "DOS virtual machine," such as
DOSBox
(http://dosbox.sourceforge.net/) and see if it works.

Regards,
dd
--
Replace 'yank' with 'dixie' to email.

Guy Dawson

unread,
May 25, 2005, 6:41:44 AM5/25/05
to
dixiedog wrote:

> It might be because many DOS programs directly access the hardware,
> especially games, for maximum speed of execution.

I don't think that's the case here. The programs in question are QB7.1
business applications.

> And that is not
> allowed in NT-based Windows (NT,2K, XP, etc). It'll cause an exception.

Agreed. The programs run fine under Windows XP with an AMD Athlon processor
so I don't think they're doing anything that Windows XP objects to.

> However, if these are just run-of-the-mill apps, that's probably not too
> likely.

Yup!

> It's possible though. So what you can do is try to run the DOS
> app in a real DOS emulator instead of a "DOS virtual machine," such as
> DOSBox
> (http://dosbox.sourceforge.net/) and see if it works.

Thanks for the pointer. I had a look and I don't think the networking
support is good enough. We're running the QB applications against a
Netware server using IPX...

Hoth4Pznl

unread,
May 26, 2005, 3:03:01 PM5/26/05
to

"Guy Dawson" <gn...@crossflight.co.uk> wrote in message
news:d71kpa$l37$1$8302...@news.demon.co.uk...

> dixiedog wrote:
>
> > It might be because many DOS programs directly access the hardware,
> > especially games, for maximum speed of execution.
>
> I don't think that's the case here. The programs in question are QB7.1
> business applications.
>
> > And that is not
> > allowed in NT-based Windows (NT,2K, XP, etc). It'll cause an exception.
>
> Agreed. The programs run fine under Windows XP with an AMD Athlon
processor
> so I don't think they're doing anything that Windows XP objects to.
>

DEP (Data Execution Prevention) is on new Pentium 4 cpus, it can be turned
off in XP.


Guy Dawson

unread,
May 27, 2005, 11:05:13 AM5/27/05
to
Hoth4Pznl wrote:

>
> DEP (Data Execution Prevention) is on new Pentium 4 cpus, it can be turned
> off in XP.

Now there's a thought...

Guy, who is off to check

Guy Dawson

unread,
Jun 1, 2005, 10:25:14 AM6/1/05
to
Guy Dawson wrote:
> Hoth4Pznl wrote:
>
>>
>> DEP (Data Execution Prevention) is on new Pentium 4 cpus, it can be
>> turned
>> off in XP.
>
>
> Now there's a thought...
>
> Guy, who is off to check

It was already off so no luck there.

Guy

0 new messages