16 bit C compiler for Win16 / DOS / OS/2 subsystems

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Owen
Posts: 8
Joined: Sat Dec 11, 2004 6:03 pm
Contact:

Post by Owen »

A 64-Bit OS CANNOT run 16-Bit apps.

Its a chip limitation - Not a OS.

You CAN run 16-Bit apps in a 32-Bit or 16-Bit OS however.

It would have to be compiled out of the 64-Bit version
Owen Shepherd - http://www.humgun.com
mf
Developer
Posts: 368
Joined: Mon Dec 27, 2004 2:37 pm
Location: Eindhoven, NL
Contact:

Post by mf »

Owen wrote:A 64-Bit OS CANNOT run 16-Bit apps.

Its a chip limitation - Not a OS.
JIT recompilation anyone?
SomeGuy
Posts: 586
Joined: Mon Nov 29, 2004 9:48 am
Location: Marietta, GA

Post by SomeGuy »

Owen wrote:A 64-Bit OS CANNOT run 16-Bit apps.

Its a chip limitation - Not a OS.
Does anybody have any specifics regarding this?

According to the AMD64 specs a 64 bit OS can run 32-bit apps in a "compatibility mode" and then any 32-bit apps can still switch the processor to 16-bit / vdm mode.

In theory then it still should be possible to execute 16-bit apps although you would then be thunking up through multiple levels. Although it is designed to do this there could be some problem preventing this from working.

Of course just because Windows 64-bit dosn't support it dosn't mean it isn't possible. Microsoft probably just dosn't want to support it because it might have to be implemented differently on non-AMD CPUs.
jnolles
Posts: 19
Joined: Sat Nov 27, 2004 2:24 pm
Location: Fryslân

Post by jnolles »

If Windows '9x runs on a AMD 64bit, then it SUPPORTS 16bit (Because '9x first starts 16bits DOS).... someone please try
oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

Let this die.

Post by oiaohm »

[quote]A 64-Bit OS CANNOT run 16-Bit apps.[/quote]

This is not true out of date infomation. Dosemu and Wine runs on a linux 64 bit systems runing Amd64 chip or EMT64 match.

The work around is completely Annoying. You have a 2 sets of libs, 32 and 64 bit libs to pull it off note people are trying to reduce this.

Even so Qemu has been used to run Wine on a PPC linux ie 64 bit running a 32 bit program that runs 16 bit program(final option a emulator can get passed any processor limit at a speed cost).

Microsoft says that 64 bit OS cannot run 16 bit apps but then there 64bit windows runs 16 bit installers. There is problems here it can be done but they don't want to. Another case of don't listen to Microsoft FUD. Reason is how complex it is to pull off and how much it will cost.

Yep Windows 98 SE will run on a AMD 64 bit machine but you try finding one with under 256 megs of ram so the installer works.
Floyd
Posts: 300
Joined: Sat Nov 27, 2004 7:45 am
Location: The frozen part of the USA

Post by Floyd »

Owen wrote:A 64-Bit OS CANNOT run 16-Bit apps.

Its a chip limitation - Not a OS.

You CAN run 16-Bit apps in a 32-Bit or 16-Bit OS however.

It would have to be compiled out of the 64-Bit version
Then why am I able to boot to DOS on my AMD 64 3000+ system?
(these are my Windows 98 disk, for diagnostics and DrDOS for partition magic)
pax mei amici amorque et Iesus sacret omnia
navaraf
Developer
Posts: 38
Joined: Sun Nov 28, 2004 2:29 pm
Location: Czech Republic
Contact:

Post by navaraf »

Floyd wrote:
Owen wrote:A 64-Bit OS CANNOT run 16-Bit apps.

Its a chip limitation - Not a OS.

You CAN run 16-Bit apps in a 32-Bit or 16-Bit OS however.

It would have to be compiled out of the 64-Bit version
Then why am I able to boot to DOS on my AMD 64 3000+ system?
(these are my Windows 98 disk, for diagnostics and DrDOS for partition magic)
The AMD64 processor has two modes:
- Long Mode which is further subdivided to 64-bit mode and Compatibility mode (32-bit). 64bit OSes run in Long Mode and there's no meaningful way to execute 16-bit code here (without emulator or dynamic translator like QEMU).
- Legacy Mode where the processor acts like 32-bit and support all the fancy feature like VM86 mode (running 16-bit code in fake real mode).
navaraf
Developer
Posts: 38
Joined: Sun Nov 28, 2004 2:29 pm
Location: Czech Republic
Contact:

Post by navaraf »

mjs wrote:BTW: When developing a 64bit Windows clone, you cannot use GCC because 64 bit PEs aren't supported (yet).
I'm working in my free time on port of MinGW to Win64. It's going slowly, but it's not impossible.
navaraf
Developer
Posts: 38
Joined: Sun Nov 28, 2004 2:29 pm
Location: Czech Republic
Contact:

Re: Let this die.

Post by navaraf »

oiaohm wrote:Microsoft says that 64 bit OS cannot run 16 bit apps but then there 64bit windows runs 16 bit installers. There is problems here it can be done but they don't want to. Another case of don't listen to Microsoft FUD. Reason is how complex it is to pull off and how much it will cost.
It cannot run 16-bit applications *natively* (without ugly hacks which would slow down the system to crawl...anyone remembers DOS box on OS/2 1.x? ;-) ). Of course you can use emulator to run the programs, but instead Microsoft taken another solution and that was to add special "hack" to run *specific* 16-bit installers (like the one used by Office 97).
oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

Post by oiaohm »

It cannot run 16-bit applications *natively* (without ugly hacks which would slow down the system to crawl...anyone remembers DOS box on OS/2 1.x? Wink
Amd64
real -- legacy -- long
16bit 32bit pm 64bit pm
16bit pm 32bit pm (compatibility)
vm86 16bit pm (compatibility)

Please note the 16bit pm in long mode. As far as I know Win3.11 apps don't require vm86 only 16 bit pm so there sould be no problems.

And if vm86 is done by software means perforance loss will not be that great to not be able to emulatate programs at the past speeds.
oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

oPPS

Post by oiaohm »

Amd64
long 64bit pm 32bit pm (compatibility) 16bit pm (compatibility)
legacy 32bit pm 16bit pm vm86
real 16bit
Nice formated table went to hell.
Blaskowicz
Posts: 26
Joined: Sun Mar 27, 2005 9:19 am

Post by Blaskowicz »

Floyd wrote:
Owen wrote:A 64-Bit OS CANNOT run 16-Bit apps.

Its a chip limitation - Not a OS.

You CAN run 16-Bit apps in a 32-Bit or 16-Bit OS however.

It would have to be compiled out of the 64-Bit version
Then why am I able to boot to DOS on my AMD 64 3000+ system?
(these are my Windows 98 disk, for diagnostics and DrDOS for partition magic)
even better : your PC always starts in 16bit real mode anyway (for POST, BIOS setup and booting)

for the various modes of AMD64 processors I found this : http://www.answers.com/topic/amd64
A 64bit OS can indeed run 16bit programs.. if the OS maker did bother.
Blaskowicz
Posts: 26
Joined: Sun Mar 27, 2005 9:19 am

Re: Let this die.

Post by Blaskowicz »

navaraf wrote:
oiaohm wrote:Microsoft says that 64 bit OS cannot run 16 bit apps but then there 64bit windows runs 16 bit installers. There is problems here it can be done but they don't want to. Another case of don't listen to Microsoft FUD. Reason is how complex it is to pull off and how much it will cost.
It cannot run 16-bit applications *natively* (without ugly hacks which would slow down the system to crawl...anyone remembers DOS box on OS/2 1.x? ;-) ). Of course you can use emulator to run the programs, but instead Microsoft taken another solution and that was to add special "hack" to run *specific* 16-bit installers (like the one used by Office 97).
I used once an old IBM PS/2 with OS/2 2.11, 486SLC 20 with 15MB RAM and HDD SCSI (bought it because it was the equivalent of 15 euros with IBM 14" screen, keyb and mouse :) . I really used only the keyboard and screen.)
It had no problems playing Frontier : Elite 2 (a great 3D game on that shitty processor)

I remember reading that windows used a clever "virtual machine but not quite" which wasted very little RAM whereas OS/2 had to load a full blown VM with memory hungry stuff for each DOS app. But nowadays RAM would be less of a concern.

OS/2's DOS subsystem (also used for win16?? but you need win 3.1) is even known for being more compatible than Win9x (and futhermore WinNT) :)
Floyd
Posts: 300
Joined: Sat Nov 27, 2004 7:45 am
Location: The frozen part of the USA

Post by Floyd »

even better : your PC always starts in 16bit real mode anyway (for POST, BIOS setup and booting)

for the various modes of AMD64 processors I found this : http://www.answers.com/topic/amd64
A 64bit OS can indeed run 16bit programs.. if the OS maker did bother.
Thanks for pointing that article to me. I figured 16-bit apps would be able to run; just from the fact that there's still so much of it out there.
Using Long Mode, a 64-bit OS can run 32-bit applications and 64-Bit applications simultaneously. Also, x86-64 also includes native support for running 16-bit x86 applications; Microsoft explicitly left out 16-bit program support in Windows XP 64-bit Edition due to the problems in getting 16-bit x86 code to run via their WoW64 Emulator.
pax mei amici amorque et Iesus sacret omnia
Craig
Posts: 9
Joined: Wed Mar 02, 2005 2:03 am
Location: Boulder, CO
Contact:

Post by Craig »

IF there was a need to use a 16-bit compiler, you'd want to use openwatcom -- the freedos community had been waiting on that for a long time to avoid using proprietary and unsupported compilers.

However, AFAIK, this isn't an issue for ReactOS as the DOS and Win16 subsystems would sit on top of the 32-bit (and later 64-bit) kernel code and all the functionality will be emulated like in windows NT.
Post Reply

Who is online

Users browsing this forum: DotBot [Crawler] and 2 guests