The Computer History Museum announced today that it has, with permission from Microsoft Corporation, made available original source code for two historic programs: MS-DOS, the 1982 “Disk Operating System” for IBM-compatible personal computers, and Word for Windows, the 1990 Windows-based version of their word processor.
Great move by Microsoft – this ensures these programs remain available for eternity.
It’s nice that the code has been released, but the licensing sucks. No distributing derivative works.
http://www.computerhistory.org/atchm/microsoft-research-license-agr…
Edited 2014-03-25 17:48 UTC
A valid point, but it’s not like open source DOS emulators hadn’t already surpassed the original.
I think you are missing the point. This isn’t open source, this is archeology. The point is to learn from history and to preserve it before it goes away.
Not really. The source code is only important for historical and educational purposes.
Besides, the last thing you’d want to see is a reanimated Word 1.1.
I actually would take the “historical purposes” part only. For educational purposes, I do not know if looking at very old code can learn you something that can be used currently.
The languages evolved (including C) a lot, the hardware a lot, new semantics, models and data structures can be used right now.
MS-DOS was written in Assembly.
Although I do not know anything about assembly on new processors, I heavily suspect the assembly of new 64-bit processors with a lot of extensions (SSE, SSE2, MMX, etc. etc. etc.) is also too different than plain 8086 assembly.
Edited 2014-03-26 12:56 UTC
n t
There is already a GPLed DOS.
FreeDOS (http://www.freedos.org/)
Jbso,
MSDOS 1.1 from 1982? That makes 32 years, frankly if copyright laws were more reasonable it’d be in the public domain by now. It’s long lost any commercial value to microsoft.
I’m curious does anyone have any use for this whatsoever?
n/t
No. It’s a nice curiosity but it has zero practical value today.
It may matter for those re-exploring their archaic software collection to be able to understand or even patch MSDOS 5.x, 6.x, or even 7.x to run those older programs.
The most unfortunate part to that is inability to port. An actual linux port of word would be hilarious.
-Great move by Microsoft – this ensures these programs remain available for eternity.
I would prefer Word not be part of eternity.
Edited 2014-03-25 17:51 UTC
…to torment all of humanity all the way through to the end of time.
Looking at it that way, I’m not so sure it’s a good thing after all!
Oh come now. Word was awesome back when it fit on a floppy and you could take it with you wherever you went.
Well, maybe not awesome but practical and neat at least.
Fantastic! I’ve been looking for a Windows 8 replacement.
I’m looking for a Windows XP replacement.
The clock is ticking…
What’s wrong with Windows 7?
You got until 2015 until XP is no longer supported. So do not worry. By then you will perhaps made a move.
I wish we had something equivalent to Lotus 1-2-3 for us nix* terminal users. SC just does not cut it for me when the files get larger and more calculations is needed.
Not the same thing but take a look at http://www.danbricklin.com/visicalc.htm
Given that the classic SVR4 was released by Caldera some time ago, and the CSRG BSD is available too, it would be really nice to see Xenix.
Ugh, correcting myself … not SVR4 but the ancient UNIX versions. I guess the OpenSolaris release is what is most similar to a SVR4 source release though.
Since software has essentially zero value 20 years after release but copyright lasts for another hundred years, I wish companies would open up older software more often – it doesn’t cost them anything. Id were really the pioneers here, but it’s hard to think of many cases where opening up 20 year old software would hurt producers.
I feel this should perhaps be the requirement of copyright protection: sourcecode placed in escrow to be released in the future.
Someday I hope we will get to see the source code for a more modern operating like, say, Linux!
Licence sucks, the code is for nothing. Nobody is permited to learn from it or use it as technical documentation. Anyway, you need at least DOS 3.3 to be compatible and run these DOS applications you know or you are still have in use. So this is the second reason why Microsoft piss us off (again).
I am sorry where does it ban you from learning? You can use the source but nothing prevents you from studying the source, seeing how it solves problems, and learning lessons from that.
Where is the source can only find .ASM files, no JavaScript ?
Can’t tell if trolling or just the most clueless developer in the history of the universe.
Right? I’ve pasted that shit into a .html file but my browser won’t run it. Worst sauce evar.
This might be the reason why the code was donated for archeological and historical purposes. It can’t be read anymore by anyone inside Microsoft or in the community at large.
OK – I’m a bit exaggerating as there are still some hobbyist coding in X86 and/or X64 assembly (e.g. MenuetOS, MikeOS, BareMetalOS). However, for many, it is Java, JavaScript and/or other web related languages.
It is a great thing to do by Microsoft. I think that all early commercial compilers, assemblers and other types of tools should also have their sources donated to a museum. It is a classy and smart thing to do IMHO.
“You may not distribute or publish the software or Derivative Works.”
This clause means we cannot make fixes to the source or build binaries for testing to give to others.
Really nice would have been a GPL like clause must be distribute under same license.
Ladies and gentlemen, by popular request, here’s the real reason for this release: coincident with the end of life of Windows XP, the last vestiges of what in Misrosoft circles they referred to as “the Holy 2.0” version of DOS have finally been laid to rest.
RIP M$-DOS 2.0, now that XP is officially gone, (no longer supported,) it’s okay to release code that still remained part of the OS for around THIRTY FREAKING YEARS, underscoring something I’ve been telling people for just north of two decades: underneath all the fancy splash-screening, and despite Misrosoft’s best efforts to hide the fact, the “operating system” known as “Windows,” from 1.0 to XP was STILL JUST PLAIN, OLD DOS!
They were actually sued for doing this very thing, when (whoever it was that owned the rights at the time) complained in federal court that by M$ DOS (I think 5.x to Windows 95’s) deliberate generation of errors if Windows were run on top of a NON-M$ version of DOS, (like DR-DOS, a product that if memory serves, was superior in virtually every respect, no pun intended…) and later pretending to make DOS disappear. You see, it was still internally and functionally M$-DOS 7.0 underneath Windows 95, but that was hidden from the user.
Whoever it was settled out of court because, I guess, they had mortgages and car-payments to make, and the M$-Ill-Gotten-Gains-War-Chest was sufficient to drag the litigation out long enough to make them quit, and seek life elsewhere.
They hid it well, of course, but after enough effort was made to reverse engineer the “heavily XOR-encrypted code,” it could be shown that Windows would check to see if the M$ Copyright message was there, in the DOS, and if it were absent, it would spit-out random, cryptic, scary-looking error messages. These weren’t actual errors, mind you, they were basically “We notice you’re not using a Misrosoft-branded DOS with Windows, so despite the fact it’s a superior OS, we are going to try to frighten you into purchasing our inferior product” – errors.
Nowadays their approach has gotten more advanced. They build-in deliberate and intentional weaknesses, susceptibility to viruses that NO MODERN OS has ANY EXCUSE for being susceptible to, let alone one that is supposed to be the product of a company with decades of experience whose rat-hole has had untold billions of dollars poured into it by an unsuspecting and long-suffering public. They then periodically “discover” and “patch” them, probably introducing new vulnerabilities in the process. The idea there is of course that you’d have to be out of your mind to run an unpatched version of Windows anywhere, let alone on the Internet. Consequently, you need patches or “updates,” which you can only get if you let Misrosoft inspect your computer remotely to make sure it’s a “Genine” copy, that is… that you PAID THEM for it, through a process called “Activation”.
The much-ballyhooed ease of breaking-in to Misrosoft-Windows based computers is not the result of simple incompetence, or the complexities involved in making an OS that can run on endless varieties of different hardware, since they long-ago strong-armed everyone into making hardware that their wretched software can run on. It’s an ANTI-PIRACY measure.
In other words, they (Misrosoft) risk the SECURITY of your data, including things that may be personal and confidential to you, for the sake of THEIR BOTTOM LINE.
But hey, it’s Misrosoft. What the hell did you expect?
You sound worse than the 9/11 conspiracy theorists
if the bugs and loopholes that viruses can leach on to were inserted purposely, surely it would make sense to insert them after MS stops supporting that OS. Making your product purposely vulnerable would just end up with you losing sales…
Edited 2014-03-26 02:25 UTC
9/11 theorists… wow. What you’ve done with your post is what I think Aristotle referred to a couple plus thousand years ago as the rhetorical fallacy of “poisoning the well,” also known as an ad-hominem abusive attack. I won’t respond by stooping to that level and suggesting you’re a paid Misrosoft SHILL… but I will point out that it’s a fallacy people use to try (and fail) to discredit someone’s perfectly valid point of view when they can’t argue it logically, by likening the person to someone popularly regarded as discredited. Nice.
I’ve made my point. If I’m wrong, prove it. Make a valid argument if you can. If you’re not merely a troll, I think you should reread the post, because you clearly failed to understand what I wrote.
I’m not in favor of illegal piracy, you understand, and I don’t do it myself, nor will I help or facilitate others doing it. I simply enjoy having the option to use FL/OSS software because the freedom it confers liberates me from the cycle of having to shell out to Misrosoft over and over again for the same thing. Duping people into doing that IS their business model.
If you still doubt, consider this:
What would happen to Misrosoft if they finally produced an operating system that WORKED, had rock-solid stability, was SECURE out of the box, without the need to install third-party applications to plug the holes that the software should never have shipped with, and was efficient enough not to require constant upgrades?
It would be a disaster. People would buy a single copy and NEVER have to deal with them again, which IS the situation they WOULD have with their copies of Windows XP if not for the fact that M$ is refusing to continue to provide security updates. They could, but that would cut into the sales of future operating systems, because they made a dreadful mistake in making an OS (by which I mean XP) that after years of fixing, FINALLY (basically) FRIGGING works!
Well they can’t have that, because then people won’t “upgrade,” and so they’re FORCED to, which is … EXACTLY WHAT THEY’RE DOING BY ENDING SUPPORT FOR XP!!! THAT’S THE POINT!!! THEY’RE FORCING PEOPLE TO UPGRADE AGAINST THEIR WILL! That’s their business model, GET IT?!? Force people to buy AGAIN what they already paid for, rather than produce something they want and are willing to pay for without coercion!
I can only hope it all blows up in their faces, and people switch instead to better, vastly more secure, way more stable, FREE software, and finally let Misrosoft join all the companies they destroyed in the corporate hereafter.
Dude, please take your medication.
Eh, no. Just no.
What???
Seriously, are you retarded? Everyone knows that only versions of Windows up to Win9X are based on DOS. Windows XP is based on NT which has a completely different history and codebase than DOS, Win3.1, & Win9X. Know what you’re talking about before you start posting random ass garbage.
I’m sorry to tell you that often what “everyone knows” is incorrect, to say the least. Windows was not “based” on DOS, it only used some parts of it, less and less with every release. You know, Windows was a multitasking*, memory-protected*, graphical OS, it’s hard to believe it could only be a wrapping over something that had no concept of “task” and a bare list of “occupied memory” that you could just ignore, let alone the drivers architecture that made the GUI possible.
And let’s not dive into 9x, which had a (mostly) 32 bit kernel. DOS had no kernel at all!
* quite primitive compared to today standards, but still much more than DOS could dream of.
biffuz,
Well, it isn’t entirely incorrect. Windows couldn’t work without DOS. I do vaguely remember the incident where MS was adding bugs/incompatibilities for MSDOS competitors like DR-DOS.
Actually even DOS had the concept of “tasks”, just looking at the output of mem (mem /c if I recall correctly) would tell you this. The trouble was DOS did not use an MMU in low memory, so it was impossible for tasks (TSRs) to resize their low memory footprint on the fly. However those that used expanded memory via EMM386/QEMM could alloc/free memory in the background. TSRs could even multitask, for example I had a music player that could open/play .mod files while using other dos programs.
Far be it for me to suggest it that DOS was any good at multitasking, it was not. However initially windows was built on DOS and EMM386 and DOS interrupt calls, etc. It depended on DOS based file systems drivers, packet drivers, COM, etc.
No kernel at all?
DOS was simple, but it was still an OS at a time when Windows was not an OS and needed DOS.
They were not tasks, because they didn’t have a running status or something like that. They were called “modules” for a reason.
Those “multitasking” TSRs came with their own code to do that (that is, they replaced the clock’s interrupt handler). Heck, there was an example on my Turbo Pascal book, the second programming book I read when I was 12.
I’m not sure about all of this… but I don’t want to check everything. Anyway, its dependency declined over the years.
Yep. DOS is more like a bunch of interrupt handlers with a library. Nothing we can define a kernel.
[/q]
That’s an interesting question, DOS is far from an OS in today’s terms, but Windows couldn’t run without it, so the real OS was DOS+Windows, isn’t it?
Now it would be interesting if Microsoft releases the Windows 1.x source code
Anyway, I downloaded that Word source… just let me set up a Windows 3.1 VM, install Visual C++ 1.something (I have it somewhere) and let’s see if I can compile it!
biffuz,
Call it whatever you like, but DOS did have structures to support multiple processes, and DOS did keep track of open resources (at least those managed by DOS) on a per process bases.
http://en.wikipedia.org/wiki/Program_Segment_Prefix
http://en.wikipedia.org/wiki/File_control_block
http://en.wikipedia.org/wiki/Job_File_Table
In it’s own elementary way DOS actually did have a running status, you could query the currently running process with ah=62h Get current PSP.
https://en.wikipedia.org/wiki/DOS_interrupt_call
Needless to say the flat memory model and lack of MMU support left DOS seriously crippled for generic multitasking. All memory had to be allocated to a process up front, a big problem exacerbated by the fact that only 640k of total real mode memory was available.
Actually we weren’t limited to the clock, one could chain any interrupts: keyboards, modem, network, BIOS, DOS, etc. The trumpet TCP stack let you write a full fledged TCP daemon on DOS running concurrently with other processes (which I’ve done myself). By programming your application in an event oriented way (admittedly unusual practice but never the less possible under DOS), you could absolutely have rudimentary task switching. A plethora of DOS utilities made use of this. Even windows itself was non-preemptive, meaning a windows process would continue running until it relinquished control, just like in DOS. A windows process can either exit or continue waiting for events, just like a DOS process can terminate stay resident and continue waiting for events.
I’m not denying MSDOS lacked the crucial multiprocessing API & UI formalizations that windows would include later. However as underdeveloped as it was, DOSv4+ did have a rudimentary task switching shell for *generic* DOS programs running on “real DOS”, not using VM86 emulation (like windows used to run DOS programs). It suffered from all the usual caveats of running multiple processes in low memory without an MMU.
https://en.wikipedia.org/wiki/DOS_Shell
It may have lacked memory protection, but the resident portion of DOS is still a kernel to me. This combined with all the DOS applications make it an OS. I guess it’s a case of tomatoes versus tomatoes
I’d be ok with that
Edited 2014-03-27 04:06 UTC
I downloaded the zip file and looked at the README.txt for MS-DOS 2.0 and found several spelling mistakes:
accomodate
asembled
distriibuted
distrubute
iinch
overide
shipable
skeltal
utiliity
Looks like no-one in MS had any spell checker software, including for DOS 2.0 itself
I am guessing that at that time spellcheck software were expensive, or difficult to find
In those days, the task had to be done by a human spell checker and this likely was deemed non-essentially to the business of coding stuff and selling it.
I don’t think anybody’s mentioned this yet in response to the MS-DOS 1.1 source code release, but will this disclosure finally put to bed the rumor that DOS stole code from CP/M? AFAIK, the source to CP/M has been released (not sure which version(s) of CP/M are in the public domain, though.)
There is undoubtedly a superficial similarity between CP/M and DOS, since Tim Paterson wrote DOS to have compatibility with CP/M at the API-level. I suspect the similarity ends there, as Paterson designed an all-new file system and made other tweaks. It still hasn’t stopped Jerry Pournelle from claiming that entering an undisclosed key sequence in DOS 1.0 would produce the CP/M copyright message.
But if you’re of a conspiratorial mindset, you could always claim that DOS 1.1 removed the “CP/M copyright code” that was in DOS 1.0
In all fairness, as a very active OSS contributor myself, I do hope that copyright laws protect MY work at least as long as I am alive. Obviously I grant (open) licenses for my work for virtually anyone, but these (open source) licenses are worthless as soon as such work falls into public domain. But as long as I live, I surely want to have control over MY work, stuff that I have invested (lots of) time in. I at least want to control that. If I chose to release something as public domain, so be it (in fact, I already have).