What is the FreeBSD situation?

Patrick Schluter Patrick.Schluter at bbox.fr
Mon Nov 6 15:44:22 UTC 2017


On Sunday, 5 November 2017 at 20:28:38 UTC, Walter Bright wrote:
> On 11/5/2017 3:13 AM, Patrick Schluter wrote:
>> On Sunday, 5 November 2017 at 09:17:37 UTC, Walter Bright 
>> wrote:
>>> I run dmd regularly on an XP box, but that just means dmd 
>>> itself runs on XP. (I converted the front end of DMC++ to D, 
>>> using DMD in -betterC mode, and XP is the last operating 
>>> system that supports DOS programs. XP has the DOS DMC++ test 
>>> suite on it.)
>>>
>> I don't think that's true. It's a 32bit/64bit division, not a 
>> Windows version thing. A 32 bits installation can run 16 bits 
>> and 32 bits programs, a 64 bits version can run natively 32 
>> bits and 64 bits programs. None can run all 3 modes natively.
>
> Is that an issue with the CPU, or the operating system?

CPU officially V86 is not supported in 64 bit mode. But I read a 
long time ago in c't that it was technically possible to invoke 
V86 mode when running 32 bit code in loing mode, but that it was 
quite tricky and required quite some planning to do in all cases 
(page table tricks [1]). Microsoft decided to not do these kind 
of tricks and allows only V86 mode in 32 bits installations.
Furthermore, neither AMD not Intel really document that it is 
possible and it could be that future version of the CPU will not 
allow for it (the issue with VME mode in Ryzen seem to show that 
the manufacturers test these exotic legacy modes less and less 
[2][3]).

>
>> I know with certainty that Windows 8.1 32 bits installation 
>> could still run DOS and Windows 16 bits apps. I haven't seen 
>> evidence to the contrary for Windows 10.
>> Windows XP was the last version that was installed massively 
>> in 32 bits mode.
>>  From Vista on, the proportion of 32 bits installations (and 
>> thus losing 16 bits support) dwindeled.
>
> Windows 7  64 bit will not run 16 bit programs. Try it and you 
> get a dialog box "Unsupported 16-Bit Application". I haven't 
> tried Win 7 32, but some googling around shows you are correct.

The 64 bit versions (not the Home editions) do support 16 bit but 
only by using full fledged virtual machine "Virtual PC", but it's 
like running on a separate machine.

[1]: 
https://groups.google.com/forum/#!msg/comp.lang.asm.x86/wfK2LjhCqjw/XoeBgYWyv5EJ
[2]: http://www.os2museum.com/wp/vme-broken-on-amd-ryzen/
[3]: http://www.os2museum.com/wp/vme-fixed-on-amd-ryzen/


More information about the Digitalmars-d mailing list