Mail Archives: djgpp/2012/05/18/22:45:06
Hi,
On May 18, 8:57 pm, "Rod Pemberton" <do_not_h DOT DOT DOT AT notemailntt DOT cmm>
wrote:
> "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?
No.
> 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 -