Microsoft Just Released MS-DOS Source Code!
Microsoft Just Released MS-DOS Source Code!
![](https://lemmy.ml/pictrs/image/4fa29369-774e-4f38-91b4-e7de8c7deea1.png?format=webp&thumbnail=128)
The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes - microsoft/MS-DOS
![GitHub - microsoft/MS-DOS: The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes](https://lemmy.ml/pictrs/image/4fa29369-774e-4f38-91b4-e7de8c7deea1.png?format=webp)
Microsoft Just Released MS-DOS Source Code!
The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes - microsoft/MS-DOS
I love that they specify that they're not accepting pull requests.
Even funnier when it's their own platform and it has been missing the feature to disable them for so long afaik
The MS-DOS v1.25 and v2.0 files were originally shared at the Computer History Museum on March 25th, 2014 and are being (re)published in this repo to make them easier to find[.]
In 2014, MS-DOS 1.25 and 2.0 were released under a Microsoft shared-source license (Microsoft Research License) which forbids redistribution
In 2018, both versions were published to GitHub and relicensed as MIT, making them properly open-source
Today, MS-DOS 4.00 was added to that repo, also under MIT.
Oh.
Ignore them. Send a pull request with the full source of Arch Linux.
Nah, just a giant compiled binary blob. That's what all the cool hackers do these days.
I’ll try a supply chain attack! That’s a good trick!
dumb question maybe, but where is the full source of arch Linux? My understanding is that its just vanilla Linux that uses the pacman package manager.
Am I wrong in saying the pacman is the Arch source? Or is there more going on in the tar ball?
LOL, some of the comments in the source are gold.
https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/DOS/ABORT.ASM
Note: We do need to explicitly close FCBs. Reasons are as follows: If we ; are running in the no-sharing no-network environment, we are simulating the ; 2.0 world and thus if the user doesn't close the file, that is his problem ; BUT... the cache remains in a state with garbage that may be reused by the ; next process. We scan the set and blast the ref counts of the FCBs we own. ; ; If sharing is loaded, then the following call to close process will ; correctly close all FCBs. We will then need to walk the list AFTER here. ; ; Finally, the following call to NET_Abort will cause an EOP to be sent to all ; known network resources. These resources are then responsible for cleaning ; up after this process. ; ; Sleazy, eh?~
This is what people mean when they say hostile to users damn wow
I imagine that's already a compatibility thing. If the os closed the file handles at that point but the program was expecting to do that, it might crash.
i remember writing .bat files and pretending they were really fancy update scripts when i was like ten they did nothing but it was still fun :)
Like half of my job is writing .bat files to automate stuff locally and not tell my boss that all I do anymore is double click the right things in the right order...
Me but with pythonautogui
You can put in a timeout command at the end, and then call the next .bat file.
For example "TIMEOUT /T 60" waits for 60 seconds before resuming, or you can override it by pressing any key.
So if you know how long the wait time between scripts is, just write a master.bat and call them in order, with adequate waiting time in between.
I had a job like that and powershell was a godsend. I let it slip when I accidentally set the multiplier for the delay randomiser too low and it did a months work in a morning. I ended up writing a guide for the others there when I left but sadly everyone but me had computers that supported newer versions of Windows where the scripts ended up broken. They asked me to come back and update it the Monday after I left. I asked if they would pay me to do it. They said no. Then I said no.
I still use bat h files and the system scheduler to automate a shocking amount of my job.
I guess we now have a timeframe in which to expect the release of Windows.
30+ years after death. Better than 70+ years of copyright 🤷
FreeDos is better anyways
I wonder if this is of any use to them or if they're already too far ahead.
To my knowledge, FreeDOS has been a fairly complete implementation of DOS for a very long time, so this is probably not useful to them.
Good question lmk if you find the answer. I just use FreeDos to play Chex quest
Sure, but it's still really interesting from a historic point of view.
MS-DOS, Source public available on March 25 2014 with MS Research License, released with as Free Software MIT license in 2018, this yer released as Open Source MS-DOS 4.0. Anyway, the Source code was available since 2014, only different licenses since then.
Take that FreeDOS!
Look at me, I AM FREE DOS now
Pretty soon they'll need to change the name to HipsterDOS.
FreeDOS before it was cool.
Laundering their reputation by open sourcing defunct historical code
If that's the goal, probably a silly way to go about it. The people who care about FOSS won't forget about their reputation, and most of the people who don't care about their reputation don't know anything about FOSS.
Probably Microsoft is trying to "save" some of its reputation after adding ads to Windows 11 one more time
They found a new 0-day exploit
They probably only got clearance from their lawyers (or IBM's lawyers) just now.
A lot of proprietary software includes bits from other proprietary software that they don't have the rights to open-source. And untangling and removing those bits takes time and effort.
What's the use case that would upset Microsoft the most?
Idk, maybe fork it under the name MS-DOSNT
😆👏👍
Use it to program an functional DOS emulator for MacOS 8?
So cool, thanks. As a kid I spent so much time in DEBUG, stepping through DOS's executables, and especially the Interrupt handlers. It's so neat to see the actual source code-- way easier to read and follow. I didn't know it was all written in assembly, from within Debug it sometimes seemed so messy and convoluted that I just assumed more was written in C.
Look at them, embracing open source like this, how wonderful.
I'm sure the only reason why they waited this long is that they needed to make sure it's old enough that the companies they stole code from can't sue.
And look at all of they ways they are extending the open source community via github and copilot!
They sure are extinguishing any posible fear I may have about the absolutely destroying anything beautiful.
Where is the ctrl+alt+del function defined? I just want to see what made that sequence work. I'd also be interested in where ctrl+break is defined.
Ctrl+alt+delete was a separate interrupt line direct from the keyboard. That is, when you pressed the three keys, the interrupt signal was asserted, causing the CPU to jump to the interrupt service routine, which should be in the source code package.
Woah MIT license. That’s a lot more permissive than I expected.
!remind 10 years when they will release the source code of Windows 3.0 for non-commercial use
(3.11 will take another 10 years)
Not gonna happen, windows probably still has 3.0 code deep beneath the tape holding things together now
Wake me up when they open source Windows 10/11.
Should have just before the heat death of the universe (if we are lucky)
fr fr
Let's wait until 2050s.
That's too optimistic, haha!
I think nobody wants that. I can think of a better way to fuck up your hardware and it pulls nails too.
Microsoft....you keep it. We good.
I want it, it's never ever gonna happen tho.
😂
Would this have Bill’s code in it ? Or was he off the shop floor by then ??
His last product was the OS for the Tandy model 100 in 1983.
Did Gates write any code? Wasn't he the marketing guy?
You're thinking of Shit Jobs, the FruitCo charlatan. Gates' pancake sort algorithm held the speed record for 30 years.
6.22 or foff
How much you wanna bet that a select few turbo-nerds are racing to debug it or something.
https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/DOS/CTRLC.ASM
; The user has returned to us.
So ominous.
; Well... time to abort the user.
Goodbye
Is this useful for hobbyists besides poking around and seeking the design philosophy at work back then?
Like would there be any advantage or reason to implement this in a home project? For example maybe that it's lightweight and has some rare compatibility or anything like that?
I think its interesting from a historical perspective.
I imagine people will examine the code, find easter eggs, bugs, unknown features, amusing comments etc.
I look forward to seeing what is found.
Looking forward to the "when I wrote this code, only god and I knew how it works. Now only god knows" comments.
There are a lot of decades old embedded systems out there. Every so often you hear about a big company still relying on floppy disks and other old tech, including major railways and airplane companies. Having the source code will help with debugging better than having to disassemble or other reverse engineering.
ATC is a famous one of those lol
Maybe as a reference, if you want to build another abomination?
MS-DOS 1.25, 2.0 were release years ago, your title should specify 4.0
Exactly.
Wake me when they release DOS 6.x source code.
Did they use source control of any kind back then?
Soke vrsions of DOS used a VCS named Source Library Manager, SLM, aka Slime. Later, it became Microsoft Delta, and eventually SourceSafe, then they switched to SourceDepot, which was a flavor of Perforce.
Wow ok, thanks!
Ah, the Quick and Dirty Operating System.... we meet again.
So not 3? Why not, because it was the most successful or something? 🤷
Plus I never even heard of 4 before. I'm going to have to look that up.
Bah, I was thinking of windows. I need to get some sleep.
As far as Windows goes, 95 was actually version 4.00.950 for the first version.
98 was 4.1, 2000 was 5.0, XP 5.1, Vista 6.0, 7 was 6.1, 8 was 6.2, 8.1 = 6.3
Then they jumped to 10 in both the name and internal version.
Windows 11 is still 10.0.x though.
Too late.
https://en.wikipedia.org/wiki/ReactOS already exists
ReactOS is a Windows clone though, not an MS-DOS one...
And it's cloning NT
That is different source code, doing way more.
how is reactos these days? is it a drop-in replacement for windblows yet?
not quite. it works for some things, but still a lot to go!
still can't run on bare metal unless you have very specific hardware
wasn't it leaked already
Probably yeah, but now they've officially released it under the MIT license so stuff like Wine could now potentially borrow some code to improve compatibility with Windows
not making money. make windows a gui on top of linux. like osX. silly microsoft
reminds me of the last time I had to remember that dir/copy/move with backslashes. dad's insurance 'software'. always amazed me how computer users get stuck in a way of doing things. print mail
Who the hell writes stuff like this in asm, honestly? Hasn't C been around since like the 70s
"Who the hell" writes an OS in assembler in the 80s? Uh, some of the utilities are in C, but compilers were slow and generated slow code back then, and it was quite noticable on a slow machine. When every byte of memory counts, you often need to hand-optimize.
Yeah but the compilers weren’t that good at optimization back then.