Mail Archives: djgpp/2012/05/18/22:45:06

X-Authentication-Warning: mail set sender to djgpp-bounces using -f
From: Rugxulo <rugxulo AT gmail DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: incompatible
Date: Fri, 18 May 2012 19:35:32 -0700 (PDT)
Lines: 63
Message-ID: <>
References: <442a0 DOT 580acc3b DOT 3ce7635b AT aol DOT com> <83txzdstc1 DOT fsf AT gnu DOT org>
<8c35d644-ede1-4b87-8c60-ebf6a0db0513 AT hq4g2000vbb DOT googlegroups DOT com> <jp6uks$g27$1 AT speranza DOT aioe DOT org>
Mime-Version: 1.0
X-Trace: 1337395031 23726 (19 May 2012 02:37:11 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: Sat, 19 May 2012 02:37:11 +0000 (UTC)
Complaints-To: groups-abuse AT google DOT com
Injection-Info:; posting-host=; posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16
(KHTML, like Gecko) Chrome/10.0.630.0 Safari/534.16,gzip(gfe)
Bytes: 4038
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
X-MIME-Autoconverted: from quoted-printable to 8bit by id q4J2j1DP010961
Reply-To: djgpp AT delorie DOT com


On May 18, 8:57pm, "Rod Pemberton" <do_not_h DOT  DOT  DOT  AT notemailntt DOT cmm>
> "Rugxulo" <rugx DOT  DOT  DOT  AT gmail DOT com> wrote in message
> news:8c35d644-ede1-4b87-8c60-ebf6a0db0513 AT hq4g2000vbb DOT googlegroups DOT com...
> > 64-bit is a whole other can of worms because, as mentioned, it lacks
> > direct support for 16-bit stuff.
> Do we need 16-bit stuff though for 64-bits?


> We need 16-bit stuff for *DOS*... Win7 64-bit still has console windows,
> yes?

Yes. But ...

> DJGPP produces an 32-bit executable in COFF and then stubs it with a 16-bit
> stub. So, the 32-bit executable should be able to run in whatever "console"
> window is still available in Windows with a working loader (COFF) or the
> correct executable format (PE ... ?).

No. The BIOS and DOS APIs, not to mention DPMI, are required. I know
you already know this. But Win64 lacks all of those. So just loading
the file or avoiding the tiny 16-bit stub won't fix it when it tries
calling DPMI int 31h, 300h to call DOS file API int 21h, 3D00h or int
21h, 9 (which calls the BIOS).

Sure, you can emulate all that, but that's the problem. It's not so
much just loading it, it's minimizing the DOS and BIOS parts. Things
like DOSBox have their own DOS and BIOS and video BIOS. VirtualBox has
its own BIOS and vBIOS too but relies on a real DOS (e.g. FreeDOS).

I wanted to say VBox used real BIOS or video card, but apparently not.
I ran Doom 1.9 shareware, but some of the textures were (barely)
messed up. Sound fx worked but not MIDI. All of this was under FreeDOS
guest with VT-X enabled!! So, surprisingly, DOSBox is actually better
(no texture messups, SB and MIDI) and faster. (But for other stuff
it's much much slower, e.g. p7zip 9.13, and it caps off at 64 MB max.)
DOSEMU is similarly fast, maybe faster fps (at least lots more than
native when I tested Hexen2) but lacked MIDI. Raw FreeDOS is fairly
fast too but only uses PC speaker sfx, heheh.

> If DJGPP produced a 64-bit
> executable, with the proper stub or loader, it should be able to execute
> 64-bits. However, then DJGPP is moving into Cygwin or Mingw Windows C
> compiler territory, away from DOS and Windows "console" ...

MS did this on purpose, sad to say. Maybe it wasn't nefarious, maybe
they just wanted to focus on Hyper-V (and VT-X) as a more universal
solution. But they've pretty much killed everything else (OS/2 1.x,
DOS, Win16). At least they "mostly" still support Win32, but that's
probably deprecated eventually also in favor of Metro/WinRT or C# .NET
or HTML5/JS or Win64 only (PE32+) or whatever.

Apparently (almost) nobody besides us wants to keep DOS apps alive.
They're focused on other things (tablets, smartphones, blah ...).

- Raw text -

  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019