Source code for MS-DOS and Word released
By Barry Collins
Posted on 26 Mar 2014 at 10:04
Ever wondered what the insides of Microsoft's operating systems look like? Now's your chance, as Microsoft has released the source code for both MS-DOS and the original Word for Windows.
Both have been released to the Computer History Museum, in a bid to help scholars understand how those iconic pieces of software were built. "We think preserving historic source code such as these two programs is key to understanding how software has evolved from primitive roots to become a crucial part of our civilisation," said Len Shustek, chairman of the museum.
Microsoft has made the source code of two versions of MS-DOS available: MS-DOS v1.1 and MS-DOS 2.0. MS-DOS 1.1 has less than 300KB of source code, reflecting the limited hardware it was designed to run on in the early 1980s.
The source code for Word for Windows - first released in 1989 - can be downloaded here.
Both sets of source code are released for non-commercial use, although anyone hoping to build a business out of two pieces of software from the 1980s should probably have a rethink, anyway.
The Computer History Museum has the source code for several other landmark pieces of software, including the first version of Photoshop and Apple II DOS.
Is your business a social business? For helpful info and tips visit our hub.
As someone who was a programmer in those dim and distant days I'm still slightly taken aback by the profligacy of data storage nowadays. Working with very limited storage we used to go to extreme lengths to ensure that we didn't waste space: for example, knowing that months only went from 1 to 12 meant that you could pack a day and a month into a single integer. The idea of using something as wasteful as XML for storage would have been unthinkable.
I also remember looking at Aldus Pagemaker and being impressed by how small the installed footprint was for so much power.
By jgwilliams on 26 Mar 2014
I too am still nostalgic for the sort of extreme low-level/maximally optimised coding you refer to.
A good example are the routines for floating point multiplication that are part of BBC Basic - written (principally by Sophie Wilson, I think) in 6502 assembly language. An example here (source code at bottom - cut and paste to get rid of the infuriating background image!):
In the case of the 6502, there were a whole load of powerful indexed instructions, whose index could only be a zero-page address (i.e. first 256 bytes of memory). As these had to be shared by the OS, any language (e.g. BASIC) and still some for the user/other applications, they were like gold dust and if you examine the floating point arithmetic routines carefully, you can see the programmer going to extreme lengths to use as few as posible.
Of course, the flip side to all this optimisation, very necessary at the time, were things like the (admittedly over-hyped) millenium bug - which resulted precisely from the pressures to store data (over-)compactly.
But trying to understand and work with other peoples maximally optimised code was often a nightmare. And the same goes for binary file formats. So all in all, despite the lingering nostalgia, I welcome the (apparent) profligate verbosity of XML!
By Cantabrian on 26 Mar 2014
Yes, totally agree with you re. welcoming XML - probably should have said that.
Your story reminds me, too, that I used to sit there with the 8086 handbook working out whether it was more expensive to use multiply or a number of register shift and add commands - generally it was faster to use the latter.
By jgwilliams on 26 Mar 2014
I thought it was an academic licence...
By big_D on 26 Mar 2014
- How Google Glass ruined my lunch hour
- Smartphone battery packs: can a USB power pack beat the festival battery blues?
- Windows Easy Transfer – not so "easy" in Windows 8.1
- Formula 1: what a difference virtualisation makes
- Office of the future: comfy chairs and tablets everywhere
- I went to Glastonbury and the only thing that got high was my smartphone
- Meet the robots helping teach children
- PaperLater: would you pay to print the internet?
- Amazon vs Kobo: how much to make the ebook switch?
- Phishing emails: how I nearly got caught out
- How to add in-app purchasing to an iPhone, Android or Windows app
- Remote-control ransomware: TeamViewer and software hardball
- Why laptops with serial ports matter to the Internet of Things
- Make your mobile battery last longer
- Small steps into handling Big Data
- Nexus 5: does it really run stock Android?
- How to get broadband to a garden office
- How to write your company's IT security policy
- Raspberry Pi and Wolfram: a must-have for every child
- Could you get by with Office Web Apps?