Windows 3.0 …

Bill Gates with Windows 3.0 / credit:Carol Halebian

There is no denying it, when it comes to revolutionary products you simply cannot ignore the powerhouse that was, Windows 3.0 .  Simply put this is what made the Microsoft empire, broke the alliance with IBM, and changed the future of OS/2 3.0.

Not only that, but Windows 3.0 changed the way businesses operate world wide, and finally delivered on the ‘dream’ of what could be done with the 286/386 microprocessor where OS/2 had failed.

To really appreciate Windows 3.0 you have to see the world as it was before it was under development.  Back in 1989 the pc market was in turmoil.  While OS/2 had the promise of breaking all the old barriers of the real-mode only OS MS-DOS, it simply cost too much, and hardware compatibility was just too poor.  The other striking thing was that the only 386 specific feature that OS/2 1.2 (current version in 1989) could exploit was that the 386 could quickly move in & out of 286 protected mode.  The LAN server product also had a 386 specific HPFS driver, but that was it.  OS/2 1.2 was still limited to a SINGLE MS-DOS box.

OS/2 1.2’s DOS session

And there wasn’t a heck of a lot you could do memory wise.  Not to mention there was no ability for the DOS session to use EMS/XMS memory.  It’s no wonder it became to be known as the ‘penalty box’.

Meanwhile, Windows/386 circa 1987 could run multiple MS-DOS VDM’s on the 386 processor.  You were only limited by how much extended memory was in your system.  Windows/386 exploited the v86 mode of the 386 processor which allowed for hardware virtualization.  However Windows itself was a ‘real mode’ program, meaning that it had to fit in 640kb of ram, just as the VDM’s it spawned had to.

Windows/386 2.11

So unless your goal was to run a bunch of MS-DOS sessions all your extra memory was for nothing.  That also included Windows programs since they all ran in real mode.  For people with enough disk space you *could* actually install one copy of Windows/386 in say VGA, then another with a lower video resolution (CGA or EGA), then actually run Windows in Windows… in a Window.  But it really wasn’t that useful, it ran better full screen.  And all this had the effect of doing was partitioning your windows programs from each other, if you dedicated a VM per application.  Needless to say with OS/2 2.0’s seamless windows this was far more easier to setup, and frankly far more practical.

In 1989 building large applications meant that you either forced people to use Unix (SCO Xenix!) or OS/2.  For those that could afford it, Xenix would have been the way to go, as they not only ran in 386 protected mode, offered a far larger address space, but it was also multiuser!  But Xenix was expensive, needed specialized knowledge.  And as mentioned the cost of OS/2 development was HIGH, and it required your end users to have OS/2 (naturally).  And the users would have to fight that a lot of PC/AT compatible PC’s on the market were not compatible enough to run OS/2.  Despite this a lot of banks latched onto OS/2, and some still use it today (look at why parallax came into existence!).  Then out of nowhere, PharLap had developed a piece of software that changed everything, the DOS Extender.

Originally for 386 computers, the first DOS extenders required people to use special 386 compilers, runtimes, and of course linkers & extenders.  The tools were expensive, the right to redistribute wasn’t free, but end users could run your multi-megabyte (lol) applications on regular MS-DOS.  Which is what 99% of PC’s were running, and it didn’t require users to change their OS, abandon their applications, it would simply just work.

Links 386 pro

One of the earliest and most popular DOS Extended game/application was Access Software’s Links 386 pro.  That’s right this game ran in protected mode! .. And it would *NOT* run under, or near Windows/386.

It was out of this wildly great but incompatible world that the first DOS Extender vendors, tried to standardize their products with the original and short lived VCPI specification, from Phar Lap.  However in 1989 Microsoft was busy working on Windows 3.0 as the next great thing.  Using a protected mode debugger, they were converting Windows/386 from a real mode ‘hypervisor’ into a protected mode application.  And if Windows couldn’t run these new extended applications, then people would naturally have to exit Windows to run them.  And that was the major problem with Windows is that people may have an application for windows but they spent most of their time in DOS. So Microsoft’s Ralph Lipe came up with the DPMI specification, managed to get all of the major vendors to support and take over it, in exchange for leaving Windows as a 0.9 level client/server.  After all why would you need their products if Windows were to incorporate the entire 1.0 spec?  At the time it was a big deal, but the success of Windows would eventually kill the extender market save for video games until Windows 95.  There is a great article about the rise of DPMI here.

So with a firm dos extended foundation Windows 3.0 could do something the 2.x products could never do, which was to actually utilize all the memory in peoples computers.  And because it hinged on a dos extender (ever wonder what dosx.exe was?) it meant that there was no special disk, mouse, network driver/software needed as it could jump out of protected mode, and call real mode software like the BIOS, or even mouse drivers if need be.  However older protected mode programs would only error like this:

No Lotus 1-2-3 r3 for you!

Another popular application for MS-DOS just happened to be Lotus 1-2-3, and it was *NOT* DPMI compliant.  Oh sure they had DOS & OS/2 support, but would you believe that the OS/2 version wouldn’t run in a Window?  Oh sure the install program may have, but some how someone didn’t think there would be any value in being able to SEE more then one application at a time.  Not to mention the dark horse, Excel was starting to sell in 1987 like crazy, in 1988 Excel actually started to out sell 1-2-3, and by 1989 it was already over.

Lotus 1-2-3 r3 for OS/2

Microsoft Excel 2.2 for OS/2

There is no doubt about it, GUI applications were taking over.  The old ‘DOS’ interface was dead.  And Lotus had basically killed their product line by providing an identical interface and experience to their customers by providing an OS/2 application that looked and felt just like the MS-DOS application.  While you may hear that Lotus got distracted with OS/2 and missed releasing a Windows version of 1-2-3 to counter the rise of Excel, the truth is that they straight up missed windowing UI’s. Their hubris is that the users simply didn’t like the 1-2-3 interface, they wanted a windowed application.

What they did want was graphical Windows, and of course more memory!  And there is nothing more annoying than having say 16MB of VERY expensive memory in a computer like a 286, but being restricted to 640kb or less is just … insane.

So let’s see Excel in action.  Excel 2.1c shipped with a ‘runtime’ version of Windows 2.1.  Mostly because nobody was buying Windows in 1987 Microsoft had to do something to get people running the thing.  So the best way was to allow you to run an application with it.  By late 1989 and early 1990 application vendors were making updates to their products so that they could run under Windows 3.0.  And here is the first version of Excel to do so.

Excel 2.1c and the Windows 2.1 runtime

So here we have Excel running under Windows 2.1 ala the runtime environment.  All you have here is excel.  Also worth noting is that the setup program is 100% DOS text based.

Moving forward we can now upgrade to Windows 3.0.

Excel 2.1c running on Windows 3.0’s real mode

So as you can see Windows 3.0 takes up 30kb more memory then Windows 2.1!  For someone with an XT this could mean bad news!  Now it’s time to see what all the babling was about, running the same application in protected mode to access more memory!

Excel 2.1c running in Windows 3.0’s standard mode (286 and above)

Now we are running in 286 ‘standard’ mode.  Notice that Excel thinks it’s conventional memory, but we now have 14MB of the computers installed 16MB accessible to the application!  Now this is pretty amazing stuff! Now it’s no secret that the 286’s memory management left a lot to be desired, and Microsoft really didn’t want to write for it, as the 386 was where they wanted to be.  So unlike OS/2 the 286 cannot swap.  You are only limited to what extended memory you have in your computer.  But this is different for the 386..

Excel 2.1c running under 386 enhanced mode

And here we are, 386 enhanced mode! So finally  our Windows applications are clearly running in protected mode, with demand paging!  With 36MB of available memory in a computer with 16MB of ram.  The colors are distorted on Virtual PC under 386 enhanced mode… But as you can see the environment runs!  And even graphical programs that for example used CGA could happily run on an EGA system in a window.  Even better you could copy the screen, and paste it into any Windows application you want.  Yes you could buy games and use them for clipart!

Another feature of Windows 3.0 that people didn’t realize is that it could pre-preemptively multitask DOS based VDM’s

As you can see, there it is, the timeslice, and scheduling options..  Great ways to confuse users for decades… 🙂

Who could resist?

As always, there is a great InfoWorld article here.

So why was Windows 3.0 successful? A lot of it is timing, as there was no other environment that could offer people access to their whole machine without upgrading their operating system.  And of course there was the whole thing with bundling Windows, Word & Excel with new computers.  I mean who would resist something like a graphical application like Excel when compared to the klunky and significantly more expensive 1-2-3?  Sure the bundling practices were found to be illegal, but looking back, Lotus & Word perfect basically GAVE Microsoft the market.  And of course, talk about aggressive upgrades!  I’m not sure they even do such things anymore.  Although I’ve heard of big companies, and governments pushing for discounts for running things like Linux.

And there is the other things that Windows 3.0 supported that OS/2 simply did not.  For starters backgrounds (wallpapers), and of course the desk accessories.  Sure they sucked but in a panic at lest you *could* do something… where OS/2 basically left you in the lurch.  Not to mention how much more expensive OS/2 was when compared to Windows.

So with all that out of the way, what fun is a write up without a demo?


And thankfully I’ve found all the bits in prior posts, and I can put them together right here.

Windows 3.0 working demo, click to launch!


41 thoughts on “Windows 3.0 …

  1. Ah yes, “European DOS 4” or some of the many other names for it… I’ve always wondered if it was something that actually shipped…

    I’ve never seen it, but I wonder if it were all that wasted, surely ‘share’ came out of it.. Naturally programs would have to be incredibly small.

    • It really shipped, but only to a few OEMs in the UK (Apricot) and France (Goupil). In the US, no one was interested because IBM wasn’t interested. Folks figured they’d wait for DOS 5.0 (later known OS/2) – and when they got it, they didn’t want it either 🙂

      Several of the European OEM DOS features made it into Windows and/or OS/2, like NE format, movable segments, named pipes, or shared memory. The product was basically positioned as a MS-NET 2.0 server platform; it’s not clear what the OEMs actually did with it. But it did exist, it wasn’t just a myth.

      See eg. InfoWorld of Sep 29, 1986, page 6, “Microsoft to Make MS-DOS 4.0, MS-NET 2.0 Available in Fourth Quarter”

      • And according to Larry Osterman’s blog, IBM did not want it because they realized that targeting it at real mode was a mistake. The frustrating thing is that it took years of wasted development time before that happened (when the 286 launched in year 1982), and even worse, by that time the 386 was being launched by Intel.

        • Well IBM did that ‘fantastic’ IBM AT in 1984, then needed some kind of compelling software for it.. Although of all the 286’s I’ve ever seen, I’ve never seen one with OS/2 that I didn’t install… The rest ran DOS/Windows 3.1 …

          Oh and thanks for the reddit thing, I got like 1000+ hits! 🙂

          • I think many people considered DOS + HIMEM.SYS compelling enough for a 286 🙂 And there were things like 1-2-3 R3 with a built in DOS extender (DOS/16M), too.

            In a way the 286 came out at exactly the wrong time… too late to be used by the original PC, and too early to take the PC and DOS popularity into account.

            And FYI, back in 1987 or early ’88, Microsoft was talking about having 32-bit OS/2 available in early ’89. They’re just too good at vaporware and not good enough at getting operating systems out the door on time…

  2. “Ah yes, “European DOS 4″ or some of the many other names for it… I’ve always wondered if it was something that actually shipped…”
    It is mentioned a lot on Larry Osterman’s blog.

  3. True, it’s development seemed to go a long way into Windows…. It’s a shame there are no copies of it floating around.

    I’ve recalled reading about it back in the ‘upgrading & repairing PC’s’ book days….. Back when Scott Meuler(sp?!) was a giant OS/2 biggot… lol but I think we all were in dire hopes of something better.

  4. “the ‘dream’ of what could be done with the 286/386 microprocessor where OS/2 had failed.”
    Not really. It was only cooperative multitasking and had no 32-bit solution for Windows programs. At that point MS could have embraced OS/2 2.0 (which had betas as early as 1990), with it’s OS/2 1.x and Windows 3.x compatibility for existing applications, while allowing new 32-bit applications to be written for OS/2 2.x. The era of 64Kb segments would probably be over by 1993.

    • OS/2 2.0 was still years down the road. And the infighting continued on IBM ruling the UI and Microsoft doing the leg work.

      If OS/2 2.0 had been the unified version it would have mean more years of dealing with config.sys startup.cmd and of course 16bit device drivers and the single input queue … If anything all the great tech of OS/2 was in the v86 handling. Oddly enough in one screenshot of the Microsoft OS/2 2.0 beta the DOS VDM settings looked a *LOT* like the Windows 95 DOS settings…

      NT was eventually popular because of it being something completely different not more of the same.. Although doing things like moving printing and graphics into ring 0 was always a cheap way of killing it even the registry was a little more easier than config.sys although that too has become a multimegabyte disaster.

      • “16bit device drivers and the single input queue”
        To be honest 9x was not very good at these either. The best thing would have been for MS/IBM to design the Presentation Manager properly in the first place.

        • Yeah, so began OS/2 NT … What is kind of funny is because IBM had part financed its development is that they were entitled to use it but they never did… They could have dumped 2.0 instead of trying to constantly patch it, and done the cruiser over NT… Heck they even could have sold it as an addon as they had full source access, and could have written a personality while as regular users we are locked out of such things…. Oh well in the end I guess it doesn’t matter. I found PM for NT on a CD a while back, and I just don’t have anything worthwhile to stress it.

          • While the 4MB of ram thing was important for the time, it didn’t end up mattering down the road.. And of course look at how big things are today, everyone has moved onto far bigger things.. The sad thing about OS/2 1.x/2.x is that they were the spiritual descendant of DOS, and were hindered by it’s config.sys & overall design. It was fixed in NT OS/2 (3.0) but IBM had sealed their fate by relying on the ‘good enough for now’ instead of looking forward…. The same reason why MacOS is all gone, instead Apple is the largest UNIX vendor out there…

        • Pretty much bang on, OS/2 LA is pretty terrible, and IBM was going insane back then… Funny how they too gave NeXT money to license their tech and did basically nothing with it.. Not that anyone could imagine them dumping A/IX for it, but it could have been.

        • Did they? There never was any QuickC for OS/2, no Turbo C++ for OS/2, nothing like that, those that did have OS/2 products charged an incredible amount, much as Microsoft C 6.00, Watcom C, and Borland’s C for OS/2 … There was a perception in the industry that if it wasn’t on Windows, and it involved protected mode, it should be $1000++ … While writing anything for Windows, the cost was DOS+Windows+WinWhatever… I got Borland Turobo C++ for Windows 3.1 for $79.99 when it came out… Much like how Lotus 1-2-3 for OS/2 was a text mode app that ran in FULL SCREEN, vendors then did their best to destroy any chance that OS/2 could have had.

          • Ok so it was 1991… Which is still sad when you think the 386 had been around since 1987, and to program anything real for it still would cost a fortune… Microsoft Visual C++ was ok-ish price wise, then they got caught up in this Visual Studio bundling nonsense and drove the cost way up, but gcc once more again force their hand with the 2003 toolkit, and the Express versions… But at the same time I think all the language companies for the 1980’s and 90’s basically priced themselves out of existence. Nothing cheap for OS/2 so that died, cheap stuff for Windows once it honestly was popular which took about a year.. The problem is that the mindshare never is recovered, just as nobody is waiting for HURD, when everyone went to LINUX which was available ‘today’, which was pretty much the sentiment of of the market looking at Windows 3.0 vs OS/2 … they never should have released 1.0 except to seed developers.. text mode was a major mistake… Just as the 286 was a huge mistake, obligations or not…

          • The lesson from “eu dos 4.0” was that the channel drives sales. So either be led by the channel (some mysterious European who wanted multitasking for dos) & IBM who wanted multitasking for 80286 based IBM AT’s or drive the channel with OEM discount bundles who will move anything you give them….

            Not to mention they clearly couldn’t write a complicated OS, OS/2 cannot compete with the DEC guys who did NT.

          • And Larry Osterman’s blog says that multitasking DOS was one of the first DOSes to be developed on spec. It was only after it started development that European OEMs began to ask for it.

  5. And it would have killed DR-DOS since OS/2 never required DOS. To be honest, it would not deal with the DOS apps that would only run in true real mode. It would still had required dual boot.

    • I bought DR-DOS back in 1993 for $5 back then… it was a nice step up from MS-DOS 3.30… But of course when it shipped it retailed for far more than $5. But that was the problem, consumers usually don’t replace the OS on the computer they bought.. And as IBM found with the dual boot thing, most users never even ‘switch’ if it is even there… We tech people sometimes forget it is the bulk of the ‘ignorant solitaire playing users’ that determine what ‘wins’.. And I still think the appeal of Windows 3.0 in the corporate world was the broken shuffle algorithm!

  6. Ah good old Windows 3.0.

    My first exposure was in high school, where the 386s were actually more or less terminals (no HDD!) booting Windows off a central server, over a BNC network. Logins could take 5 minutes! We used to disconnect the machines off the network and run games off a bootdisk.

    16MB on a 286 would be unheard of! Even at the start of the Pentium era, 16MB was for ‘power users’ as 16GB was in 2010.

    Microsoft saw that Access Links 386 wouldn’t run properly on Windows, users would need to dip out into proper DOS. They probably thought that a lot of those who would want a golf game would be business users, they ended up buying Access and porting Links to Microsoft Golf. Version 2.0 runs under Windows 3.1x, installs it’s own Win32 runtime and is a pain to try and get running under Virtualisation – it is pernickity about screen drivers (glfmod20.exe errors!), virtual memory and on VirtualBox runs too quickly (the swing meter seemed to be tied to the clock speed of the machine, running a VM on a modern processor is way too quick!). I remember running it on a 486, it was billed as ‘photo realistic’ – the slow draw speed between swings took a few minutes.

    A big DOS app I remember at the time was DBase, my uncle used to run it, it was happy being launched as a DOS session from an icon/PIF from Program Manager.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.