Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-27 Thread Eric Auer


Hi Jeremy, others,

> 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

I have been browsing those patches a bit. So I can share some insights
about them, also implying many questions. Maybe Jeremy can explain the
areas which looked complicated or confusing to me. Maybe the confusing
areas even include some which actually could use code improvements :-)

Sorry about the length of the "review" below.

>  hdr/portab.h  |   7 +
>  kernel/entry.asm  | 186 -
>  kernel/init-mod.h |   4 +-
>  kernel/int2f.asm  |  51 ++-
>  kernel/inthndlr.c | 340 +-
>  kernel/kernel.asm |  37 -
>  kernel/main.c |  19 ++-
>  7 files changed, 623 insertions(+), 21 deletions(-)

portab.h just introduces loword and hiword access macros

entry.asm: there is a new int 13 handler, but the style worries me.
It does CLI STC, then calls the original handler while forcing DS
to be the kernel one, then increments SP twice, then returns with
STI via RETF 2. Why all those things? Changing the interrupt flag,
carry flag and DS all seem to be a bad idea and SP should probably
not be incremented like that either, it gets unaligned for a moment.

The actual action "if carry set and AH is 6 on return" even is
commented out right now and the 8086-compatible method of pushing
the value 13h for that looks convoluted.

There also is some intWrapCall helper which uses a lot of stack.

The next new thing in entry.asm is a new step for the int 19 handler
which uses intWrapCall to call int 19 instead of just doing "int 19",
but I do not see what the advantage of that is supposed to be.

Interestingly, int21_user only calls dos_crit_sect if NOT compiled
with Windows 3.1 386enh support? If compiled WITH that, there will
instead be an int 2a.8001 call (preserving AX) before byte InDOS is
incremented. Also, dos_crit_sect is only called at int21_3 if NOT
compiled with Windows support, while it is called after decrementing
InDOS at int21_exit instead if compiled WITH Windows support?

Note that there is NO call to int 21.8101 (leave critical section) at
that point (it is commented out via "if 0") and that dos_crit_sect
is what is called (copies AX to a local variable, calls int 2a.82
with preserved AX) which leaves all critical sections 0-7, instead
of just a specific one as int 2a.810x would do after int 2a.800x
has been called to enter it?

What is the "skip to int21_3 if ah is 6" thing about, which has a
comment "testing, this function call crashes" next to it?

init-mod.h: Adds the int13_handler and makes the lol FAR *const LoL,
adding const to the properties of the list of lists pointer.

int2f.asm: Adds IntDosCal style functions 13h and 46h and
clears BX for function 4a33h for some "undocumented" reason?

If Win 3.1 support is compiled in, some non-reentrant switch to a
local mux2F_stk_top-30 will be triggered, copying 13 words to it,
while preparing for IntDosCal style int 2f functions, of course
copying everything back to the user stack later. Why the effort?

inthndlr.c: Includes a whole new win.h (as well as debug.h) but
win.h itself does not seem to be part of the Win 3.1 compatibility
patch? I seem to be missing something here? It also accesses BIOS
and user int 13 and int 19 vectors.

The updated int2F_12_handler() now has ah=13h "disk interrupt hook"
functionality as described in RBIL, which is used by Windows to mess
with disk I/O in WDCTRL.386 which insists on this to at least return
a changed DS when invoked. It also implements int 2f.1600 / 2f.160a
(both NOP), int 2f.1603 (get instance data, dummy because 1607.bx=15
is preferred), int 2f.1605 (Win startup broadcast, returns some data
structure, of course does not return optional vm86 on/off callback),
2f.1606 (Win exit broadcast, just logged at the moment)

int 2f.1607 is the large VxD API, BX selects which VxD to work with:
Only bx 15h supported, DOSMGR: CX 0 returns a flag, the DOS driver
data segment (segment of nul_dev) and a patch table, CX 1 activates
and CX 2 optionally deactivates patches, CX 3 returns DOS sizes of
DOS data structures, CX 4 tells about instance data structures etc.:

FreeDOS just reports it would have patched everything as requested
for critical section support, to keep Win3 from trying to patch it.
This involves features such as int 2a.8x0x calls, machine ID tracking,
limiting atomic I/O size (split up to multitask better) and notifying
Windows if "halt on stack error" or for "floppy drive DJ messages".

For function 3, only the CDS size is counted: FreeDOS pretends that
SFT, device list and SDA would all be zero size. Sounds dangerous!
Why is the implementation like that? Would Windows only care about
the CDS size? What if multiple DOS boxes are opened in Windows 3?
Our function 4 suggests that FreeDOS tries to avoid function 3?

In function 4, DOS could tell which 

Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-26 Thread Eric Auer


Hello Jeremy,

> 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)

Wow that was from 2004 :-o The current URL would be

https://auersoft.eu/soft/specials/win3.x-dosext-freedos-notes.txt

I think some of the ideas are from Konstantin Koll?
Others came from several experts on freedos-devel.

Regarding the potential future quality of the kernel
(and SHARE) we should not forget the DOSEMU2 people,
in other words Stas and the others :-) The problem is
how to cherry-pick all goodies from FDPP which are not
specific to the DOSEMU2 use case of their FDPP kernel.

Regards, Eric



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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-26 Thread perditionc
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)

https://youtu.be/4o7TR3Oo6y0


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


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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-26 Thread Aitor Santamaría
That is very good news IMHO, Jeremy!!
Sure a thing to wait for, for FreeDOS 1.3 release.

I think it is a meaningful milestone (even if there is not many people
running Win3.X that wouldn't do it over MS-DOS), but very relevant all the
same.

All the best,
Aitor



On Sat, 24 Jul 2021 at 08:02,  wrote:

> Hello all,
>
> I thought some of you might enjoy this (others may really dislike it).
> Link is to a (posted to YouTube) about 2 minute video of (version
> 2043+patches) FreeDOS kernel running Windows 3.1 in Enhanced and
> Standard mode.  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.  [I need to go to sleep now.]
>
> https://youtu.be/35OQjLYdvJ0
> (I apologize for anyone that can't view the video - it is just FreeDOS
> kernel booting in VirtualBox, me running a bunch of ver /r commands
> and WIN along with a dos prompt, and showing both enhanced and
> standard mode.)
>
> 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.
>
> Enjoy,
> Jeremy
>
>
> ___
> 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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-26 Thread Liam Proven
On Sat, 24 Jul 2021 at 15:29, Steve Nickolas  wrote:
>
> For what it's worth, Windows 3.x comes with its own versions of HIMEM and
> SMARTDRV.  I *think* it also comes with EMM386, but I'm not so sure about
> that one.

It did, yes, and  IIRC there were problems and/or warnings if you used
older DOS versions of these tools that predated $WindowsVersion.

But _later_ DOS versions were fine -- e.g. from MS-DOS 5.

> I think Windows' 386 mode is pretty heavily tied into undocumented
> features of EMM386 when it is active, so it wouldn't surprise me if a free
> version of EMM386 made it go down in flames.

I don't know that for a fact, but it's possible. However it *did* work
fine on DR-DOS' EMM386, and on Quarterdeck's QEMM386 and some other
memory managers, so on the whole I do not think so, no.

I routinely used 3rd party memory managers with Win 3.0, 3.1, WfWg 3.1
and 3.11 because they enabled more free RAM for DOS apps.

-- 
Liam Proven – Profile: https://about.me/liamproven
Email: lpro...@cix.co.uk – gMail/gTalk/gHangouts: lpro...@gmail.com
Twitter/Facebook/LinkedIn/Flickr: lproven – Skype: liamproven
UK: +44 7939-087884 – ČR (+ WhatsApp/Telegram/Signal): +420 702 829 053


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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Volkert via Freedos-devel
>
> I think Windows' 386 mode is pretty heavily tied into undocumented
> features of EMM386 when it is active, so it wouldn't surprise me if a free
> version of EMM386 made it go down in flames.
>

See my earlier reply about the lack of support for the GEMMIS spec in
JEMM386.

Windows 3.x in 386 Enhanced mode should work with any EMM386 alternative
that supports GEMMIS, such as QEMM386, and I believe also 386MAX.
Unfortunately, there are currently no Free and Open source EMM386
alternatives with GEMMIS support, at least as far as I know.

Is there anybody here with the knowledge and interest to work on such
support? There is documentation available for this. See the GitHub issue
link I shared in my earlier reply.

On Sat, Jul 24, 2021 at 3:29 PM Steve Nickolas  wrote:

> On Sat, 24 Jul 2021, Eric Auer wrote:
>
> > 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?
>
> For what it's worth, Windows 3.x comes with its own versions of HIMEM and
> SMARTDRV.  I *think* it also comes with EMM386, but I'm not so sure about
> that one.  Have to check my setup disks.
>
> I think Windows' 386 mode is pretty heavily tied into undocumented
> features of EMM386 when it is active, so it wouldn't surprise me if a free
> version of EMM386 made it go down in flames.
>
> -uso.
>
>
> ___
> 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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Steve Nickolas

Followup to my last comment, since I actually went and checked.

On Sat, 24 Jul 2021, Steve Nickolas wrote:

For what it's worth, Windows 3.x comes with its own versions of HIMEM and 
SMARTDRV.  I *think* it also comes with EMM386, but I'm not so sure about 
that one.  Have to check my setup disks.


Answer: It comes with its own HIMEM, EMM386, SMARTDRV and RAMDRIVE.

-uso.


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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Steve Nickolas

On Sat, 24 Jul 2021, Eric Auer wrote:


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?


For what it's worth, Windows 3.x comes with its own versions of HIMEM and 
SMARTDRV.  I *think* it also comes with EMM386, but I'm not so sure about 
that one.  Have to check my setup disks.


I think Windows' 386 mode is pretty heavily tied into undocumented 
features of EMM386 when it is active, so it wouldn't surprise me if a free 
version of EMM386 made it go down in flames.


-uso.


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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread perditionc
On Sat, Jul 24, 2021, 6:43 AM Eric Auer  wrote:

>
> Hi Jeremy,
>
> does that mean the unstable kernel already supported Win 3.1 386enh?
>

Yes, but it didn't work as well for running a dos prompt, 1st character
typed was lost and possibly other issues



> 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?
>

I have not yet tested it yet


> 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.
>

I guess that date hasn't been updated in a while :-)


> Do you have a link to the relevant patchsets for proof-reading
> in case there is a risk of regressions?
>

I will post them later today, but yes more work is needed to ensure no
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


For my initial work I wanted to limit possible issues, so I started with
versions I know work with Windows 3 since they came with it. These specific
versions are not a requirement.

 at all? Why do you use 4DOS in
> the DOS window inside Windows? Any


I believe it is because I have 4dos as my c:/command.com so that is being
spawned, but I may have set it explicitly at some point in the past.  I
originally tested with 4dos just like other programs, because it is known
to work.

 special system.ini [386enh] items?
>

I don't recall, this is a virtual machine I set up years ago.  I am going
to create a new one from scratch and document the steps so anyone (with
win3) can reproduce, just haven't had time yet

See my notes below :-) Is setting VERSION=6.0 required, too?
>

No, just minimizing possible issues for initial testing


> 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-
> NoEmmDriver=1
> IgnoreInstalledEMM=1
> WinExclusive=1
> ;
> TimerCriticalSection=1
> 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 ;-)
>


I went the simple way and limited the memory to my VM and it's disk size.


> 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.
>
>
I will post an update with better details as soon as I can, hopefully this
evening.

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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Volkert via Freedos-devel
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  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-
> NoEmmDriver=1
> IgnoreInstalledEMM=1
> WinExclusive=1
> ;
> TimerCriticalSection=1
> 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 

Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Eric Auer


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-
NoEmmDriver=1
IgnoreInstalledEMM=1
WinExclusive=1
;
TimerCriticalSection=1
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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Mercury Thirteen via Freedos-devel
This is awesome! :D

Sent with ProtonMail Secure Email.

‐‐‐ Original Message ‐‐‐

On Saturday, July 24th, 2021 at 2:01 AM,  wrote:

> Hello all,
>
> I thought some of you might enjoy this (others may really dislike it).
>
> Link is to a (posted to YouTube) about 2 minute video of (version
>
> 2043+patches) FreeDOS kernel running Windows 3.1 in Enhanced and
>
> Standard mode. 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. [I need to go to sleep now.]
>
> https://youtu.be/35OQjLYdvJ0
>
> (I apologize for anyone that can't view the video - it is just FreeDOS
>
> kernel booting in VirtualBox, me running a bunch of ver /r commands
>
> and WIN along with a dos prompt, and showing both enhanced and
>
> standard mode.)
>
> 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.
>
> Enjoy,
>
> Jeremy
>
> 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


Re: [Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread Deposite Pirate
Awesome! This is perhaps the last big feature DR-DOS and PC-DOS had over 
FreeDOS.

July 24, 2021 6:03 AM, perditi...@gmail.com wrote:

> Hello all,
> 
> I thought some of you might enjoy this (others may really dislike it).
> Link is to a (posted to YouTube) about 2 minute video of (version
> 2043+patches) FreeDOS kernel running Windows 3.1 in Enhanced and
> Standard mode. 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. [I need to go to sleep now.]
> 
> https://youtu.be/35OQjLYdvJ0
> (I apologize for anyone that can't view the video - it is just FreeDOS
> kernel booting in VirtualBox, me running a bunch of ver /r commands
> and WIN along with a dos prompt, and showing both enhanced and
> standard mode.)
> 
> 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.
> 
> Enjoy,
> Jeremy
> 
> ___
> 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


[Freedos-devel] video FreeDOS running Windows 3.1

2021-07-24 Thread perditionc
Hello all,

I thought some of you might enjoy this (others may really dislike it).
Link is to a (posted to YouTube) about 2 minute video of (version
2043+patches) FreeDOS kernel running Windows 3.1 in Enhanced and
Standard mode.  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.  [I need to go to sleep now.]

https://youtu.be/35OQjLYdvJ0
(I apologize for anyone that can't view the video - it is just FreeDOS
kernel booting in VirtualBox, me running a bunch of ver /r commands
and WIN along with a dos prompt, and showing both enhanced and
standard mode.)

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.

Enjoy,
Jeremy


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