1. 61
  1. 7

    Also note that this includes the BRender graphics library, which was used in several other games as a licensed piece of middleware. With that, I wonder if we might start to see other things that used it get released.

    1. 3

      Now if only they’d open source windows 7 haha. I wish. None the less it’s cool to see old software like this previously a black box in essence be open sourced by corporates. It’d be cool if older things like 98/95 or 3.1 we’re open sourced since their architecture was supersceded by the NT kernel and platform.

      1. 3

        I think this is a key point, and a key confession.

        All versions of MS-DOS are long dead, and the last release of the last branch, IBM PC DOS 7.1 (no, not 7.01) was 2003: https://sites.google.com/site/pcdosretro/doshist

        It’s dead. If MS were serious about FOSS, they could release DOS without any impact on current Windows.

        But they don’t.

        DOS doesn’t have media playback or anything. There shouldn’t be any secrets in there.

        It would help FreeDOS and maybe even an update to DR-DOS.

        So why not?

        I suspect they are ashamed of some of it.

        Win9x is equally dead, with no new releases in over 20 years. But I bet some of the codebase is still used, especially UI stuff, and some doesn’t belong to them.

        Win9x source code would really help ReactOS and I suspect MS is scared of that, too.

        IBM, equally, could release OS/2. Especially Workplace OS/2 (the PowerPC version) as there should be little to no MS code in that.

        Red Hat could help. They have relevant experience.

        But they don’t. How mysterious, huh?

        1. 10

          Any big project like this might contain licensed code.

          MSFT is a huge company with big pockets, so if they slip up, they might have to pay out a bunch of money to whatever ghouls have speculatively purchased the IP to that code. It’s rather easy to convince a jury that big bad MSFT is wantonly denying a rights-holder their fair share by open-sourcing.

          What’s the upside to open-sourcing? A bunch of nerds are happy, another bunch are vocally unhappy just because the license is not the best one du jour, and snarky Twitterers are highlighting shitty C code.

          It’s much easier to just say “we can’t risk it”.

          1. 3

            whatever ghouls have speculatively purchased the IP to that code

            I’m going to shamelessly steal that term for speculators in IP.

            1. 2

              Well, yes, but… here we are, discussing a fairly substantial app which they just did precisely this to.

              It can be done and it does happen.

              So I submit that it’s more important to ask if there’s anything that people can do in order to help it happen more often, rather than discuss why it doesn’t happen.

              So, for example, we can usefully talk about things like MS-DOS, which is relatively tiny and which contains very little licensed code – for instance, the antivirus and backup tools in some later versions – and which could easily be excised with zero functional impact.

              The question becomes not “why doesn’t this happen?” but the far more productive “well what else could this happen to?”

              For instance, I have MS Word for DOS 5.5 here. It works. It’s still useful. It’s a 100% freeware download now, made so as a Y2K fix.

              But the last ever DOS version was MS Word for DOS 6, which is a much nicer app all round. How about asking for that just as freeware? Or even their other DOS apps, such as Multiplan and Chart? How about VB for DOS, or the Quick* compilers?

              1. 2

                So I submit that it’s more important to ask if there’s anything that people can do in order to help it happen more often, rather than discuss why it doesn’t happen.

                Sure, I am on board with this!

                I keep being reminded about this, the fact that MSFT does anything with open source, much less literally owning a huge chunk of its infrastructure (Github) is mind-blowing to me.

                I’m pretty sure there are people within MSFT who want to open-source DOS. 20 years ago this would have been unthinkable.

              2. 1

                That, and who knows if they even still have the source code?

                1. 2

                  :-D Yes, that is very true.

                  I think WordPad happened because the source to Windows Write was lost.

                  Whereas Novell Netware 5 and 6 introduced new filesystems – which lacked the blazing, industry-beating performance of the filesystem of Netware 2/3/4 – not because the source was lost, but because nobody could maintain it any more.

                  The original Netware Filesystem was apparently an approximately half megabyte single source file in x86 assembly. Indeed it is possible that it was machine-generated assembly: Novell ported Netware from its original 68000 architecture to 80286 by writing a compiler that compiled 68000 assembler into 80286 object code.

                  When they revealed this and were told that it was impossible, they responded that they did not know that it was impossible so they just did it anyway.

                  There were only a handful of senior engineers who could, or even dared, to make any changes to this huge lump of critical code, both performance-critical but also vital to data integrity.

                  So in the end, when all those people were near retirement, they just replaced the entire thing, leaving the old one there untouched and writing a completely new one.

                  This lost a key advantage of Netware. Netware servers were extremely vulnerable to power loss, because at boot, the OS read the disks’ file allocation tables into RAM and then kept them there. The data structures were in memory only and so if the server was downed without flushing them to disk, data loss was inevitable.

                  This had 2 key results:

                  1. Netware disk benchmarks were 2-3 orders of magnitude faster than any other OS in its era, the time of slow, expensive spinning disks.
                  2. Netware had a linear relationship between amount of disk space and amount of RAM needed. The more disk you added, the more RAM you had to have. In the 1980s that could mean that a server with big disks needed hundreds of megabytes of memory, at a price equivalent to a very nice car or perhaps a small house.
                  1. 2

                    I think WordPad happened because the source to Windows Write was lost.

                    It’s not. (I’m looking at it.)

                    Write was just really, really early. It was written while Windows 1.0 was being written. The version included in NT 3.x is still 16 bit; while those systems did include some 16 bit code, this is the only executable I’m seeing that was 16 bit for lack of porting.

                    Important code, in particular its formatting code, was written in 16 bit assembly.

                    WordPad was a showcase for the then-new RichEdit control, which was part of rationalizing the huge number of rich text renderers that had proliferated up to that point.

              3. 3

                Not the latest version, but here you go: https://github.com/microsoft/MS-DOS

                1. 3

                  True. But those were obsolete even 25Y ago.

                  From vague memory:

                  MS-DOS 1.x was largely intended to be floppy-only.

                  MS-DOS 2.x added subdirectories.

                  MS-DOS 3 added support for hard disks (meaning 1 partition on 1 hard disk).

                  3.1 added networking

                  3.2 added multiple hard disks.

                  3.3 added multiple partitions per hard disk (1 primary + 1 extended containing multiple logical partitions).

                  That was it for years. Compaq DOS 3.31 added FAT16 partitions above 32MB in size.

                  IBM wrote DOS 4 which standardised Compaq’s disk format.

                  Digital Research integrated 286/386 memory management into DR-DOS 5.

                  MS-DOS 5 copied that. That is the basis of the DOS support that is still in NT (32-bit Windows 10) today.

                  MS-DOS 6 added disk compression (stolen from Stacker), antivirus and some other utilities.

                  6.2 fixed a serious bug and added SCANDISK.

                  6.21 removed DoubleSpace

                  6.22 replaced DoubleSpace with DriveSpace (stolen code rewritten)..

                  That’s the last MS version.

                  Later releases were only part of Win9x.

                  IBM continued with PC-DOS 6.3, then 7.0, 7.01 and finally 7.1. That adds FAT32 support and some other nice-to-have stuff, derived from the DOS in Win95 OSR2 and later.

                  So, basically, anything before DOS 5 is hopelessly obsolete and useless today. DOS 6.22 would be vaguely worth having. Anything after that would be down to IBM, not Microsoft.

                2. 2

                  They likely don’t own the rights to everything inside MS-DOS, or the rights are unclear. The product wasn’t made to be open source to begin with, so considerations for licensing was likely never taken. It would be a rather large undertaking to go through the code and evaluate if they could release each piece or not as they would likely have to dig up decades old agreements with third parties, many of which are likely vague compared to todays legal standards for software, and interpret them with regards to the code.

                  All of this for a handful of brownie points for people who think retro computing is fun? Eh. Not worth it.

                  1. 1

                    I think you may over-estimate the complexity of MS-DOS. :-D

                    Windows, yes, any 32-bit version.

                    But DOS? No. DOS doesn’t even have a CD device driver. It can’t play back any format of anything; it can display plain text, and nothing else. It doesn’t have a file manager as such (although DOSShell did, which came later.) It has no graphics support at all. No multitasking. It doesn’t have a mouse driver as standard, even. No sound drivers, no printer drivers. Very little at all, really.

                    The only external code was code stolen from STAC’s Stacker in DoubleSpace in MS-DOS 6, and that was removed again in DOS 6.2.

                    1. 2

                      DOS doesn’t even have a CD device driver

                      MSCDEX.EXE was in one of the MS-DOS 6.x versions, IIRC, but I suppose you mean that each CD-ROM drive vendor provided its own .SYS file to actually drive the unit?

                      1. 2

                        That’s right. The first time I ever saw a generic CD-drive hardware device driver – as oppposed to the filesystem layer which acted like a network redirector – was on the emergency boot disk image included in Win9x.

                        Never part of DOS itself. The SmartDrive disk cache only came in later, too, and there were tons of 3rd party replacements for that.

                        (I had some fascinating comments from its developer a while back about the IBMCACHE.SYS driver bundled with DOS 3.3 on the IBM PS/2 kit a while ago. I could post, if that’s of interest…?)

                        1. 1

                          You should definitely post those comments somewhere - the DOS era is fading into obscurity (deservedly or sadly, depending on who you ask).

                          1. 2

                            Interesting. OK, maybe I will make that into a new blog post, too. :-) Cheers!

                  2. 1

                    Indeed, really makes you think about the goals and morals behind projects and things within big corporations. As much as I’d like to see it happen, I doubt it ever will.

                    1. 2

                      My suspicion overall is this:

                      A lot of history in computing is being lost. Stuff that was mainstream, common knowledge early in my career is largely forgotten now.

                      This includes simple knowledge about how to operate computers… which is I think why Linux desktops (e.g. GNOME and Pantheon) just throw stuff out: because their developers don’t know how this stuff works, or why it is that way, so they think it’s unimportant.

                      Some of these big companies have stuff they’ve forgotten about. They don’t know it’s historically important. They don’t know that it’s not related to any modern product. The version numbering of Windows was intentionally obscure.

                      Example: NT. First release of NT was, logically, 1.0. But it wasn’t called that. It was called 3.1. Why?

                      Casual apparent reason: well because mainstream Windows was version 3.1 so it was in parallel.

                      This is marketing. It’s not actually true.

                      Real reason: MS had a deal in place with Novell to include some handling of Novell Netware client drive mappings. Novell gave MS a little bit of Novell’s client source code, so that Novell shares looked like other network shares, meaning peer-to-peer file shares in Windows for Workgroups.

                      (Sound weird? It wasn’t. Parallel example: 16-bit Windows (i.e. 3.x) did not include TCP/IP or any form of dial-up networking stack. Just a terminal emulator for BBS use, no networking over modems. People used a 3rd party tool for this.

                      But Internet Explorer was supported on Windows 3.1x. So MS had to write its own alll-new dialup PPP stack and bundle it with 16-bit IE. Otherwise you could download the MS browser for the MS OS and it couldn’t connect and that would look very foolish.

                      The dialup stack only did dialup and could not work over a LAN connection. The LAN connection could not do PPP or SLIP over a serial connection. Totally separate stacks.

                      Well, the dominant server OS was Netware and again the stack was totally separate, with different drivers, different protocols, everything. So Windows couldn’t make or break Novell drive mappings, and the Novell tools couldn’t make or break MS network connections.

                      Thus the need for some sharing of intellectual property and code.)

                      Novell was, very reasonably, super wary of Microsoft. MS has a history of stealing code: DoubleSpace contained stolen STAC code; Video for Windows contained stolen Apple QuickTime code; etc. etc.

                      The agreement with Novell only covered “Windows 3.1”. That is why the second, finished, working edition of Windows for Workgroups, a big version with massive changes, was called… Windows for Workgroups 3.11.

                      And that’s why NT was also called 3.1. Because that way it fell under the Novell agreement.

                      1. 3

                        16-bit Windows (i.e. 3.x) did not include TCP/IP or any form of dial-up networking stack… The dialup stack only did dialup and could not work over a LAN connection. The LAN connection could not do PPP or SLIP over a serial connection. Totally separate stacks.

                        There’s some nuance here.

                        • 1992: Windows 3.1 ships with no (relevant) network stack. In unrelated news, the Winsock 1.0 interface specification happened, but it wasn’t complete/usable.
                        • 1993: Windows for Workgroups 3.11 ships with a LAN stack. The Winsock 1.1 specification happened, which is what everybody (eventually) used.
                        • 1994: A TCP/IP module is made available for download for Windows for Workgroups 3.11. That included a Winsock implementation.
                        • 1995: Internet Explorer for Windows 3.x is released.

                        Of course, IE could have just bundled the TCP/IP stack that already existed, but that wouldn’t have provided PPP. It could have provided a PPP dialer that used the WfWg networking stack, but that wouldn’t have done anything for Windows 3.1 users.

                        As far as I can tell, the reason for two stacks is Windows 3.1 support - that version previously had zero stacks, so something needed to be added. There would also have been many WfWg users who hadn’t installed networking components.

                        There’s an alternate universe out there where the WfWg stack was backported to 3.1, with its TCP/IP add-on, and a new PPP dialer…but that’s a huge amount of code to ask people to install. Besides, the WfWg upgrade was selling for $69 at the time, mainly to businesses.

                        The real point is a 1992 release didn’t perfectly prepare for a 1995 world. Windows 95 (and NT 3.5) had unified stacks.

                        MS has a history of stealing code: DoubleSpace contained stolen STAC code; Video for Windows contained stolen Apple QuickTime code; etc.

                        The STAC issue was about patents, not copying code. The QuickTime copying allegation was against San Francisco Canyon Co, who licensed it to Intel, who licensed it to Microsoft.

                        1. 2

                          You are conflating a whole bunch of different stuff from different releases here. I don’t think that the result is an accurate summary.

                          Windows 3.1: no networking. Windows 3.11: minor bugfix release; no networking.

                          Windows for Workgroups 3.1: major rewrite; 16-bit peer-to-peer LanMan-protocol networking, over NetBEUI. No TCP/IP support IIRC.

                          Windows for Workgroups 3.11: a major new version, disguised with a 0.01 version number, with a whole new 32-bit filesystem (called VFAT and pulled from the WIP Windows Chicago, AKA Windows 95), a 32-bit network stack and more. Has 16-bit TCP/IP included, over NIC only. No dialup TCP/IP, no PPP or SLIP support.

                          32-bit TCP/IP available as an optional extra for WfWg 3.11 only. Still no dialup support.

                          IE 1.x was 32-bit only.

                          IE 2.0 was the first 16-bit release. https://en.wikipedia.org/wiki/Internet_Explorer_2

                          The dialup TCP/IP stack was provided by a 3rd party, FTP Software. https://en.wikipedia.org/wiki/FTP_Software

                          That dialup stack was dialup only and could not run over a NIC.

                          So, if you installed 16-bit IE on WfWg 3.11, which I did, in production, you ended up with effectively 2 separate IP stacks: a dialup one that could only talk to a modem on a serial port, and one in the NIC protocol stack.

                          The IE PPP stack was totally separate and independent from the WfWg TCP/IP stacks, and it did not interoperate with WfWg at all. You could not map network drives over PPP for example.

                          The real reason that there were 2 stacks is not so much separate OSes – it’s that MS licensed it in.

                          As far as the STAC thing – I may as well copy my own replied from the Orange Site, as it took a while to write.

                          This is as I understand it. (It’s my blog post, BTW.)

                          https://web.archive.org/web/20070509205650/http://www.vaxxine.com/lawyers/articles/stac.html

                          https://www.latimes.com/archives/la-xpm-1994-02-24-fi-26671-story.html

                          https://tedium.co/2018/09/04/disk-compression-stacker-doublespace-history/

                          https://en.wikipedia.org/wiki/Stac_Electronics#Microsoft_lawsuit

                          MS bullied Central Point Software into providing the backup and antivirus tools, on the basis of CPS being able to sell upgrades and updates.

                          CPS went out of business.

                          https://en.wikipedia.org/wiki/Central_Point_Software

                          MS attempted to bully STAC into providing Stacker for free or cheaply. STAC fought back.

                          Geoff Chappell was involved:

                          https://www.geoffchappell.com/

                          He’s the guy that found and published the AARD code MS used to fake Windows 3.1 failing on DR-DOS.

                          https://en.wikipedia.org/wiki/AARD_code

                          As described here: https://www.zapread.com/Post/Detail/7735/aard-code-or-how-bill-gates-finished-off-the-competition/

                          Discussed on HN here: https://news.ycombinator.com/item?id=26526086

                          Especially see this nice little summary: https://news.ycombinator.com/item?id=26529937

                          It would be hard to patent this stuff that narrowly. Various companies sold disk compression; note the whole list here:

                          https://en.wikipedia.org/wiki/Disk_compression#Standalone_software

                          MS saw the code, MS copied it, STAC proved it, MS removed it (MS-DOS 6.21) and then added the functionality back (MS-DOS 6.22) after re-implementing the offending code.

                3. 3

                  The first person who successfully compiles must get an award!

                  1. 7

                    I think Foone is trying to make it happen: https://twitter.com/Foone/status/1511808848729804803

                    1. 1

                      Of course he is

                      1. 3

                        They are the reason it was open sourced.

                        I wonder where they get the time to spend on all of these reverse engineering efforts?

                        1. 3

                          They have a Patreon, I just chipped in today: https://www.patreon.com/foone/

                          1. 2

                            I adore and support them… but it doesn’t look like enough money to support a life? Especially a life with a serious retro tech buying habit!

                            1. 1

                              Maybe they have another income streams? Hopefully, anyways