Hi!

Hidden in the "Tyrian 2000 in DOS with sound on PCIe only machines?"
thread on BTTR which also contained the VSBHDA (soundblaster emulation
for HDA machines, Japheth's variant) announcement, I found this link:

https://github.com/pufengdu/RetroFuns/blob/main/WFWG/FDWFWG.md

it explains how to run Windows for Workgroups 3.11 with FreeDOS.
This could be a lot easier after updating our distro.

ECM has compiled our kernel with -DWIN31SUPPORT here:

https://pushbx.org/ecm/test/20230805.2/kwin31.zip

You also need ECM's improved SHARE compile:

https://pushbx.org/ecm/download/fdshare.zip

This already got some stackexchange coverage in 2023 here:

https://retrocomputing.stackexchange.com/questions/27480/how-to-use-start-windows-3-11-with-freedos

Now you can install Windows, but you have to select "return to DOS"
at the end of the install to modify settings before running Windows:

 - Use the Microsoft versions of HIMEM and EMM386 and SMARTDRV
   (bundled with Windows, alternatively from MIT-released MSDOS 4?)
   so update your config and autoexec accordingly

 - Edit SYSTEM.INI to comment out 3 drivers in the [386enh] block:

; Device=ifsmgr.286
; Device=vcache.386
; Device=vshare.386

 - In the same block, activate more compatible InDOS tracking:

InDOSPolling=True

Now Windows for Workgroups 3.11 should run with FreeDOS, even
on FAT32 drives, since you have deactivated some 386 protected
mode, FreeDOS-incompatible filesystem / cache / share drivers.

Do not enable 32BFA or 32BDA. Use only temporary swap files.

For proper Alt-Tab/Alt-Enter handling, use 4DOS instead of
FreeCOM, or press ENTER after each Alt-... sequence if you
want to stick to FreeCOM.

The howto described above also links to:

https://danielectra.github.io/blog/windows-31-on-freedos

this mentions that the relevant FreeDOS kernel patch dates back
to 2021-08-19, so it is a pity that this has still not become a
part of our standard distro. This 2022 howto also mentions that
the whole FreeDOS installer hangs, so the author had to install
FreeDOS in a VM and then copy the result to the real computer.

If you only want to use Windows 3.1, not Windows for Workgroups,
you can use the free open source HIMEMX :-) You do need that
InDOSPolling=True line, but you do not need to disable things.
SVGA 800x600 256 color drivers should work on common hardware.

Here is what Jeremy and ECM patched in the kernel in 2021:

https://github.com/FDOS/kernel/commit/9186e6c5ed1ab58bf1dc0497bacc352d3d758703

That improves InDOS and critical section handling, such as
int 2a.8001/8101 calls, indos flag updates, and adds
int 2f.13/16xx/46 support and int 13/19 vector tracking,
as well as a fix for int 2f.4a33 to clear BX now, etc.

Regards, Eric



PS: Another possibly interesting topic mentioned on BTTR is:

https://github.com/pufengdu/IO8EMMOK

which lets you use EMM386 with MS DOS 8 to run Windows 3.x on
8042 A20 style hardware UNLESS you have done the competing

https://msfn.org/board/topic/183250-how-to-disable-the-built-in-xms-driver-in-windows-mes-iosys

and only AFTER you have replaced, twice, 66 c7 46 49 ff ff by
6a ff 8f 46 49 90 in win386.exe for unknown reasons. That
io8emmok tool manipulates XMS, memory sizing and A20 things.

It also comes with a loader which performs an in-memory patch
to MS DOS in the HMA to fix compatibility, which changes:

cmp di,0x400 => change to 0x300
jnc +6
mov si,0x4
jmp -0x205
push ax
xor al,al
xchg al,[0xf5c]
pop ax
jz -0x12 => replace by NOPs

The BTTR user uses the following MS DOS 8, Win3.x config:

device=io8emmok.sys
device=emm386.exe noems
install=xmsres.exe 512
install=w3xstart.com

XMSRES is a tool by Japheth to limit visible XMS, here to
512 MB, because Windows would need config tricks to avoid
overflows in virtual memory / swap processing otherwise :-p

See also https://jeffpar.github.io/kbarchive/kb/084/Q84388/

and https://kb.iu.edu/d/abpe

You want to set PageOverCommit=1 or 2, not the default of 4,
in system.ini to make Win3 work with up to 1 GB of RAM. Our
HIMEM also has a /MAX=... option to globally limit XMS size.



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to