Great work Jeremy! 😃

Watching your YouTube video, I noticed the FreeDOS VM booting with
Microsoft EMM386. And that makes sense, since JEMM386 currently doesn't
support GEMMIS, a standard required for by Win3.x and Win9x for
memory management handover from the EMM manager to the Windows kernel as it
starts up from DOS. (That's necessary when you want to start Windows 3.x in
386 Enhanced mode while having an EMM manager loaded.)

There is an outstanding feature request for GEMMIS in JEMM, but the JEMM
maintainer has expressed a disinterest in adding such support:
https://github.com/Baron-von-Riedesel/Jemm/issues/5

That's unfortunate, since GEMMIS support in JEMM, in addition to Jeremy's
FreeDOS kernel patch, would result in full support for Windows 3.x (and
even Win9x) by the FreeDOS distribution.

Would any other developer here with the necessary expertise be willing to
work on GEMMIS support in JEMM? Or perhaps on adding GEMMIS to another open
source EMM386 alternative? For instance, wasn't there an older EMM386
alternative that used to ship with FreeDOS before it was replaced with
JEMM? Apparently, there is a GEMMIS implementation integrated in DOSBox, so
this code could perhaps be copied or used as an example, when implementing
GEMMIS in JEMM or in another open source EMM386 alternative.

And in addition to that, another question for Jeremy: I also noticed how
that DOS window within Windows 3.11 still seemed to "boot" an instance of
MS-DOS as opposed to FreeDOS. Would it be possible to have the DOS windows
inside Windows launch FreeDOS instead as well? Or would that require
patching Windows itself?

Thanks again!

On Sat, Jul 24, 2021 at 12:43 PM Eric Auer <e.a...@jpberlin.de> wrote:

>
> Hi Jeremy,
>
> does that mean the unstable kernel already supported Win 3.1 386enh?
>
> Cool to know :-) How about Windows for Workgroups in 386 mode, which
> is "non safe mode" there, so features are lost without it in WfW 3.11?
>
> Thanks for cherry-picking all the relevant patches! I guess the FDPP
> kernel of DOSEMU2 will have some more of those for you ;-)
>
> Checking your video, it says kernel 2043 build Jul 24 2021,
> but the copyright messages says 1995-2012, probably a typo.
>
> Do you have a link to the relevant patchsets for proof-reading
> in case there is a risk of regressions?
>
> I see you are using the Microsoft HIMEM 3.07 (02/14/92), Microsoft
> EMM386 4.44 (1991) and Microsoft SMARTDRV, are all of those actually
> necessary? I would expect things to also work with HIMEMX or XMGR,
> as long as no free EMM386 is loaded at all? Why do you use 4DOS in
> the DOS window inside Windows? Any special system.ini [386enh] items?
> See my notes below :-) Is setting VERSION=6.0 required, too?
>
> Cool that WIN, WIN /3 and WIN /S apparently all work :-)
>
> Some custom (un-)settings from an old system.ini [386enh] of mine:
>
> ; device=lanman10.386
> ; mouse=lvmd.386
> ; network=*dosnet,*vnetbios
> ; old version: device=*vtd new version: device=vtda.386 (in "WW0981" fix)
> device=vtda.386
> FileSysChange=0
> PagingFile=C:\WINDOWS\WIN386.SWP
> MaxPagingFileSize=1024
> ; also: PermSwapDOSDrive=... PermSwapSizeK=...
> ; disable swapfile stuff:
> Paging=0
> ; prepare for more than 200 breakpoints, 150 is minimum useful:
> MaxBPs=768
> ; better if lots of RAM:
> PageOverCommit=1
> ; equivalent of /D:FSVX
> 32BitDiskAccess=No
> SystemROMBreakPoint=No
> VirtualHDIrq=No
> ; *** EMMEXclude=A000-FFFF
> NoEmmDriver=1
> IgnoreInstalledEMM=1
> WinExclusive=1
> ;
> TimerCriticalSection=10000
> DMABufferSize=64
> XlatBufferSize=128
> KeyBoostTime=.005
> MinUserDiskSpace=5120
> PageBuffer=32
> Com1Buffer=512
> ComBoostTime=20
> Com1AutoAssign=-1
> ScreenLines=50
> ;
> InDOSPolling=1
> ; P.V.F.: 10, or 0 if share installed
> PerVMFILES=0
> ReflectDosInt2a=1
> INT28Critical=1
> ; I.V.W.U.T.: 1/2/4/*8*... seconds: how often to pump int 8/1c into idle
> VMs
> IdleVMWakeUpTime=1
> ; D.P.E.I.: enable to get explanation how to leave DOS box when starting
> one
> DOSPromptExitInstruc=0
> ; force DMA buffers to be in 1st 1MB range:
> DMABufferIn1MB=1
>
> For standard mode, I also had those settings:
>
> [standard]
> ; Stacks=12 (8..64) StackSize=384 - Settings for DOSX DOS Extender
> ; Int28Filter=0,1..*10*..: only let through every Nth int 28 ...
> Stacks=16
> StackSize=512
> Int28Filter=1
> DOSPromptExitInstruc=0
>
> Note that Windows 3.x all have issues when you have too much
> RAM. There are binary patch files for that, but the obvious
> other workaround is telling your EMM386 or HIMEM or similar
> to not let Windows know how much RAM you really have ;-)
>
> Cheers, Eric
>
> > https://youtu.be/35OQjLYdvJ0
>
> > 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.
>
>
>
> _______________________________________________
> Freedos-devel mailing list
> Freedos-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-devel
>
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to