On April 4, Microsoft released its landmark 1986 MS-DOS 4 operating system’s source code on GitHub, listed alongside its other DOS source code releases — however, posting MS-DOS 4 on GitHub in its current altered form seems to have broken some critical files entirely.
As called out by noted developer and operator of blog OS/2 Museum Michal Necasek in How Not To Release Historic Source Code, git failing to preserve timestamps and converting files to UTF-8 pretty much breaks everything. Necasek praised the release of the code but criticized the bugs introduced in the process, saying, “But please please don’t mutilate historic source code by shoving it into (stupid) git.”
Of the two issues, source files being converted to UTF-8 may be more severe. This is because the old tools characteristic of those operating systems can’t actually parse UTF-8 and likely can’t be updated to do so, either. The byte line length limit of MS-DOS 4’s MASM was 512 bytes, and the UTF-8 conversion brings specific files above that limit, making them unreadable.
The severity of the file errors varies, but the OS/2 Museum post notes that core system files are a perfect match for the original disk image files. However, the source code also seems to correspond to 4.01, a “quiet” update to 4.00 that fixed a few bugs. It wasn’t directly available but it did ship to PC OEMs.
The original post recommended simply releasing the raw files as an archive, with no UTF-8 conversion or anything of the sort. However, the story immediately continues in the comments, where co-developer of the MS-DOS 4 release Connor Hyde, aka Starfrost, acknowledges the issue and discloses legal reasons for not including timestamps.
The discussion between Michal and Starfrost continues briefly in the comments before they take it to emails we won’t be pressing them for. Despite Michal’s critical tone, it’s noted that idiotic corporate policies “obviously” aren’t the fault of an indie developer like Starfrost.
Hopefully, these issues can be resolved soon so that MS-DOS 4 can be enjoyed in its proper glory. However, MS-DOS 4 still wasn’t well-liked when it worked properly due to its hefty 92 KB RAM usage.
Amusingly, this resulted in the competing DR-DOS skipping 4.0-4.99 versioning entirely in favor of going from version 3.41 to version 5.0 — though MS-DOS 4’s multitasking focus still lives on today.