Read Real Microsoft Source Code!

Microsoft Code

Back in the mid-1990s, I attended an event on the Microsoft campus, and happened to overhear a conversation between two engineers who worked on the company’s popular Excel product. The more experienced programmer was offering advice and guidance to a new recruit, and part of the discussion included a warning not to modify certain portions of the internal Excel source code “because nobody knows how those parts work.” Having spent a lot of quality time on customer projects grappling with some long-gone programmer’s attempt at source code, I didn’t doubt the gist of the conversation. But I had no ability to examine any of the Microsoft Office source code to see for myself if there were in fact portions beyond the comprehension of mere mortals.

Until now, that is. This week, Microsoft announced the public release of the source code for an early version of its Word for Windows application, as well as for two initial releases of its MS-DOS operating system. Microsoft donated the code for Word version 1.1a (from 1990), and for MS-DOS versions 1.1 (from 1982) and 2.0 (from 1983), to the Computer History Museum (press release). The files are posted on the Museum’s web site, and either MS-DOS or Word can be yours for the price of a simple click on a license agreement button.

Be aware: the code is really, really old, at least in terms of geologic software time. Yet those were simpler times. The MS-DOS 1.1 release fit into just 12K of memory—try that with Windows 8.1—a feat accomplished by coding directly in assembly language. It’s compact and terse, and a perfect magnet for bloatware. By the 2.0 edition (included in the same download), the size of the source had grown more than tenfold.

The Word for Windows code is mostly a C-language endeavor. Programming in managed languages and client- and server-side script has dulled me to the former harsh realities of Windows development. I had forgotten that world of message loops, obsessive-compulsive memory management, and the need to draw almost everything on the screen by yourself, including the blinking cursor.

If assembly language and non-OOP C code aren’t your style, you might also consider Microsoft’s .NET Framework Reference Source web site. For years, Microsoft has made much of it’s .NET Framework source code available to developers as a debugging aid, but that access was limited to the Visual Studio environment or a brute-force download of the entire library. A few weeks ago, Microsoft simplified access to the source by webifying it. The updated Reference Source web site lets you browse through Framework source files, a mixture of C# and Visual Basic content.

Beyond these Microsoft sources, the Computer History Museum also offers glimpses of computer code for other historic systems, including Apple II DOS, MacPaint, and an early release of Adobe Photoshop. If you have any geek blood in you at all, take a moment to pull back the veil from these programs.


  1. Tim,
    Do you think that it would be better to put the date the article was posted at the beginning? To me that gives a better perspective when reading the article. Few things are timeless and unchanging.

    This article is a good find. Thanks for posting it.

  2. Thanks for the input, Jon. I do put the month and day at the top, but the year only at the bottom near the comments. If you’re reading the article through a third-party RSS reader, you might not see them. I’ll consider having the date more prominent the next time I make major changes to the site’s design.


Please enter your comment!
Please enter your name here