Short summary:
Today, in partnership with IBM and in the spirit of open innovation, we’re releasing the source code to MS-DOS 4.00 under the MIT license. There’s a somewhat complex and fascinating history behind the 4.0 versions of DOS, as Microsoft partnered with IBM for portions of the code but also created a branch of DOS called Multitasking DOS that did not see a wide release.
Pretty cool. Looking forward to seeing 3.3 and 5.0 source also released someday. That will get us a really usable open source DOS. Maybe modern day assembly wizards can improve and optimize it.
Strange that they released 1 2 and now 4 but not 3.
I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
Pretty cool. Looking forward to seeing 3.3 and 5.0 source also released someday. That will get us a really usable open source DOS. Maybe modern day assembly wizards can improve and optimize it.
I suspect that Microsoft did not release the DOS versions that have the most commercial value on source, and just released versions "interesting to nerds". You also just get 2.0, not 2.11, and only the most buggy version of the 4.0x series on that page. So I recommend to keep your expectations low.
Thanks guys, this is really interesting!
A lot of what this guy says makes sense, I think. For example, that MS used to have well maintained backups of everything.
So it's questionably that MS is completely honest with certain statements.
Maybe certain things are being said or done in a specific way to save face, not sure.
Even if there's third-party code involved, it could be left out. But this means extra work, of course.
Then there were OEM versions, also. Not sure how they fit into the picture, leg.aly.
Edit: Formatting fixed.
Last edited by Jo22 on 2024-04-30, 19:19. Edited 1 time in total.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
The two files mentioned to break the build, GETMSG.ASM and USA.INF do not have "random, unexplained corruption", but have obviously been mistreated while being transferred into the "modern world". These two files contain non-ASCII characters, to exact, they contain line-drawing characters from codepage 437. Some processing tool treated these files as being UTF-8 encoded, and stumbled upon the CP437 characters that do not follow the UTF-8 codepoint number encoding rules. So every single line-drawing character has been replaced by the "replacement character" character, which is U+FFFD (�). In GETMSG.ASM, there are a lot of separator comments looking like
1;-----------------------------------------
which just contain the ASCII "-" character. These lines are obbiously fine. But there is one single line that contained a different character, possible the double-line character, which now looks like
if you interpret it as UTF-8. But even worse, if you take the file from ZIP file (just to make sure no web browser shenanigans are going on - but just saving the "raw" view from GitHub results in the same file), and look at it like DOS would look at it (CP437), it looks like
This is 200 characters, and overflows the MASM line buffer, which is why MASM is choking on the compilation of that file.
"Fixing" this corruption is easy: Just replace every occurence of the Unicode replacement character in UTF-8 encoding (a 3 byte sequence) by any 1-byte sequence that is not "especially evil", so please don't use a control character or a string termination character and blame me for saying "any". This will get the byte count back to what it is intended to be and thus fix overflowing the MASM line buffer. Unfortunately, the identity of these characters got lost, so you would need to extract the correct strings in USA.INF from a binary build of MS-DOS or take some guesses.
So it seems that they included (parts of) Microsoft C and Macro Assembler... does that mean that they are freeware? Did they released as complete free products before?
I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...
So it seems that they included (parts of) Microsoft C and Macro Assembler... does that mean that they are freeware? Did they released as complete free products before?
its seems to be a more or less full lib/includes/exe install of MSC 5.1 and MASM 5.1 - binary identical with some extra executables
1TOOLS 2| ASC2HLP.EXE ??? 3| ATTRIB.EXE standard file attribute change tool - unknown version 4| BUILDIDX.EXE ??? 5| BUILDMSG.EXE ??? 6| C1.ERR binary identical to MSC 5.1\BIN 7| C1.EXE binary identical to MSC 5.1\BIN 8| C1L.EXE binary identical to MSC 5.1\BIN 9| C2.EXE binary identical to MSC 5.1\BIN 10| C23.ERR binary identical to MSC 5.1\BIN 11| C3.EXE binary identical to MSC 5.1\BIN 12| CL.ERR binary identical to MSC 5.1\BIN 13| CL.EXE binary identical to MSC 5.1\BIN 14| CL.HLP binary identical to MSC 5.1\BIN 15| COMPRESS.COM ??? 16| CONVERT.EXE ??? 17| DBOF.EXE ??? 18| EXE2BIN.EXE ??? 19| EXEC.EXE binary identical to MSC 5.1\BIN 20| EXEFIX.EXE according to: https://www.os2museum.com/wp/dos-2-11-from-scratch/, this tool sets the minimum and maximum paragraph allocation in the EXE header to 1. no version 21| EXEMOD.EXE binary identical to MSC 5.1\BIN 22| EXEPACK.EXE binary identical to MSC 5.1\BIN 23| LIB.EXE Version 3.10, is binary identical to MASM 5.1 installation, MSC5.0\BIN\LIB.EXE is 3.08, MSC5.1\BBIN\LIB.EXE is 3.11 24| LINK.EXE binary identical to MSC 5.1\BIN 25| MASM.EXE Version 5.10, is not part of my MSC5.0 or MSC5.1 installation - is binary identical to MASM 5.1 installation 26| MENUBLD.EXE ??? 27| NMAKE.EXE Version 1.00.05, is not part of my MSC5.0 or MSC5.1, maybe from QuickC 1.01? 28| NOSRVBLD.EXE ??? 29| TOOLS.INI ??? 30| 31\---BLD 32 +---INC all contained files binary identical to MSC 5.1\INCLUDE 33 | ... 34 | 35 \---LIB all contained files binary identical to MSC 5.1\LIB - depending on the install options set
About the compilation issue.
There's a commenter in the YouTube comment section who says he got it working by fixing the paths (setenv.bat?)
I'll atrach the quote here once I'm at home.
Edit: Strange. The comment is not visible in Chromium on my PC.
On the smartphone, were I saw it two days ago, it's still there.
So I'll type it down manually, hope that's okay. Here it is:
dimitrispantazopoulos9721 wrote:Just to let you know that v4.0 does build successfully after having removed a few "long lines"
(comments, actually) from 5-6 .as […] Show full quote
Just to let you know that v4.0 does build successfully after having removed a few "long lines"
(comments, actually) from 5-6 .asm files and having fixed the LIB and INCLUDE paths
in SETENV.BAT by adding %BAKROOT%\src\tools\bld\lib to them.
Other than that, the whole thing builds up and by following the instructions in RUNME.BAT
you can have the binaries copied in a folder.
So I think you are complaining a bit more than you are trying to make things work.
Again, these aren't my words. I have just read them in the comments here.
I've also taken a screenshot, just to be safe. I hope I won't need it, though. 😅
Last edited by Jo22 on 2024-04-30, 19:13. Edited 1 time in total.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
About the compilation issue.
There's a commenter in the YouTube comment section who says he got it working by fixing the paths (setenv.bat?)
I'll atrach the quote here once I'm at home.