Yes, really it’s FreeDOS running Windows 386 Enhanced mode. For real.
perditionc posted this over on the freedos list:
Hello everyone, So it took me a bit longer than I planned, but below is the information needed to reproduce and links to sources. (Be kind, I know that the code needs more work.) To see it in action, from installing FreeDOS & Windows to running I posted an updated the video (about 4 minutes, sped up some stuff and cut some scenes down but its originally a single recording from first boot until the end)
Steps: download boot disk - http://server2.fdos.org/tests/fdos2043w.img contains: kernel *** requires patches, see below for source command.com (FreeCOM) fdisk format sys share edit have available Windows 3.1 install media (*** not provided ***) create a virtual machine (or have a compatible real computer) example has a 200MB hard drive with 32MB of memory and otherwise virtual box's Win 3.1 default settings. boot FreeDOS floppy fdisk create a primary partition, don't use FAT32, use all available space, ensure active reboot so kernel see new partition format format the C: drive and set label as desired fdisk /MBR install master boot record so hard drive is bootable sys C: install system boot record and files to C: partition copies kernel.sys and command.com to C: copy share.com c: copy EDIT.* C: so have available after install Windows Optional: take out (disconnect virtual) floppy from drive and reboot, ensure hard drive boots Optional: create a CONFIG.SYS and AUTOEXEC.BAT so not prompted with date and time Install Windows put in first Windows floppy and run SETUP follow prompts until complete, allow it to modify CONFIG.SYS and AUTOEXEC.BAT Optional: edit AUTOEXEC.BAT to load SHARE.COM (if you do not do this step, you must remember to do so before starting Windows) Edit C:\WINDOWS\SYSTEM.INI (adjust based on actual installation and editor of choice) find [386Enh] section, at bottom add line: InDOSPolling=TRUE save file win start Windows, will be in Enhanced mode if supported
Source: Kernel patches - http://server2.fdos.org/tests/kernel-win3-patch.diff rest of sources (kernel, FreeCOM, format, fdisk, sys, share, edit) - https://github.com/fdos Credits: Bart, Tom, and others who have improved the FreeDOS kernel to where it is today All the other FreeDOS developers, especially for FreeCOM, FDISK, FORMAT, and EDIT And Eric who's original research helped with the initial implementation of the necessary patches a decade ago (https://web.archive.org/web/20061001224249/http://www.coli.uni-saarland.de/~eric/stuff/soft/specials/win3.x-dosext-freedos-notes.txt) I will be working on improving the code, specifically the critical section handling and hopefully remove the need for the InDOSPolling flag being set as well. Enjoy, Jeremy
And sure enough I was able to reproduce Windows 3.1 from the binary. I haven’t looked at patching/building yet.
Turning off virtual memory let’s FreeDos run in a Window!
Even more amazing to me BattleTech 3025 can run CGA mode in a Window too!
I should add that VMWare player didn’t work, nor did later versions of Qemu either. I had much better luck with my mutated Qemu 0.90 fork thing. ISA Cirrus card for sure!
Being able to run Windows 3.1 in 386 Enhanced mode has been one of those holy grails of compatibility. It’s great to see this in action!
I should add that Windows/386 and Windows 3.0 don’t work. 386 needs some versioning set, and 3.0 is convinced that the memory is too fragmented or that C: is really A:. Also Win32s doesn’t work either, but still Sim City, Excel and Word run fine!