Compiling Microsoft Word 1.1a for Windows

A while back, Microsoft had famously released the source code to Word for Windows 1.1a (and OS/2 as well!), to some fanfare.

People were excited, but then kind of dismayed as they couldn’t really do much with it.  Oddly enough the source code release really didn’t have any notes on how to build it, although everything needed is included.  I went looking for information on how to build Word to see why it keeps doing weird things on WineVDM, and I came across this thread on betaarchive:

Special props to yksoft1 for getting it to build in the first place, and Ringding for noticing that the OS/2 supplied compiler binaries can be re-bound to run under MS-DOS using a MS-DOS Extender.

So I went ahead and fired up Qemu and within an hour I had done it!

Word 1.1a compiled and on Windows 2.11

Well this is great fun, and all, but there isn’t a heck of a lof of people with Windows 2.x around anymore.  And of course Word 1.1a really wanted to have 2.11 or higher.  It has some hooks for what would be Windows 3.0 although I think it was much more.  Although it certainly doesn’t want to run (unmodified) under debug release 1.14.

So now that the world has gone beyond Win16 OS’s what can you do?

Well the tip of  WineVDM will run it!

Word 1.1a on Windows 10 using WineVDM

So now there is some new life for this old word processor.

Another fun thing in Word 1.1a is that it has an early implementation of MDI letting you view and work with several documents at once.  Naturally you would need a massive monitor, which we all have today.  Although people tend to just launch more than one copy of Word to accomplish this.

Early MDI

So now on my 64bit machine I can not only play with the source to Word, but I can run it at unimaginable resolutions on my modern machine!

14 thoughts on “Compiling Microsoft Word 1.1a for Windows

    • Word 1.1 uses its own pseudocode compiler so that it can be more compact and implement code paging on a real mode OS with no MMU. Getting to Win32 implies firstly moving it to real C, then moving that to 32 bit C. And the license prohibits sharing derivative works, which makes it impossible for people to work together and share the results of any such Win32 port. (And presumably the reason the license prohibits it is for exactly this reason.)

      • Microsoft had this weird obsession with p-code in the mid-80s (Multiplan was written in it) as a way to maintain portability. The downside is that it was pretty slow. It never really went away with them…. look at .NET!

        • I’m going from memory but the #1 reason for the p-code thing was that it was much more smaller than using a traditional compiler. I guess they saw the Infocom Z-Machine, and wanted more of that… I mean it was great playing a PDP-10 game on a Commodore 64, but taking 10-15 seconds for the VM to page in/out and decompress between moves was… insanely slow.

          What is kind of funny is that this compiler is *NOTHING* like their retail products. I guess I shouldn’t be too surprised.

    • In the ‘opus\program’ directory of the source there should be a pre-compiled binary if I recall correctly.

      I was trying to run it on PCem, on a 486SX-16 with an EGA adapter, and 8MB of RAM, and it’d crash out Windows HARD.

      I haven’t looked at the ASM, but I think that Word does all kinds of weird things to the system state, like trying to take over for the OS itself, instead of just using the API’s. I guess all that kind of stuff could be decapitated, or made to be more like the OS/2 version, but the license doesn’t really allow for online collaboration…. and I don’t know about doing some kind of gorilla Word 1.1a, kind of like the “OpenNT 4.5” stuff.

      • Regarding Gorilla Word 1.1a – what I learned from winfile is that it’s very hard to go anywhere without a small group of people with a clear direction in mind. If everyone has their own direction, nothing happens.

        What I’d like to do to it is:
        1. Continue removing Windows 2.x support;
        2. Fix issues preventing it from working/working well on newer systems;
        3. Move towards the more standard/later converter system (see GC1039.EXE.) What’s there now is a clear precursor but not close enough to load the Word 6/97 converters.

        Beyond that though, I can’t see it ever being functionally comparable to its newer peers.

        • It’d be like also adding in MIPS/Alpha/PowerPC/ARM support… Or WineLib on X11 to make it a “native” Linux app. But I’d imagine there is so many more better options than Word 1.1a…

          • If you go for linux and almost ancient word processors, I recommend abiword.
            I had it first time ~2000 on SuSE Linux and was very impressed, what I got for free, after learning/using MS-Office95 in school.

            The ~2000-versions are still very small, but already powerful. They will work like a charm on a 486.

Leave a Reply