VOGONS


First post, by Yoghoo

User metadata
Rank Member
Rank
Member

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.

See complete announcement here: https://cloudblogs.microsoft.com/opensource/2 … ing-ms-dos-4-0/

Sources can be found here: https://github.com/microsoft/MS-DOS.
This also includes the sources from MS-DOS 1.25 and 2.0 which were released earlier.

Reply 1 of 15, by keenmaster486

User metadata
Rank l33t
Rank
l33t

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.

World's foremost 486 enjoyer.

Reply 2 of 15, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

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.

Reply 3 of 15, by Jo22

User metadata
Rank l33t++
Rank
l33t++

@keenmaster486 Psst! I think some of those have been leaked, already. But that's another story, doesn't belong here.

Speaking of Multitasking DOS, I remember reading about it at OS/2-Museum years ago.

https://www.os2museum.com/wp/dos/dos-4-0/

http://www.os2museum.com/wp/multitasking-ms-d … 4-0-goupil-oem/

http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/

There also an article at https://en.wikipedia.org/wiki/MS-DOS_4.0_(multitasking)

"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

//My video channel//

Reply 4 of 15, by mkarcher

User metadata
Rank l33t
Rank
l33t
keenmaster486 wrote on 2024-04-26, 19:43:

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.

Reply 5 of 15, by ixfd64

User metadata
Rank Newbie
Rank
Newbie

Microsoft said they're unable to legally open-source some versions due to third-party licensing restrictions: https://web.archive.org/web/20201219075238/ht … -DOS/issues/424

http://facebook.com/ixfd64

Reply 7 of 15, by ixfd64

User metadata
Rank Newbie
Rank
Newbie
demiurge wrote on 2024-04-28, 13:30:

And the source can't compile.
https://www.youtube.com/watch?v=pzhGAt3wYTI

Additional details here: https://lunduke.locals.com/post/5565411/ms-do … ails-to-compile

http://facebook.com/ixfd64

Reply 8 of 15, by Jo22

User metadata
Rank l33t++
Rank
l33t++
ixfd64 wrote on 2024-04-28, 15:59:

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.

24-Phantasy-Star-4137.jpg
Filename
24-Phantasy-Star-4137.jpg
File size
62.31 KiB
Views
644 views
File comment
PS4 c sega
File license
Fair use/fair dealing exception
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

//My video channel//

Reply 9 of 15, by mkarcher

User metadata
Rank l33t
Rank
l33t
demiurge wrote on 2024-04-28, 13:30:

And the source can't compile.

ixfd64 wrote on 2024-04-28, 15:59:

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

;-----------------------------------------

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.

Reply 12 of 15, by Zup

User metadata
Rank Oldbie
Rank
Oldbie

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...

I'm selling some stuff!

Reply 13 of 15, by llm

User metadata
Rank Member
Rank
Member
Zup wrote on 2024-04-30, 04:51:

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

TOOLS
| ASC2HLP.EXE ???
| ATTRIB.EXE standard file attribute change tool - unknown version
| BUILDIDX.EXE ???
| BUILDMSG.EXE ???
| C1.ERR binary identical to MSC 5.1\BIN
| C1.EXE binary identical to MSC 5.1\BIN
| C1L.EXE binary identical to MSC 5.1\BIN
| C2.EXE binary identical to MSC 5.1\BIN
| C23.ERR binary identical to MSC 5.1\BIN
| C3.EXE binary identical to MSC 5.1\BIN
| CL.ERR binary identical to MSC 5.1\BIN
| CL.EXE binary identical to MSC 5.1\BIN
| CL.HLP binary identical to MSC 5.1\BIN
| COMPRESS.COM ???
| CONVERT.EXE ???
| DBOF.EXE ???
| EXE2BIN.EXE ???
| EXEC.EXE binary identical to MSC 5.1\BIN
| 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
| EXEMOD.EXE binary identical to MSC 5.1\BIN
| EXEPACK.EXE binary identical to MSC 5.1\BIN
| 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
| LINK.EXE binary identical to MSC 5.1\BIN
| MASM.EXE Version 5.10, is not part of my MSC5.0 or MSC5.1 installation - is binary identical to MASM 5.1 installation
| MENUBLD.EXE ???
| NMAKE.EXE Version 1.00.05, is not part of my MSC5.0 or MSC5.1, maybe from QuickC 1.01?
| NOSRVBLD.EXE ???
| TOOLS.INI ???
|
\---BLD
+---INC all contained files binary identical to MSC 5.1\INCLUDE
| ...
|
\---LIB all contained files binary identical to MSC 5.1\LIB - depending on the install options set

Reply 14 of 15, by Jo22

User metadata
Rank l33t++
Rank
l33t++

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

//My video channel//

Reply 15 of 15, by llm

User metadata
Rank Member
Rank
Member
Jo22 wrote on 2024-04-30, 13:58:

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.

this one seems to work: https://www.youtube.com/watch?v=X7r76V_gWQ8