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!
As a follow up, 3.11 for workgroups or not doesn’t work either.