Last month, we covered Julio Merino’s article about going from 0 to 1 MB in DOS, and now they’re back for breaking beyond that 1 MB barrier.
I know I promised that this follow-up article would be about DJGPP, but before getting into that review, I realized I had to take another detour to cover three more topics. Namely: unreal mode, which I intentionally ignored to not derail the post; LOADALL, which I didn’t know about until you readers mentioned it; and DOS extenders, which I was planning to describe in the DJGPP article but they are a better fit for this one.
So… strap your seat belts on and dive right in for another tour through the ancient techniques that DOS had to pull off to peek into the memory address space above the first MB. And get your hands ready because we’ll go over assembly code for a step-by-step jump into unreal mode.
↫ Julio Merino
What’s amazing is that I don’t even remember having to deal with any of this while using MS-DOS back in the day. Games tended to use DOS extenders automatically (DOS/4G!), but I don’t remember if I ever had to set up any of the DOS above-640k stuff manually.
Thom Holwerda,
Things got easier once programs moved passed real mode and were built with native 32bit code, but this was a relatively late development in DOS. You may have been using DOS at the very end, but in the evolution of DOS this was quite user hostile. Finding a combination of config.sys/autoexec.bat drivers & settings that would run all your DOS software wasn’t trivial and often required rebooting. This prompted QEMM and DOS to develop optimizers to perform adjustments via trial and error.
https://dfarq.homeip.net/optimizing-dos-memory/
Also a lot of hardware wasn’t “plug and play” and needed dip switches or proprietary utilities to assign resources.
Also, there were a lot of misinformation, legends and personal beliefs in tech circles about how this all actually worked.
The quest for the last KBs of free conventional memory felt like wizardry.
And of course, no Internet yet to refer to.
I remember arguing about UMB with an older colleague I had great consideration for. He lost most of it over this, lol.
Anyway, this really shows how short sighted the IBM PC design was. Clearly not meant to succeed.
Nico57,
You’re right. Certainly at the beginning, nobody expected the original PC to last so long. To be fair, intel did address the biggest deficiencies over time and by the time we had 386 and later the x86 architecture had evolved past the limits of conventional memory. However these conventional memory limitations continued because DOS didn’t evolve and continued to rely heavily on legacy modes. Technically this didn’t need to be the case, the hardware was capable of more. x86 had everything needed to run legacy applications ( https://en.wikipedia.org/wiki/Virtual_8086_mode ), but for better or worse MS kept DOS grounded in legacy real mode with EMS hacks and mostly left native 32bit computing to windows.
This was clearly the correct strategic choice for microsoft as a company. But for users & fans of DOS, the problems with real mode would guaranty eventual obsolescence (and pushing users to 32bit windows).
The odds were never in IBM’s favour. There was a plethora of platforms available in the early 80’s, with nearly every market segment dominated by someone already. IBM had every reason to believe the PC would be a flash in the pan and fizzle out after a few years. What they didn’t realise was their use of off-the-shelf components (rather than the highly integrated proprietary parts used by many other manufacturers) would allow clones to be built cheaply. That, and their short sighted (but again, budget constrained) option not to outright buy PC-DOS from Microsoft allowed MS to license the same OS used on the PC to those clone and compatible manufacturers. It was somewhat of a perfect storm for market dominance of the PC compatible platform. Of course, once 100% compatible BIOSes became available on the open market, IBM had lost all control of the platform they created and the PC would go on to become the dominant computing platform.
From IBM CEO / Shareholder point of view, the IBM PC was a disaster.
The IBM PC project team provided huge amount of information and with the simple design, virtually invited other companies to build their clones of the PC. The clones obviously cut into IBM PC sales significantly.
Then they failed to buy PC-DOS outright from Microsoft. If IBM managed their PC project properly, all the billions Microsoft made from MS-DOS / Windows would have gone to IBM.
Did anyone get fired for the failure of “revenue” mangement of the IBM PC???