doshea wrote on 2025-02-19, 05:08:
BaronSFel001 wrote on 2025-02-18, 16:07:
Among the bits of computing history I find fascinating are how applications could utilize expanded memory before direct support via a memory manager in a real mode OS like DOS or Windows up to 2.03.
I was a bit horrified when I was reading the manual for Borland C++ 2 (I think) and it was explaining how you might tell it how much EMS to use and avoid it trying to use the same memory as your RAM disk (or something like that), and that XMS support was disabled by default. I wasn't aware of how primitive things were back then - I suppose I skipped over this by going straight from a machine with only 640K to a 386 (and by having my dad do just about all that complex memory management stuff at first!).
(apologies if I already mentioned that in this thread previously)
+1
😃👍
BaronSFel001 wrote on 2025-02-18, 16:07: I also like Windows 3.0's real mode being backwards compatible with applications written for older Windows versions.
Absolutely. In the 90s, as a Windows 3.1 user, Windows 3.0 seemed so old and obsolete to me but now my perception has changed a bit.
Learning about things such as Watcom WIN386 extender, OS/2 1.3 and the WLO runtime for Windows 3.0 applications made it much more interesting.
Suddenly I see things like virtual memory, 16-Bit Protected-Mode compatibilty, 32-Bit Windows applications etc.
Windows 3.0 with its three different modes meant that Windows 3.0 applications itself were very humble.
In most cases, they've used 8086 or 80286 instructions which were available on almost all PCs (XTs via 8018x or V20/V30).
And because they didn't tinker with memory directly (if well written),
they ran in all sorts of processor mode (real-mode, V86, 16-Bit PM, 32-Bit PM).
They also made no direct use of ring schemes, thus.
So they could run on any ring in a Protected-Mode OS.
Those using 32-Bit Protected-Mode Extenders were the exception, of course.
They needed and 386SX or higher. AutoCAD R11 (Windows test build) used this, SQL Windows, FoxPro etc.
But they needed lots of power, anyway, so it was okay.
386 upgrade cards for 8088-based PC/XTs did exist since late 80s, after all.
Here in 386 Enhanced-Mode, Windows 3.0 even provided virtual memory (swap file).
What's cool about Windows 1.x/2.x is, that it can offer full power on all PCs to Windows applications.
- If you had an original PC, an optional EMS board could make Windows 2.x applications use multiple megabytes. Provided that they were EMS aware.
- On a PC/AT, same as above but many chipsets of late 80s had offered EMS in hardware and Windows 2.x /286 could use 64KB of HMA.
- On an AT/386, same thing as above, but the /386 edition had brought its own DOS multitasker/EMS memory manager.
The very positive thing about EMS was that it was independent of the processor mode. It was a window, a pass-through.
It could also work on any architecture, such as PC-98 or a CP/M-86 computer.
Because EMS-aware applications only needed an EMM (expanded memory manager) to talk to.
Where exactly page frame was, was secondary. On a PC, it usually is in UMA (640KB-1MB).
But it can also be located in conventional memory (1-640KB) or in HMA (1024+64KB minus 16 bytes).
That what makes it so interesting, I think. It doesn't touch system memory.
It thus works very well in restricted environments, such as simulated DOS environments on top of other OSes.
And Windows 3.0 is like an even more advanced runtime that allows programs to run in many environments.:
EMS-aware Windows 2.x applications can continue to work on Windows 3.0, even.
Edit: Windows 3.1 in 16-Bit Protected-Mode mode was also still very co-operative.
It could run with an existing EMS memory manager, tolerated VCPI..
DESQView/X had supported a 16-Bit Windows 3.1 VM, too.
Edit: But enough talking of me. 😅 Here are two interesting articles (I think).
https://www.os2museum.com/wp/the-importance-of-emm386/
Micro Live - RM Nimbus edited version
https://www.youtube.com/watch?v=x4KRrZxwX78
The RM Nimbus PC-186 was an 80186-based PC, running Windows 1.x.
It was popular in schools in UK/GB of the 1980s.
There also was an Nimbus compatibility utility for later PC/AT models, so existing 186 software could be continued to be used.
Edit: Sorry about the poor writing, I do lack concentration right now.
"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//