VOGONS


First post, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

https://sourceforge.net/p/freedos/news/2021/0 … s-31-on-freedos
https://www.youtube.com/watch?v=35OQjLYdvJ0

Can you run Windows 3.1 on FreeDOS? Until now, the answer was no. But thanks to recent work on the FreeDOS kernel, now you can! Check out Jeremy's video, showing the latest FreeDOS kernel running Windows 3.1 in Enhanced and Standard mode. More info from Jeremy about the updated kernel: "I haven't pushed the changes to the public GitHub repository yet as there are still some rough edges to fix (all the changes are technically there, just in the old unstable branch). I will make a test version (with source) available later this week along with steps to run Windows. ... For the technical aspect - the changes are minimal to the kernel, added support for a few int 2F function calls that were never merged in was about all it took. All significant changes behind a WIN31SUPPORT #ifdef so doesn't need to be compiled in if unwanted." Thanks Jeremy!

DOSBox Compilation Guides
DosBox Feature Request Thread
PC Game Compatibility List
How To Ask Questions The Smart Way
Running DRM games offline

Reply 1 of 15, by Caluser2000

User metadata
Rank l33t
Rank
l33t

Kawl bananas.

There's a glitch in the matrix.
A founding member of the 286 appreciation society.
Apparently 32-bit is dead and nobody likes P4s.
Of course, as always, I'm open to correction...😉

Reply 2 of 15, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie

I know that it is a proof of concept, but one thing that I didn't see anywhere in those links is whether permanent swap file and/or 32-bit file access works when using Windows 3.1 on FreeDOS. IIRC, the I/O performance will be slower if either of them are not supported when running Windows 3.x, especially on period-correct systems. Perhaps a CF card there could help there a bit, though.

Reply 3 of 15, by digger

User metadata
Rank Oldbie
Rank
Oldbie

In addition to Jeremy's patches, for Windows 3.x to work in 386 Enhanced mode under FreeDOS, you'll have to use Microsoft's EMM386 with FreeDOS, since JEMM doesn't currently support GEMMIS.

Unfortunately, the JEMM maintainer isn't keen on implementing this any time soon. It would be nice if somebody with the necessary skills would be willing to step up to the plate for this.

Reply 4 of 15, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

But really it is only the effort and fun of it. Because Windows 3.1 goes with MS-DOS 6.22 like a horse and carriage. And if you really need FAT32 then use that patched MS-DOS 7.1. But nice to see, people are trying and succeeding something in the DOS world.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.

Reply 5 of 15, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

So, after 20+ years of development, FreeDOS was still unable to run one of the most common DOS programs... and actually, it still can't run it.
Considering how long it's taking to clone such a simple OS as DOS... there's no hope for ReactOS, ever.
Sad, but true.

Reply 7 of 15, by LSS10999

User metadata
Rank Member
Rank
Member

This looks very promising. But it seems the video was taken using a relatively period-correct VM configuration for disks, RAM size and such, and is a FAT16/186 kernel.

... so I can't tell if this will work on a relatively modern system with FAT32/386 kernel and/or with more RAM than Win3.x allows (the RAM can be worked around by masking excessive RAM with tools like HIMEMX or XMSDSK, though).

But still, this answered why all my previous attempts to get Win3.x working with FreeDOS 1.2/1.3rc ended in failure. It was never supported to begin with, until now.

Reply 9 of 15, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

Yep, these are nice pet projects, that really never go past alpha/beta stage. Mainstream computer operating systems moves on Windows 11, 12 ,13..., MacOS "Wolverine" "Tasmanian Devil" (oh.... ok just googled, they now use mountains, really do not care for that TOY) or something like that, and millions of millions Linux/FreeBSD distributions.(That's why I still have never moved to Linux, because there is not a definitive best distribution for average Joe, well maybe Ubuntu, because it is the only one that works with our countrys ID card system) And retro enthusiasts all have their copies of DOS, Widows, OS/2 and what not..... Well it is nice to see, that programmers are busy doing something in the retro realm, but that's it 😀

Grzyb wrote on 2021-08-06, 05:57:

So, after 20+ years of development, FreeDOS was still unable to run one of the most common DOS programs... and actually, it still can't run it.
Considering how long it's taking to clone such a simple OS as DOS... there's no hope for ReactOS, ever.
Sad, but true.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.

Reply 10 of 15, by carlostex

User metadata
Rank l33t
Rank
l33t

I found most problems with FreeDOS could be solved by replacing common DOS drivers, like memory managers, CD drivers, etc....

However there are some games that fail completely, due to (my suspicion, not confirmed) kernel incompatibility. I suspect some INT functions might not be implemented properly. Some DSI games, Grand Prix Circuit, The Cycles or even Test Drive 2 fail to run.

There's a version of Alone in Dark 2, not sure if Floppy or CD that fails too. And this is an old issue. I found that someone reported Alone in the Dark back in 2006 or so, and its still the same.

As much as i would love to switch to FreeDOS, i just can't.

Reply 11 of 15, by LSS10999

User metadata
Rank Member
Rank
Member

A bump on this. Guess the latest kernel CI build doesn't really have Win3X stuffs built-in (WIN31SUPPORT not defined by default).

No wonder I kept failing to get Windows running with the CI builds (aside from finding ways to limit available memory).

Guess I'll have to figure out how to build a kernel myself with WIN31SUPPORT defined...

Reply 12 of 15, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Sad to hear. :( It makes me feel the FreeDOS dude has an antipathy against Windows of some sort.

Edit: Or that JEMM dude, not sure.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 13 of 15, by LSS10999

User metadata
Rank Member
Rank
Member

Unfortunately something's still missing... with -DWIN31SUPPORT I could not compile even though with a correct build environment.

The build process simply complains about those newly added stuffs being "undefined references". 🙁

I've filed an issue regarding the question. Don't know if this requires a Windows machine, as this flag is mentioned only in build.bat but not in makefiles for other platforms...

Reply 14 of 15, by digger

User metadata
Rank Oldbie
Rank
Oldbie

By the way, there are two FreeDOS mailing lists, one for users and one for developers. I've found the community in both to be quite approachable and helpful.

I believe there was recently a discussion on one of them about Windows 3.x support, including said patches.

I think the best chance at getting Windows 3.x support mainlined in FreeDOS would be to engage with the community and the maintainers there.

See https://www.freedos.org/lists/

Reply 15 of 15, by LSS10999

User metadata
Rank Member
Rank
Member

Never mind. I managed to get the OpenWatcom variant to build. GCC variant currently doesn't compile.

Need to set -DWIN31SUPPORT for both ALLCFLAGS and NASMFLAGS. For some reasons the latter is not documented in config.mak but in somewhere else.