back to article Microsoft liberates ancient MS-DOS source from the museum and sticks it in GitHub

As Microsoft gears up to unleash the Windows 10 October 2018 Update, Rich Turner, guardian of the command line at Redmond, took a moment to remind us of simpler, MS-DOS-based times. After original author Tim Paterson found the source for MS-DOS 1.25 (along with a six-inch stack of assembly print-outs), Microsoft handed the …

  1. ForthIsNotDead
    Thumb Up

    Ah! So you ARE *that* Richard Speed

    The TMS9900 reference confirmed it. We met at a TI-99/4A meet over twenty years ago in Derby IIRC. T. Stevens and R. Twyning (first names redacted for privacy reasons!) are mutual acquaintences, I believe. Good to know its you! I'm the author of TurboForth for the TI-99/4A.

    It keeps me out of the pubs.

    Very cool article, thanks Richard!

    1. bombastic bob Silver badge
      Angel

      Re: Ah! So you ARE *that* Richard Speed

      Yes, thanks Richard!

      Now (different Richard), can you do the same thing with Windows 2000 ? so we can FORK it? And update it to 64-bit? And have something that is *NOT* 2D FLATSO slurp-o-matic Win-10-nic ??? Maybe just as sample code for the ReactOS developers to work with???

      PLEASE???

      1. Dan 55 Silver badge

        Re: Ah! So you ARE *that* Richard Speed

        The Windows NT and 2000 source code leaked about 15 years ago, it must still be floating about out there.

        1. Waseem Alkurdi

          Re: Ah! So you ARE *that* Richard Speed

          ... and is still available and compilable as OpenNT.

  2. ColonelDare
    Coat

    To some MSDOS was an major leap forward.

    Personal Computer World magazine 1978 (Volume 1, Issue 1) published 'The Elegant Minmon' as a printed Z80 assembly code listing. After two years of soldering, typing it all in and adding a video driver (c/o Wieless World) it all sat in 1k bytes of Eprom.

    By 1981 I would have killed for a floppy disk drive and any DOS (CPM?) to move beyond the tape cassette at 1200 baud, but I couldn't afford one - and/or feed the kids.

    <grumble> Huh. People these days just don't know how lucky they are!!! </grumble>

    ;-)

    1. big_D Silver badge

      Re: To some MSDOS was an major leap forward.

      I saved up my pocket money and bought a ZX81 kit, my mother paid half of the cost. I then taught myself BASIC and machine code.

      At home I was stuck with the cassette deck, but I had a weekend job working for a liquidator, repairing and refurbishing the computers they got in. A lot of Apple IIs, but also a lot of CP/M and a Z80 based UNIX box! :-O

      The best thing I had to "play" with was a Shelton Signet with a 2 or 5MB hard drive! It also had Collosal Cave on it.

      1. LucreLout
        Happy

        Re: To some MSDOS was an major leap forward.

        I saved up my pocket money and bought a ZX81 kit, my mother paid half of the cost.

        You saved your pocket money.... and your mum paid half the cost? I dunno if that's commedy genius right there, or just a basic misunderstanding of economics.

        1. RayG

          Re: To some MSDOS was an major leap forward.

          Sounds like good parenting to me - and sound economics. Requiring the kid to commit pocket money means their decision has an opportunity cost so it represents a real commitment, while the extra parental contribution incentivises the decision over others. Perhaps kit-buying mothers have a better grasp of economics than self-confessed lucre louts?

          1. LucreLout

            Re: To some MSDOS was an major leap forward.

            Sounds like good parenting to me - and sound economics.

            Good parenting yes, sound economics? No. In reality, his mother has paid 100% of the price tag, not the half claimed; that's just an accounting fiction.

            Perhaps kit-buying mothers have a better grasp of economics than self-confessed lucre louts?

            Unfortunately there's no evidence for that in either the original post nor yours.

            1. Dan 55 Silver badge

              Re: To some MSDOS was an major leap forward.

              Even so, it teaches a) saving and b) having an interest in looking after it.

              If there's a magic money tree then it doesn't matter if it breaks as there'll be another computer along next Christmas.

              1. onefang
                Unhappy

                Re: To some MSDOS was an major leap forward.

                "If there's a magic money tree then it doesn't matter if it breaks as there'll be another computer along next Christmas."

                But but but I wanna new computer nooooowww! I'll hold my breath until I turn beige!

            2. NibsNiven

              Re: To some MSDOS was an major leap forward.

              You assume pocket money = allowance. Years before I was 16, I earned pocket money by doing chores, odd jobs for neighbors, and delivering papers. I spent it on books, model kits, and music.

    2. Jason Bloomberg Silver badge
      Pint

      Re: To some MSDOS was an major leap forward.

      <grumble> Huh. People these days just don't know how lucky they are!!! </grumble>

      Kids today can still have all the joys of working constrained bare metal on the Raspberry Pi GPU, which neither Broadcom or the Raspberry Pi foundation have officially documented, if they care to.

      That's got video, serial and I/O capabilities. I wonder if MS-DOS could be ported and cajoled to boot on that?

      1. SolidSquid

        Re: To some MSDOS was an major leap forward.

        There's also the option of ARM programming on the Pi, since you boot it off an SD card and that can have ARM based code for it to execute on boot

      2. This is my handle

        Re: To some MSDOS was an major leap forward.

        Really? Z80-based Unix? A 32-bit O/S on an 8 bit chip? I seem to remember that Xenix (when it came along) was a 16-bit port, and that Zilog did make more powerful chips based on the venerable Z80, but not quite as popular. All the Z80s I ever touched ran CP/M, and I'd have saved a month or so of beer money for a Unix that ran on them.

        1. Tom 7

          Re: To some MSDOS was an major leap forward.

          I believe you could run Unix on a Z80 with a little bit of work - this one is not Unix but shows it could probably be done http://www.symbos.de/

          1. shawnfromnh

            Re: To some MSDOS was an major leap forward.

            I've never even heard of that OS before. It was like it was Linux being invented from the description but for back then that wasn't to bad looking and for people that have run win 3.11 will know that the stuff all looked similar and some of those images reminded me of Geocities webpages, they were so weirdly the same overdone themes to try to stand out but often I would hit a page that looked like a paint factory exploded and my mind would just take the info from my eyes and say "nope, fuck this shit I'm gonna have a migrain even if I happen to find out how to navigate this atrocity of a webpage design that someone thought was the best they had in them and their site was so much better from all the chaos of colors. Hell the flat design of many websites kind of gets on the nerves also like driving for hours in the mid west and realizing that the view hasn't changed for a few hundred miles and you're so bored.

          2. Anonymous Coward
            Anonymous Coward

            Re: To some MSDOS was an major leap forward.

            We had a Z8000 unix system, the first unix sytem I ever saw.

            1. Glenn Booth

              Re: To some MSDOS was an major leap forward.

              My first Unix* almost put me off for life. A Hitachi 2050 workstation (68010 based??) that booted up into some windowed Japanese UI. I had to learn the magic combination of characters that would allow me to communicate with it in something a bit like ASCII, and repeat it after every reboot. It was black magic I tell you.

              * It was a HP-UK derivative, so probably not really Unix, in the POSIX compliant sense of the word.

            2. Glenn Booth

              Re: To some MSDOS was an major leap forward.

              My first Unix* almost put me off for life. A Hitachi 2050 workstation (68010 based??) that booted up into some windowed Japanese UI. I had to learn the magic combination of characters that would allow me to communicate with it in something a bit like ASCII, and repeat it after every reboot. It was black magic I tell you.

              * It was a HI-UX derivative, so probably not really Unix, in the POSIX compliant sense of the word.

        2. Mage Silver badge
          Devil

          Re: To some MSDOS was an major leap forward.

          Cromix from Cromenco was Z80 and then 68000 / Z80 hybrid, then 68000 only. It certainly looked like Unix.

          Xenix though needed a minimum of a 286.

          The Z8000 was late and a disaster compared to 68000. The 8088/8086 was really more like like an 8080/8085/Z80 than a 16 bit CPU. Clue is fact that Intel had a 8080 to 8086 Assembly translator and it used 64K pages. DOS pretty much was a clone of CP/M86, which was barely more than a translation of CP/M 80.

          DOS and 8088 and IBM PC held PC back for 10 years. No wonder Acorn developed ARM & RiscOS, though the Archimedies Unix was 1987, I think, which was after 80286 (1982) and 68000 (1979!) ports of Xenix and Cromix.

          Almost every 286 ran purely DOS and x86 mode. Very few had Unix / Xenix. CP/M was great in 1974, but to essentially base PC DOS/MS DOS on it and use the 8088 in 1980 (1981 UK) was madness and it was a disaster that it became popular. Still amazing that Apple II was still selling and there there were far better machines using 8088/8086 than the IBM, like the Victor 9000 / ACT Sirius 1. The PC was clunky garbage.

          DOS wasn't even doing subdirectories till maybe 2.11? Only "Mature" at 3.3, DOS 4.x and 5.x Pointless. DOS 6.22 only good to load WFWG3.11. It and especially Win9x held back real Windows (NT), which MS has progressively broken since releasing Vista (Win 7, really NT 6.1 was Vista service pack).

          Meanwhile Linux which was a curiosity when NT first released (came out at similar time) gradually got better and was decent enough by 1999 for servers, and Desktop by 2007. Now Linux Mint + Mate is seriously better than Win 10 (Should be Win NT 7.3 approx).

          It's a mystery why IBM did what they did and Digital Research didn't sue MS out of existence. But then MS had previous with BASIC. They didn't develop it, it was a port of Dartmouth BASIC.

          1. Doctor Syntax Silver badge

            Re: To some MSDOS was an major leap forward.

            "The Z8000 was late and a disaster compared to 68000."

            It worked OK. My first Unix box was a Z8000 Onyx although what was sold was a bit tightly configured. We had to by another half meg of memory and a 40 meg disk for the database. Moved on from there to a trio of Zilog boxes.

            "DOS pretty much was a clone of CP/M86, which was barely more than a translation of CP/M 80."

            I thought QDOS which became MSDSOE was written because Digital Research were dragging their feet over CP/M-86.

          2. Fire Flash

            Re: To some MSDOS was an major leap forward.

            In another life a very long time ago, I can remember working on a Wyse based Xenix multi user system with an Intel 80186 as the chip.

            1. big_D Silver badge

              Re: To some MSDOS was an major leap forward.

              I worked on an Olivetti 286 based Xenix system as well, with a 20 port COM board sticking out the back and a dozen or so dumb terminals connected to it.

            2. stephanh

              Re: To some MSDOS was an major leap forward.

              My understanding is that there were custom Xenix versions for special 8086/80186 machines which had an additional (external) MMU added. However, if you wanted to run Xenix on a "standard" PC you needed a 286 at the minimum (for the built-in MMU)

          3. BinkyTheMagicPaperclip Silver badge

            Re: To some MSDOS was an major leap forward.

            You've got a selective memory, the 8088/6 and DOS weren't ideal but made a lot of sense at the time. The 8088 was cheaper, enabled the use of an existing design, and mostly interfaced to 8 bit peripherals.

            When the IBM PC came out, that DOS would win was not a given. It had the option of DOS initially, but also CP/M-86, and UCSD p-system. There was a huge amount of CP/M software available, and that no doubt informed the extremely CP/M like initial design of DOS, that it slowly diverged from.

            It's true that most 286s ran DOS, but it wasn't for a lack of Intel trying. The 286 was explicitly designed as a server chip (in some ways the Pentium Pro of its time). If it was aimed at running DOS they would have included more real mode functionality and easier ways to switch between protected and real mode.

            The real problem was memory usage, whether on the 286 or 386 onwards. OS/2, Unix, and Windows NT all used a considerable amount of memory for the time. They all had spotty driver support, and native applications were in short supply.

            1. Dan 55 Silver badge

              Re: To some MSDOS was an major leap forward.

              The real problem was memory usage, whether on the 286 or 386 onwards. OS/2, Unix, and Windows NT all used a considerable amount of memory for the time. They all had spotty driver support, and native applications were in short supply.

              OS/2 was late 80s and NT was early 90s, neither were around at the start of the 80s. By their release the memory problem was more-or-less solved. Unix was around but neither that nor CP/M could compete with DOS in terms of memory usage which was what mattered then. Unix also really needed memory management which didn't appear until the 286.

              So that's why MS-DOS was so popular, it ran on everything, but using MS-DOS and DOS software on a 286 was like using a Ferrari in first gear to go to the shops.

          4. taz-nz

            Re: To some MSDOS was an major leap forward.

            Windows 7 wasn't a service pack for Vista, Vista had two service packs.

            Windows 7 kernal was only numbered 6.1 for application compatibly, so you didn't get a bunch of apps checking kernel number and giving an error that they were not compatible with that version of Windows.

            This is the same reason Microsoft skipped Windows 9, because badly coding version checks could mistake it for Windows 95 or 98.

            1. Dan 55 Silver badge

              Re: To some MSDOS was an major leap forward.

              By the time you installed the platform update on Vista, there was little between Vista and 7.

          5. NibsNiven

            Re: To some MSDOS was an major leap forward.

            I thought MS Basic was ported to the Altair from DEC PDP-8 source code and adapted from there.

        3. itzman

          Re: To some MSDOS was an major leap forward.

          Back in the day UNIX was 16 bit.

          1. Dan 55 Silver badge

            Re: To some MSDOS was an major leap forward.

            Back in the day UNIX was 16 bit.

            More than likely because most Z80 machines back in the day only had enough memory for a UNIX kernel and not much else.

            A Spectrum 128K/+3 or Amstrad CPC 6128 could just about manage it, if you could live without memory management. A 6502 machine like a BBC even with extra memory probably couldn't because its stack has a maximum length and is stuck at the bottom of the memory.

        4. Dan 55 Silver badge

          Re: To some MSDOS was an major leap forward.

          There is one version from the 80s called UZI, the home page is here but you have to go to archive.org to get the zip. There's a bit move info on this page and the following two pages.

          There is also an MSX-specific port called UZIX and a version which unifies all the different UZI ports called FUZIX, but I couldn't find any ports other than UZI for the successors to the Z80 and UZIX.

      3. joeldillon

        Re: To some MSDOS was an major leap forward.

        It's written in x86 assembler. Less 'port' than 'rewriting completely'.

      4. HandleAlreadyTaken

        Re: To some MSDOS was an major leap forward.

        >Kids today can still have all the joys of working constrained bare metal on the Raspberry Pi GPU

        They could, but I don't think it's as interesting to young people anymore. Around the time of the ZX-81 there was a certain energy, a certain excitement in tinkering with microprocessors, which I don't think still exist. Now it's mostly a trade, not a passion.

        It's the way of the world: building your own ham radio, or stereo amplifier, or getting some old broken car and rebuilding it in your backyard used to be fun activities, if you were geeky enough. They have become unfashionable, just like building your own computer, writing your own low level code or playing World of Warcraft.

        1. Linker3000
          Boffin

          Re: for the cost of a tape to copy them to and delivery.

          Don't write off the retro computer scene just yet...

          This lot have just started regular UK meets: https://rc2014.co.uk/

          also: https://www.retrobrewcomputers.org/doku.php?id=start

          ...and shameless self-promotion:

          https://github.com/linker3000/Z80-Board

    3. Persona Silver badge

      Re: To some MSDOS was an major leap forward.

      I bought an 8 inch floppy disk in 1981 for my first CPM system. It cost me £220, which was a lot if money back then and gave me 500k of storage. Almost as bad was dynamic RAM chips that cost £75 for 16 kbytes.

  3. Doctor Syntax Silver badge

    I was intrigued by a comment in the readme.doc for V2.0. It seems that the original plan was to use / as a path separator and - as a switch character , i.e. like Unix (or, as the notes say elsewhere, Xenix) and the change to \ and / respectively was at the behest of IBM.

    1. Version 1.0 Silver badge

      Maybe the IBM lawyers could read code and didn't want to risk getting sued ... that's what would happen these days isn't it? .... except that lawyers these days can't read code.

      1. Doctor Syntax Silver badge

        "Maybe the IBM lawyers could read code and didn't want to risk getting sued"

        I'd always assumed that the \ and / stuff was to look a bit VMS-like in the way that CP/M looked a bit PDP-8-like. I think if lawyers were involved they'd have been even more wary of that.

        1. Kubla Cant

          CP/M looked a bit PDP-8-like

          Except that one is an operating system and the other is a computer. Perhaps it was a bit like RT-11, RSX or RSTS? I recall that CP/M and RSTS both involved extensive use of a command called PIP.

        2. Adrian 4

          VMS had a / for options but . for path separator.

    2. Anonymous Coward
      Anonymous Coward

      Or maybe IBM already had by then a large international customers base, and knew more about different keyboard layouts than a bunch of engineers in some US uni who believed the whole world began and ended there. You see the same bad design in C, which is also designed around a US keyboard.

      For example, Wirth, working in Switzerland - where you have four different languages and related keyboard layout needs, adopted a far different approach, for obvious reasons.

      1. Phil O'Sophical Silver badge

        You see the same bad design in C, which is also designed around a US keyboard.

        Ah yes, I remember getting a bunch of VT220 terminals with UK keyboards where, for some reason, DEC had replaced the { and } symbols with fractions, ¼ and ¾ IIRC. Getting braces required a compose sequence, a right PITA.

        We can't have been the only C programmers who complained, it wasn't long before many small plastic bags with the required UK-US conversion keycap set arrived. Lever off the old, insert the new, and change the keyboard selection setting.

        1. big_D Silver badge

          German keyboards also don't have {} or [] on a dedicated key, \ and | also need a compose (AltGr) keypress, as do ~ and @.

          The worst are the Apple keyboards, those "special" symbols are on different keys to normal / Windows keyboards, but, and here is the best bit, with the exception of @, which moves from Q to L, none of them are actually marked on the keyboard! You have to "guess" where they are.

          But at least we get the ° symbol as a "normal" keypress (shift + ^, on the left side, under the Escape key).

          Nearly all modern programming languages are hostile.

          1. Tim 11

            apple keyboard

            even to this day you don't get the # key printed on a macbook air UK keyboard

            1. Anonymous Coward
              Anonymous Coward

              Re: apple keyboard

              > even to this day you don't get the # key printed on a macbook air UK keyboard

              It is printed on my Macbook Pro 2015 "UK" keyboard:

              £ #

              3

              But really it's just a US keyboard with the £ added. Apple in their arrogance don't provide a proper UK keyboard, with " and @ in the right places. So I just set the "British - PC" layout and type blind.

              # then also ends up in the right place (for a UK keyboard), on the key beside Return which Apple labelled as backslash. As a programmer, typing '#' as an Option-combination is just out of the question.

              1. Mage Silver badge

                Re: apple keyboard

                And many US "PC" keyboards have one less key, the one to the left of Z is missing.

                Though why they didn't stick the extra key beside Right Shift is a mystery.

                I set CapsLock to be Compose. Also on Linux the AltGr does something sensible on nearly every key, I was surprised I had to use US Int to get áéíóú on US keyboard which also creates "Dead Keys."

                How do you spell Irish names? What ever way the person with it says! Including the áéíóú, or mh bh etc. The Scots also have the reverse accent, not used in Irish.

            2. shifty_powers

              Re: apple keyboard

              yes you do, can see it sitting here in front of me right now.

            3. Sgt_Oddball

              Re: apple keyboard

              You do, it's next to the 3.

              1. Kristian Walsh Silver badge

                Re: apple keyboard

                The # symbol is inconsistently present on Apple's UK keyboard layouts across all products. There wasn't any particular date at which it arrived, or left, as the company regularly had some products with it, and some without, with no logic to which is which. The only vague pattern is that "Pro" in the name tends to correlates with "#" on the key-cap, but it's not a guarantee.

                My own recent experience: Pro 15" (2015) - yes, USB Keyboard (2010) - no. Pro (2010) - yes. Pro 13.3 (2012) - no.

                Consistency. It's what they're known for.

                (Placement of # , ~, " and ` is the one thing that still catches me when I move from Mac to Linux/Windows. Objectively, the "PC" key placements are more programmer-friendly, but I have decades of muscle-memory telling me to type Option-3...)

          2. ChrisC Silver badge

            Or just as bad, laptop keyboards with the dual-role function keys, where the default action for pressing the key is the alternate role (decrease brightness, switch wifi on etc.) rather than the Fn keypress my muscle memory is expecting...

            1. Anonymous Coward
              Anonymous Coward

              Or just as bad, laptop keyboards with the dual-role function keys, where the default action for pressing the key is the alternate role (decrease brightness, switch wifi on etc.) rather than the Fn keypress my muscle memory is expecting...

              That's one of my real pet peeves. The only saving grace on the laptop I have here is that they're left 'F5' unmolested

            2. This is my handle

              And let's not even talk about mobile keyboards

              That is all.

              1. cat_mara

                Re: And let's not even talk about mobile keyboards

                Agreed. I attribute the resurgence in the popularity of vim among developers at least partly to the fact that no two laptop manufacturers can seem to agree on where to put the cursor movement keys...

          3. Sgt_Oddball

            neither does the French...

            No braces for you either (having bought a mechanical keyboard for £20 with the French keyset I later noticed this). But then you can always set a keyboard to a different keyset and let muscle memory figure the rest out (ISO for the win and all that. Down with the ANSI standard and it's silly small enter key)

          4. Someone Else Silver badge

            Bitch, Bitch, Bitch!

            Just try doing anything useful (in any language) with an APL keyboard....

            1. onefang

              Re: Bitch, Bitch, Bitch!

              Back in the day when I did use a couple of APL keyboards, I was able to do many useful things, when writing APL code.

          5. Anonymous Coward
            Anonymous Coward

            Keyboard layouts and symbols

            It pains me to say it (as a non-American), but every other keyboard layout (yes, even or perhaps especially British) sucks to some degree, especially that poor runt of a left-shift key (when instead they could have inserted the extra key alongside right-shift, and given us two usably sized, albeit slightly smaller, shift keys instead of one useless one, and one that you barely ever use because the mouse is (more commonly) in your right hand).

            The arrangement of symbols on a US keyboard is logical and sensible (single and double quotes on the same key, backslash and pipe on the same key and close to forward slash, etc), unlike the UK keyboard, where, just to fit in the £ sign, somebody seems to have sneezed over most of the rest and has moved most of the symbols to entirely random places.

            If you then set a "compose" key, you're in business for just about every accented letter or typological symbol (yes: °C, ², ³, µ, etc, etc) that you might commonly need.

            Perhaps it might make sense to add a "column" or two of extra keys to allow every Latin/Greek/Cryillic language to fit easily and have a more internationally-friendly keyboard (with due apologies to Asian languages), but, failing that, I'll go for a US keyboard whenever I have the choice (which, oddly, usually tends to be only Apple: it's virtually impossible to specify your preferred keyboard when buying a Windoze laptop in the UK, sadly).

            1. BongoJoe

              Re: Keyboard layouts and symbols

              I have found the Norwegian keyboard to be the best for coding.

          6. Anonymous Coward
            Anonymous Coward

            Normal Windows keyboards?

            > The worst are the Apple keyboards, those "special" symbols are on different keys to normal / Windows keyboards...

            Remind me again who first* added "special" symbols to their keyboards?

            But when Microsoft added their "special" symbols, they somehow became "normal" ?

            Normal? You keep using that word....

            *Let's not get carried away.I know those Symbolics Lisp machine keyboards had lots of special keys and they probably even predated Apple adding special keys to theirs.

          7. swm

            Many systems in the 60's used teletypes to interface to computers. They used a form of ASCII (upper case only) with some characters varying. I remember alt vs esc, back arrow vs underscore, circumflex vs up arrow. I think the currency symbol varied from country to country.

            1. Anonymous Coward
              Anonymous Coward

              I think the currency symbol varied from country to country.

              The ASCII standard is quite specific, even if your keyboard has $, £ or other characters, they are NOT currency symbols, precisely because the same code may print differently in different countries.

              </pedant>

          8. Zolko Silver badge

            re-keyboard layout

            You have to edit the file /usr/share/X11/xkb/symbols/fr (or de...), change the third- and fourth-level keys to what you want, and you're the king of the keyboard: all the λ, €, á, ó, í, ←→↑↓, ω, Ø, ¿, α, γ, φ, |, ≠, ±, ⋅, ≥, ≤, ß, Σ, δ, Δ ... symbols are yours with Alt-Gr and Shift.

            Ah, don't forget the "sudo dpkg-reconfigure keyboard-configuration". You'll need good memory, but if you save that file and re-use it at each new install it'll become quite natural.

        2. Anonymous Coward
          Anonymous Coward

          "with the required UK-US conversion keycap set arrived"

          The problem is when you can't do that - in you case it was rarely used keys, but maybe for accountants. In other cases, you can't remove needed letters. The issue is many languages have some more glyph than English (i.e. accented characters, language-specific special characters like, etc.), and they need to find a place on a keyboard - and old keyboards had often less keys.

          As long as a keyboard is only used on machine for very specific use, you can switch to a US one, but then it becomes difficult when you had to write in your native language - I've seen many programmers using US keyboards, but then producing very bad documents when they couldn't use the proper glyph and used instead something resembling it, as done on very old typewriters (i.e. using e' instead of è)

          IBM started to delivery localized keyboards through its typewriters business far before it started to sell computers. I guess they had a far broader view of what characters are easier to use across different layouts, than some programmers who never put their noses outside US (but to get intoxicated in Mexico, maybe).

      2. Doctor Syntax Silver badge

        "Or maybe IBM already had by then a large international customers base, and knew more about different keyboard layouts than a bunch of engineers in some US uni who believed the whole world began and ended there."

        Very likely but what's that got to do with the price of fish? I think AT&T, the guys who gave the world the word "octothorpe", would have known a bit about keyboard layouts, especially for their system which was signed off internally on the basis that it was going to be word-processing documentation.

        1. Anonymous Coward
          Anonymous Coward

          "I think AT&T [...] would have known a bit about keyboard layouts"

          How many customers Bell/AT&T had abroad, outside maybe US offices and companies? I think something alike zero. IBM had a large presence outside US even before WW2 - so I guess it had already had to cope with different local requirements.

          1. Doctor Syntax Silver badge

            Re: "I think AT&T [...] would have known a bit about keyboard layouts"

            "Keep in mind IBM back then was one of the largest international companies"

            Maybe that's why they have their own Unix brand, AIX, although ISTR the original port wasn't in house, it was by Interactive.

      3. Dan 55 Silver badge

        I'm sure you can show us all the keyboard layout where it is so much more difficult or impossible to type a dash (minus sign) and a backslash had to be used instead.

        Because that's the net change from UNIX to MS-DOS command line syntax, the dash and forward slash got changed to forward slash and backslash.

        1. Anonymous Coward
          Anonymous Coward

          "I'm sure you can show us all the keyboard layout where it is so much more difficult"

          Not "much more" difficult, but often slower, as they are shifted keys, and are also in less comfortable positions. Why Unix uses /? Because it's quick to type, being on one side, and not in the top row in the middle. Same reason while 1-2-3 used it as the command key.

          C/C++ are even worse, as they use symbols which are "hidden" in many keyboards. To type a ~ on my keyboard I need an Alt+126 sequence, it's not available otherwise. Curly braces requires Ctrl+Alt+Shift, or Shift+AltGr, just AltGr is on the same right side of the keys to be pressed.

          With keyboards without a separate numeric pad could even become worse.

        2. Doctor Syntax Silver badge

          "Because that's the net change from UNIX to MS-DOS command line syntax, the dash and forward slash got changed to forward slash and backslash."

          Actually there's a third. / becomes the escape character instead of \. It's a perverse three way shuffle.

      4. jake Silver badge

        "a bunch of engineers in some US uni"

        C and unix were written at Bell Labs, not "some US uni".

        The basic guts of the pair were written by Kernigan and Ritchie (C) and Thompson and Ritchie (unix), not "a bunch of engineers".

        The keyBr0ad used was the one attached to the computer that they had available to them at the time. Keep in mind that back then, having a "spare computer lying around to play with" was an anomaly, having multiple keyboards would have been a bloody miracle. It's actually a testament to the ability and foresight of the three that C and unix are still with us and in wide-spread use, and on nearly all hardware platforms, nearly half a century later. They may have their flaws (doesn't everything?), but nothing else in computing comes even close to them in their ubiquity.

        Likewise, like it or not, American English is the lingua franca of computing (and by extension TehIntraWebTubes). That is the only real reason that many programming languages are US-keyboard centric. Don't shoot the messenger, I didn't make those decisions. Thankfully, remapping keyboards on a per-program basis is almost laughably easy with modern operating systems.

        1. Anonymous Coward
          Anonymous Coward

          "Keep in mind that back then"

          Keep in mind IBM back then was one of the largest international companies, unlike Bell or whatever, which had a far narrower US focus. IBM was much more used to work with international customers, and its designers were probably much more aware of the need of avoiding input issues.

          Kernigan & C. were exactly a "bunch of engineers" working in a lab, uni or Bell changes little - what else? Do you believe they are "gods", and as such they can't make mistakes? Unix and C are full of bad design decisions that could have been easily avoided looking beyond the nose, and knowing the world better. Actually, they are roadblocks to better systems, as too many people have been brainwashed into thinking they are perfect and don't need changes to cope with a far different world compared to 1969.

          Remapping keys is not a solution, because unlike 1969 applications are interactive and need to manipulate and display a lot of strings, so you have to type them as well, even if you use a language like C that still stubbornly tries to avoid the idea of a "string" - which is not an array of bytes, its semantic is far more complex - again, something that works only maybe in ASCII7.

          1. Doctor Syntax Silver badge

            Re: "Keep in mind that back then"

            "Keep in mind IBM back then was one of the largest international companies"

            If IBM were that infallible how do you explain the special cable that had to be made to join the header to the 9-pin D connector on an AT serial port? Somebody in this mighty international company didn't even know that the numbering convention of a header is different to that of a D connector and nobody reviewed the design to fix it.

        2. big_D Silver badge

          Re: "a bunch of engineers in some US uni"

          @jake yeah, the number of times I've had to debug code, especially HTML/CSS, because things don't appear as expected, only to realise that Amis can't spell colour!

        3. martinusher Silver badge

          Re: "a bunch of engineers in some US uni"

          That's what you get for being first out the gate.

          As it happens, I learned to program and worked fist as a programmer in the UK before transitioning to the US in the early 80s. I don't recall any difference in the keyboards because back then all small computers were coming from the US.

          I have used source code from many different countries and you're right that English is by far the most common language used in programming. One set of modules suggested an alternative, though -- C++ with German comments........what a combination!

          1. Anonymous Coward
            Anonymous Coward

            Re: "a bunch of engineers in some US uni"

            C++ with German comments........what a combination!

            I've seen Pascal with German comments and variable names. That was fun to debug...

            1. jake Silver badge

              Re: "a bunch of engineers in some US uni"

              I damn near killed an idiot who insisted on commenting in Klingon, but only on bits of inline assembler embedded in C ... I wouldn't have cared, but the comments popped up during a surprise visit from the CEO with a couple clients in tow looking to see how their customized version of the code was coming along.

    3. Anonymous Coward
      Thumb Up

      ... / as a path separator and - as a switch character...

      See switchar (spelling mistake deliberate).

      1. Adrian 4

        Re: ... / as a path separator and - as a switch character...

        That seems to be a FreeDOS feature but I think I encountered it long before - maybe on CP/M-86 or MP/M-86 ?

        1. Simon Harris

          Re: ... / as a path separator and - as a switch character...

          I seem to remember there was a simple hack round about MS-DOS 3.mumble that allowed you to change DOS separators and switches to Unix style ones.

          It's too long ago now to remember now whether it was changing the value of a constant flag or changing the arguments of CMP AL, '\' and CMP AL, '/' (or some-such) instructions somewhere in the executable.

          Another hack (more a prank than anything useful) was to edit the built-in command table to change one command to the name of a program that a colleague used a lot - the built in command then takes priority in parsing over looking for the executable.

          Watching the look of confusion when they were going to have a lunchtime game of LARN and instead get...

          c>larn

          ECHO is on.

          c>

    4. Mage Silver badge

      - and /

      You could change that at least in 2.11? We did as we were using Apricots as terminals on a Cromemco Z80/68000 system running Cromix

      Also NT had Unix style sym links, then the interface to set them vanished on a later NT. Later still you got something else instead and ability to mount drives (volumes) in directories. Strange people at MS.

      1. Kubla Cant

        Re: - and /

        NT had Unix style sym links, then the interface to set them vanished on a later NT

        Reappeared in recent Windows versions as mklink, but for some unfathomable reason you need system privilege to use it. I can create and remove directories and files, map network drives, map a drive letter to a directory, and do all sorts of other stuff, but creating symlinks is only for the big boys.

    5. stephanh

      / vs. \

      This is fairly well documented. MS-DOS 2.0 added a bunch of Unix-like features, most importantly directories. However / was already in use to start command-line options. Which was, by the way, compatible with CP/M and various IBM OSes, so it is not as if Microsoft invented use of / for options.

      So ultimately it was decided to use \ rather than Unix / as a directory separator. HOWEVER DOS and Windows have always supported / as an alternative directory separator in the API, so usually / works equally well in a context where a command-line option cannot appear (i.e. open file dialog).

      (For the true pedantic: using / instead of \ will NOT work with the \\?\ path prefix.)

  4. Version 1.0 Silver badge
    Pint

    Another shot of Code

    I ought to dig out my old disassembly of CP/M, it's still around somewhere, I was never that interested in MSDOS. But it's nice to see this old code coming out of the cupboard and studying it should be quite instructive for coders these days.

    Ah yes, the old days when we all felt that 64kB of memory was way more than enough - these days you can't get Visual Studio to do "Hello World" and run in 64k.

    1. Zippy´s Sausage Factory

      Re: Another shot of Code

      Wasn't the original CP/M at least partly written in BCPL? Or was that MP/M I'm thinking of?

      1. Dave Pickles

        Re: Another shot of Code

        Wikipedia reckons that it was written in PL/M (a minimalist version of PL/1). From memory of poring over the disassembly of CP/M 2.2 I suspect that only the CCP was written in high-level language.

        1. Blue Pumpkin
          Devil

          Re: Another shot of Code

          PL/M was provided by Intel as part of their MDS - Microprocessor Development Systems - that provided compilation and debug tools for the processors.

          A sort of Pascal Algolly thing - I preferred assembler :-)

    2. big_D Silver badge

      Re: Another shot of Code

      Take a look at SpinRite from GRC sometime, the .exe is 170KB and that includes the 1,4MB of compressed FreeDOS needed to create a bootable ISO!

      There are still some people around who take won't waste a byte in their code.

      He also wrote the Inspectre tool for seeing if the processor is susceptible to Spectre and Meltdown. The original version was around 112KB, and Steve moaned that 96KB of that was the damned desktop icon!

      1. DropBear
        Facepalm

        Re: Another shot of Code

        Ah yes, Wizard Steve of the GRC fame, he who famously foresaw the apocalypse that would bring about the end of human existence as we know it once raw sockets arrived on windows, making a bigger racket about it at the time than all Mayan doom-sayers in 2012 combined. A credit to his whole species, he truly is...

    3. Anonymous Coward
      Anonymous Coward

      Re: Another shot of Code

      One reason I love my current job is that we do embedded stuff for solar powered lights which use STM8 micros. These are very 6502 like CPUs with ADCs and timers, just like my BBC Model B from 1982... But with less RAM and ROM so shoe horning in protocol stack is a bit tricky!

      1. Anonymous Coward
        Anonymous Coward

        Re: Another shot of Code

        Any job vacancies there?

  5. DLSmith

    I still have the original MSDOS 2.0 disks that came with the IBM PC I bought in '83 or '84. Would be interesting to see if they are still readable.

    1. John Brown (no body) Silver badge

      "I still have the original MSDOS 2.0 disks that came with the IBM PC I bought in '83 or '84. Would be interesting to see if they are still readable."

      I think the oldest MS-DOS I have disk for is 2.11 that came with a Tandy 1000 (A PC clone with the sound/graphics/joystick ports of the IBM PC Jnr added.)

  6. John Sanders
    Flame

    Wake me up

    When MS open sources anything of relevance no strings attached.

    1. big_D Silver badge

      Re: Wake me up

      Given they were one of the biggest single contributors to the Linux Kernel in recent years, what exactly are you looking for?

      1. Anonymous Coward
        Anonymous Coward

        @big_D - Re: Wake me up

        That's not a way to wake up someone. You scare the hell out of him telling him MS got their hands on the Linux kernel.

    2. Dan 55 Silver badge
      Trollface

      Re: Wake me up

      File Manager?

    3. This post has been deleted by its author

    4. stephanh

      Re: Wake me up

      "When MS open sources anything of relevance no strings attached."

      Visual Studio Code?

      https://github.com/Microsoft/vscode

      Apparently now ranked among the most popular editors.

  7. JDX Gold badge

    Later versions?

    Have MS opened the source of later MS-DOS version as well? I wonder which version they moved to C from raw ASM... 3?

  8. Anonymous Coward
    Boffin

    Blast from the past!

    Shout out to all Edinburgh Uni alumni who used Edinburgh IMP with some inline assembler for systems programming!

  9. jake Silver badge

    "Big Blue needed an OS"

    Sadly, they didn't get an OS. What they got was a glorified program loader. A huge, buggy, barely fit for purpose program loader. And we've all been suffering as a direct result ever since.

    1. Michael Wojcik Silver badge

      Re: "Big Blue needed an OS"

      A huge, buggy, barely fit for purpose program loader

      Base calumny! MS-DOS 1.25 isn't all that big.

      1. Michael Wojcik Silver badge

        Re: "Big Blue needed an OS"

        Downvote for a simple joke? Man, it's a tough crowd at the Reg today. No matter.

  10. Anonymous Coward
    Anonymous Coward

    SMARTAAR

    ^ meant something once. Now, not so much.

    1. Michael Wojcik Silver badge

      Re: SMARTAAR

      ^ meant something once. Now, not so much.

      Nonsense. Depending on context, it means "insert here", "circumflex", "exclusive-or", "exponentiation", ...

  11. Anonymous Coward
    Anonymous Coward

    Bloat

    Interesting to see the bloat started with the first version MS authored internally.

  12. Dr Paul Taylor

    Ah, 9900

    My very first programming job. Instron in High Wycombe.

    1. Anonymous Coward
      Anonymous Coward

      Re: Ah, 9900

      Ah. My first assembly job. Programming on the TMS 9900 (and the SBP 9900, anyone remember that?) at Marconi Defense in Welwyn Garden City. There was also the chip-slice version that could run at 10MHz. But it needed a lot of cooling.

      After that moved to Intel (8085). What a come-down...

      Then came 6800, 6809 and 68000. Does anyone remember OS-9 (which ran on the 6809). As someone explained it to me, a sort of UNIX which all of the good bits left out. It was terrible...

      I also did a lot of work with the TRW multipliers (FFT). There was a sticker on them warning you not to power them up without sufficient cooling. If you did they failed whilst de-soldering themselves from the board. For some reason our mother-boards were upside down and you had to hardware debug them with the chips on the under-side.

      1. Old-Coco-User

        Re: Ah, 9900

        I was using OS-9 on a Tandy Colour Computer 3 (COCO 3), I was showing it off to a friend, we were downloading a picture from a BBS in one shell window at 1200 baud, then opened up another shell and started my picture viewer which opened the file with a read lock; it showed the image line by line as it downloaded. Very cool at the time....

  13. nautica Silver badge
    Boffin

    What's all the fuss about? What's the big deal?

    MS-DOS 2.11--running a 3.5" floppy drive--is alive and well, in ROM, on my 1987 Toshiba T1000 laptop; bought brand-new--along with a $295, 512K RAM upgrade--and is still brand-new.

    The other best investment I ever made was the 5.25" floppy-drive peripheral for it, which allows me to say to my friends--who bemoan the fact that they can't read (or write, of course) any of their legacy 5.25" floppies which they may still have for some reason--"You can't!? What's the problem?"

    I'm not ever touching the original, but one of these days I'm going to put a back-light on the screen of the second--or perhaps the third--of the back-up devices I bought.

    The T1000 in conjunction with reading Van Wolverton's book was how I learned DOS--and 'edlin'. No wasted youth there!

  14. Unicornpiss
    Pint

    Commodore

    "MS-DOS 2.0 was a milestone for Microsoft, supporting the capacious 180 and 360 kilobyte floppy disks of the IBM XT and its clones."

    Back in 1980, Commodore had 512K and 1MB floppy drives. (the 8050 and 8250 if I recall) It's a bit off-topic, but I still wonder what the world would be like if Commodore hadn't been so mis-managed. They were so far ahead of everyone for most of a decade..

    1. IvyKing
      Megaphone

      Re: Commodore

      Back in 1980, 86-DOS supported 1.25MB 8" DSDD floppies. Weirdest aspect was supporting double sided single density floppies as separate drives for each side.

      Not surprised to hear about Paterson's code for the inner workings of MS-DOS 1.25 as I've read his code for IO.SYS used in 86-DOS 1.14 and MS-DOS 1.25. Another thing about Tim's code is that he paid attention to Intel saying DO NOT USE interrupts below 20H, unlike IBM/MS with the PC ROM based BIOS.

  15. nil0

    With all this talk of keyboard layouts...

    ...may I wave a flag for Microsoft Keyboard Layout Creator?

    It's been around since the days of XP, but I've only just stumbled across it. Define your own keyboard layout on Windows - so I've now got lots of AltGr-combinations for things like ° µ Ω ✓ ⌘ ½ → and dead-key combinations for óôòöõ.

    Wonderfully geeky fun.

  16. clyde666

    PC DOS and all that

    My first experience with an IBM PC was where I worked, my department got the company PC one day a week. I made sure I became the department's expert on that.

    Its first upgrade was a full size 5.25" floppy drive. Woo hoo. I think that drive was equivalent to about a month of my wages.

    I've still got (somewhere hopefully) PC DOS 1 (or maybe 1.1 ? ) on floppy.

  17. Southernboy

    Some gold in the QUICK.txt file

    This is a quick reference to internal and external commands.

    Some really honest descriptions in here:

    EDLIN

    Ridiculous editor

    PRINT

    The infamous background file printing utility which

    fools you into thinking MS-DOS can do something it

    really can't.

    CONFIG.SYS

    A special file which will do all sorts of wonderous

    things when the system is booted.

  18. Spamfast
    Stop

    Chaff

    It's good to see that even if the development language has changed over the last 35 years, some engineers have always hated writing history and comments.

    If you don't have a revision control system then history is all well and good. But people who insist on putting revsion history in source files these days are time-wasters. We have commit messages for that.

    Similarly for the filename and for function names and signatures in function block comments. All chaff and it all gets out of sync when someone changes the function without updating the comment.

    And good source code needs very few comments if it's clearly structured using sensible symbol names. Lots of comments just to satisfy some metric or because your code is impenetrable is a sign of poor design & implementation.

    1. Dz

      Re: Chaff

      Oh shut up you massive bellend!

  19. Mystic Megabyte

    this did not go well

    This is from my addled memory so may contain nuts.

    Had a client whose office was 100m from Threadneedle St. (yep it's banking related)

    Mission was to somehow get MSDOS 3x to communicate in Portuguese to the mainframe in Switzerland and print locally. Codepages, who the feck designed that?

    Also X25 :( and a Swiss IT dude who did not want anything not DEC connected to his system.

    P.S. It's Friday here! (When you retire you can choose what day of the week it is)

  20. fluffybunnyuk

    not as much fun as using a dos pc as a 3270 mainframe terminal.

    Try sending "Attn" using a microsoft keyboard and see how far you get...

    @A@Q if i remember right....

    Dont worry youngsters, you'll never have to worry about the wierd n wonderful stuff on old keyboards like "Refresh" :)

    1. onefang
      Coffee/keyboard

      "Dont worry youngsters, you'll never have to worry about the wierd n wonderful stuff on old keyboards like "Refresh" :)"

      We still have to wonder why modern keyboards have "Break", "Pause", and "SysRq". Maybe they are there so Microsoft have an excuse. "It's slow coz you accidentally hit the Pause key." "Whatever you do, never hit the Break key, coz then you get to keep both halves.".

      Oh look, there's something old and crusty on my keyboard.

      1. Kubla Cant

        We still have to wonder why modern keyboards have "Break", "Pause", and "SysRq".

        And, of course, the key labelled "Scroll Lock", which doesn't.

  21. Zmodem

    someone at bristol uni in england, will use it for the first quantum computer OS/SoC

    .ASM has never changed

  22. Dz

    WTF

    This could have been a really interesting comments section but instead it's just turned into 3 pages of people whinging about fecking keyboard layouts, which actually had feck all to do with the article.

    1. jake Silver badge
      Pint

      Re: WTF

      It's called topic drift and reminiscing, Dz. It's a part of why many of the commentards hang out here. Joining in would be more productive than bitching about something that isn't going to change any time soon. During the meanwhile, relax & have a homebrew.

      1. Dz

        Re: WTF

        I'm all for topic drift but there's seldom few subjects more dull than keyboard layouts and codepages.

  23. fractiontech

    IBM originally approached Gary Kildall to make an operating system for their first PC.

    Gary had an OS product called CP/M, which was popular among early hobbyists and on 8-bit home computers of the late 1970s and early 1980s.

    They were unable to reach an agreement, so IBM went to Bill Gates.

    Gates didn't have an OS to offer, so he bought out QDOS and hired its author Tim Paterson (whose name is embedded in MS-DOS).

    Paterson had designed QDOS as a work alike to CP/M, which was compatible with CP/M files.

    The early versions of MS-DOS were enhanced QDOS.

    Speculation was and always has been rampant that MS-DOS was copied in some way from CP/M.

    The rest is history.

    1. sean.fr

      who owned CPM

      As I remember it Digital Research did not actually own most of the CPM source code as it was re-written as class exercises by Kildall's students and was in the public domain. Only about 2K bytes were owned Kildall. Hence the large number of CPM clones and ports.

  24. IanMoore33

    still runs ms-dos

    the millions of Intel garbage mass produced by foxconn sweat shops today still boot me-dos using a USB attached floppy diskette.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like