There is even a sentence in README.md that makes it explicit:
The source files in this repo are for historical reference and will be kept static, so please don’t send Pull Requests suggesting any modifications to the source files […]
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?~
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.
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...
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.
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.
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.
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.
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.
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?
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.
It is useful if you want to learn how to create an OS from scratch as a hobby. Modern open source systems like Linux are ridiculously complex and studying Linux kernel code is not something a newcomer should do. Studying old and simple systems like MS DOS is a better alternative, which will help you grasp the basics of how OS functions. And once you have these basics, you can move on to more complex systems.
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.
Why not release 6.22 and be done? It was the last one before switching to dos 7/8 (as part of windows 9x).
DOS 5 and 6.x were only released a couple of years later than DOS 4, and DOS 6.22 was declared obsolete by Microsoft on 31 Dec 2001. Still over 30 years ago.
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
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 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.