I'm speaking under correction, but I think that Windows 3.0 handles memory
for Windows programs in all three modes (Real, Standard, 386)..
Windows 2.x was different, though, I recall - It had an EMS manager only (simply said),
so both DOS and Win16 programs had to support EMS in some way or another.
(By the way, OS/2 2.0 also claimed to have superior Windows /386 and 3.0 compatibility
over real Windows, since it did handle the whole memory managment for its own special build of Windows 3.0.)
Anyway, I was able to run lots* of Windows programs in Windows 3.0 Real-Mode,
including those that were meant for Windows 1.x/2.x.
My AST Rampage 286 (EEMS/LIM4), the chipset EMS of a 286 and EMM386 were able to provide
the type of EMS needed by Win3 RM. So I assume, normal EMS page frame (64KiB)
*might* do as well, albeit with impaired performance.
That being said, I tried this with 286-586 systems only. No XTs or Lo-Tech cards yet.
EMM386+MemMaker also made my copy of Windows 2.03 see EMS (in about dialog).
More information (a little bit; some videos of mine):
Re: Windows 3.1 on a 386 with 640K RAM - Possible?
https://www.youtube.com/watch?v=XqFSWnMpVic
https://www.youtube.com/watch?v=zzCvFL30KKA
https://www.youtube.com/watch?v=DSQCKlhmEq8
https://www.youtube.com/watch?v=OsFQD0eNg2w
(* Of the ones that run in Real-Mode. Many later programs need Standard-Mode, at least.
Turbo Pascal for Windows could compile 8086/Real-Mode programs, but not Delphi and Visual Basic.)
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//