DOS 4.0 Source Code Released Under MIT License
github.comMain discussion here: https://news.ycombinator.com/item?id=40163405
Looking at the pdf folder, this is the "Multitasking MS-DOS" product which is not the same as the "DOS 4" that most people think of. That "DOS 4" is actually IBM Personal Computer DOS 4, the successor to MS-DOS/PC-DOS 3.3 (with > 32 meg filesystem support borrowed from Compaq DOS 3.31) and predecessor to MS-DOS 5. Microsoft did later, quite confusingly, also release an MS-DOS 4 based on PC-DOS 4.
This is not that. This is the road not taken, at least not by IBM and compatibles.
At the time, Microsoft assumed that DOS as we know it would never live past version 3. This was their idea of what DOS 4 should be. A new major version breaking strict compatibility. What we know as OS/2 1.x was originally named DOS 5, another new major "DOS" version breaking strict compatibility.
This Multitasking MS-DOS never took off except in niche applications, and OS/2 eventually got its own product name which is why there were then regular DOS releases 4 and 5 followed by 6 and eventually 7 become part of Windows 95.
Correction. Glancing at some of the actual code, and also looking at the README.md seems to indicate this is in fact the IBM DOS 4.
For example, the src/BOOT/MSBOOT.ASM file has a revision history including 3.31 and has code for the 32-bit sector count.
But more to the point the src/CMD/IFSFUNC folder contains the code for the IFSFUNC.EXE which only exists on IBM DOS 4.
So it would seem that the pdf folder has absolutely nothing to do with the source code, it's just an archeological bonus.
Old code should be open sourced to learn from.
Looking at \src\H\VERSIONC.H, this seems to be DOS 4.0
...which was buggy and quickly followed by 4.01
Are they releasing the source to 4.01 too? Would be neat to see a diff of those.
It’s hard to tell. According to Wikipedia, DOS 4.0 is different than 4.00
> MS-DOS 4.0 (multitasking) and MS-DOS 4.1 – A separate branch of development with additional multitasking features, released between 3.2 and 3.3, and later abandoned. It is unrelated to any later versions, including versions 4.00 and 4.01 listed below