[HN Gopher] Open Sourcing DOS 4
       ___________________________________________________________________
        
       Open Sourcing DOS 4
        
       Author : ndiddy
       Score  : 131 points
       Date   : 2024-04-25 21:42 UTC (1 hours ago)
        
 (HTM) web link (www.hanselman.com)
 (TXT) w3m dump (www.hanselman.com)
        
       | pjmlp wrote:
       | I guess now we can finally try to understand what went wrong with
       | the multitasking attempt.
        
         | h2odragon wrote:
         | Graphics. Managers wanted "windowing systems" as well as
         | multitasking.
         | 
         | People who just wanted mutitasking DOS had DesqView and ...
         | "concurrent"? was it? i forget.
         | 
         | I wrote TSR's that snatches cycles off the timer interrupt and
         | rode 21h for opportunity to flush buffers to/from disk.
        
           | esafak wrote:
           | https://en.wikipedia.org/wiki/Multiuser_DOS
        
       | tiernano wrote:
       | Direct GitHub link to the repo. https://github.com/Microsoft/MS-
       | DOS
        
       | dlachausse wrote:
       | Holy cow, this is huge! DOS 1.x and 2.x are too old to run a lot
       | of vintage DOS software, but 4.x would run just about everything.
        
         | Scaevolus wrote:
         | Are there specific parts of the DOS API that existing emulators
         | like DOSBOX don't handle accurately enough?
         | 
         | I don't understand if this source can be usefully integrated
         | into modern DOS preservation projects.
        
           | actionfromafar wrote:
           | It was a long time since I messed with things, but "net
           | drives" something didn't work in FreeDOS a long time ago.
           | This was useful, because it meant you could from within a PC
           | emulator access your host file system. It's entirely possible
           | that works on FreeDOS now.
        
         | asveikau wrote:
         | I feel like FreeDOS could already run just about everything for
         | 20 years or longer. If your goal is to run DOS software your
         | use case was probably already adequately covered with free
         | software.
         | 
         | An interesting thing about DOS is the OS wasn't very involved.
         | Programs did a lot of things we now think of as the realm of an
         | OS, like talking directly to I/O addresses or installing
         | interrupt handlers. I feel like a DOS implementation doesn't
         | even need to do a lot of things, maybe part of why DOS4 is
         | "good enough".
        
         | LeoPanthera wrote:
         | Although 5.0 was the first version to include HIMEM.SYS
        
         | chx wrote:
         | No, you are thinking of 4.01 this is 4.0.
         | 
         | Those are very different operating systems, this is DOS 3.2 +
         | later abandoned very crude multitasking features. Roughly.
         | 
         | And this matters because DOS 3.3 was a milestone.
         | 
         | 4.01 comes from 4.00 which has nothing to do with 4.0 (yay for
         | versions).
        
           | geoelectric wrote:
           | It's stuff like this that sent me over to DR-DOS back in the
           | day.
        
           | rnd0 wrote:
           | >And this matters because DOS 3.3 was a milestone
           | 
           | DOS 3.3 couldn't understand large partitions -except for
           | Compaq dos 3.31. But regular dos 3.3 couldn't. I don't think
           | dos 3.2 could even understand extended partitions/logical
           | drives -much less large disks.
           | 
           | Still -pretty neat!
        
       | thesuperbigfrog wrote:
       | Interesting MS-DOS history to be uncovered with the source code
       | of MS-DOS 4.
       | 
       | I wonder if we will see MS-DOS 5 or 6 soon?
       | 
       | FreeDOS, an open source DOS clone, has been around for a while:
       | 
       | https://freedos.org/
       | 
       | https://github.com/FDOS
        
       | nullindividual wrote:
       | > ; Check for presence of \dev\ (Dam multiplan!) [0]
       | 
       | I assume this refers to the spreadsheet application.
       | 
       | [0] https://github.com/microsoft/MS-
       | DOS/blob/main/v4.0/src/DOS/D...
       | 
       | EDT:
       | 
       | That one policy hadn't quite gone into effect yet ;-) [1]
       | 
       | [1] https://github.com/microsoft/MS-
       | DOS/blob/main/v4.0/src/CMD/C...
       | 
       | For posterity...
       | 
       | > RESEARCH:
       | 
       | > invoke path_search ; find the mother (result in execpath) > or
       | AX, AX ; did we find anything?
       | 
       | > je badcomj45 ; null means no (sob)
       | 
       | > cmp AX, 04H ; 04H and 08H are .exe and .com
       | 
       | > jl rsrch_br1 ; fuckin' sixteen-bit machine ought
       | 
       | > jmp execute ; to be able to handle a SIXTEEN-BIT
        
         | qingcharles wrote:
         | LOL. Nice find.
         | 
         | Company open-sources old product? Search for curse words...!
        
       | smolsky wrote:
       | OMG, I remember copying official 5.25 disks back in the 90s...
        
       | rwl4 wrote:
       | Weird that for a couple minutes, these paths existed:
       | 
       | * https://github.com/microsoft/MS-DOS/tree/main/v4.0/bin
       | 
       | * https://github.com/microsoft/MS-DOS/tree/main/v4.0/bin/DISK1
       | 
       | * https://github.com/microsoft/MS-DOS/tree/main/v4.0/pdf
       | 
       | But they disappeared as I browsed the repo. I guess they didn't
       | want that part public?
       | 
       | Edit: I knew I wasn't seeing things! Somebody forked it along
       | with those files:
       | https://github.com/OwnedByWuigi/DOS/tree/main/v4.0
        
         | nullindividual wrote:
         | It is all the MT-DOS content; binaries and docs.
        
           | qingcharles wrote:
           | Multi-Tasking MS-DOS
           | 
           | Beta Test Release 1.00
           | 
           | Release Notes
           | 
           | Enclosed you will find Microsoft's first beta release of
           | Multi-tasking MS-DOS. This version is based upon MS-DOS
           | Version 2 sources, we will be reimplementing the multi-
           | tasking enhancements on top of Version 3 sources shortly.
        
         | electroly wrote:
         | They just changed the folder. All of those files are now in
         | https://github.com/microsoft/MS-DOS/tree/main/v4.0-ozzie
        
         | willxinc wrote:
         | Looks like they were moved to the Ozzie subfolder:
         | https://github.com/microsoft/MS-DOS/tree/main/v4.0-ozzie
        
           | rnd0 wrote:
           | That was literally just added; I have a tab open that doesn't
           | have that folder. This is wild and strangely exciting to see
           | released in real time.
        
             | shanselman wrote:
             | Ya we wanted to separate the MS-DOS and MT-DOS stuff, it
             | was confusing as it was
        
         | farmerbb wrote:
         | They force-pushed the repo to remove an insult towards Tim
         | Patterson in one of the source files.
        
           | esafak wrote:
           | Don't leave us hanging!!
        
             | farmerbb wrote:
             | At https://github.com/microsoft/MS-
             | DOS/blob/main/v4.0/src/DOS/S... it used to have Tim
             | Patterson's full name whereas after the force push they
             | abbreviated it to his initials "TP".
             | 
             | I had the repo cloned before the force push and when I went
             | to pull it, this file was the only one that contained a
             | conflict.
        
           | skissane wrote:
           | They changed line 70 of v4.0/src/DOS/STRIN.ASM from [0]:
           | 
           | ; Brain-damaged Tim Patterson ignored ^F in case his BIOS did
           | not flush the
           | 
           | to [1]:
           | 
           | ; Brain-damaged TP ignored ^F in case his BIOS did not flush
           | the
           | 
           | [0] https://github.com/OwnedByWuigi/DOS/blob/ffd70f8b4fb77e2e
           | 6af...
           | 
           | [1] https://github.com/microsoft/MS-
           | DOS/blob/main/v4.0/src/DOS/S...
        
             | bombcar wrote:
             | If Tim is still around he should PR a change back; I'd not
             | want _my_ name shortened to  "TP".
        
               | EvanAnderson wrote:
               | He should make a PR to change it back to the correct
               | spelling of his name.
        
         | shanselman wrote:
         | Ya sorry we're moving stuff around
        
       | lchengify wrote:
       | So if MS-DOS 4 was released in 1986, and it is now 2024, that's a
       | 37 year gap between release and open source.
       | 
       | That means Windows XP should be open sourced by ... 2038. Not as
       | far away as it seems. I'll add it to my calendar.
        
         | GalaxyNova wrote:
         | A lot of XP components are still in use in modern windows,
         | whereas DOS was completely replaced around the time Windows XP
         | came around.
        
           | chx wrote:
           | Around the time Windows 2000 came around.
           | 
           | Up to Windows 3.11 it was a GUI on top of DOS. Windows 95,
           | 98, Me used DOS to boot and it was still possible to stop the
           | booting process at a DOS prompt (although in Me this was no
           | longer official). Finally Windows 2000 had nothing to do with
           | it as it is NT based.
        
             | optimalquiet wrote:
             | Windows 2000 was part of the professional NT line, though,
             | and was the companion of Me for the millennium releases. As
             | far as I know, 2000 wasn't marketed to home users. I think
             | what the comment you replied to is saying is the the
             | transition away from DOS wasn't completed for both
             | professional and home markets until XP, which unified
             | everything under NT for all markets.
        
         | nullindividual wrote:
         | Even ancient Windows includes many 3rd party libraries. I would
         | not expect any Win 9x or NT 3.51+ version of Windows to be open
         | sourced in it's entirety. I hope I'm wrong.
        
         | isp wrote:
         | 2038, you say? If your calendar is based on Unix epoch time,
         | then ensure that you have upgraded to 64-bit timestamps before
         | then.
        
         | 1970-01-01 wrote:
         | We need to wait for the NSA backdoors to expire first ;)
        
       | glonq wrote:
       | 4.0 was a buggy release. Where's the DOS 4.01 source?
        
         | aap_ wrote:
         | I would assume that with some disassembling 4.01 could be
         | reconstructed from 4.0 without too much trouble.
        
       | 1970-01-01 wrote:
       | I never thought I would be able to build DOS from scratch, but
       | here we are!
        
       | dosman33 wrote:
       | MSDOS 4 was reportedly an overall bad release and was not in wide
       | circulation, in all my days I think I only came across it once.
       | This is why DOS 3.3 and 5.0 were much more common to find in
       | circulation together.
       | 
       | I'm sure the source for 4 will make for some interesting bug
       | hunting. Anyone remember the MUF list? "Microsofts Undocumented
       | Features".
        
         | rnd0 wrote:
         | This is "multitasking dos 4" though, which isn't the same as
         | the much-reviled ms-dos 4. As I understand it, it's a lot
         | closer to dos 3 than it is to dos 4 in terms of functionality.
         | 
         | I wouldn't expect this to understand extended partitions, much
         | less large partitions (that dos 4 uses)
        
       | zdimension wrote:
       | https://github.com/microsoft/MS-DOS/blob/2d04cacc5322951f187...
       | 
       | > ; REV 2.15 7/13/83 ARR BECAUSE IBM IS FUNDAMENTALY BRAIN
       | DAMAGED, AND
       | 
       | Someone was angry that day. Wonder if any IBM dev ever stumbled
       | upon this when MS and IBM worked together.
        
         | justinclift wrote:
         | Well they're not wrong, so maybe the comment was just
         | prescient? :)
        
       | bfors wrote:
       | Looking at this code is a nice reminder that I have virtually no
       | real understanding of how computers work, and every part I work
       | with is a nice polished abstraction that hides 99% of the
       | complexity involved in actually creating value with a computer.
        
       ___________________________________________________________________
       (page generated 2024-04-25 23:00 UTC)