Altair Basic Interpreter Source Code (1975) [pdf]

(images.gatesnotes.com)

50 points | by Eridanus2 9 hours ago ago

32 comments

  • petilon 5 hours ago

    Credit should be given to Digital Equipment Corporation. Back then software isn't what companies made money on, it is hardware. Source code wasn't guarded as a secret as it is today, and you could find print outs in the dumpster [1]. Bill Gates and Paul Allen found the source code of DEC Basic [2] and ported it. (Wikipedia says Microsoft Basic was "inspired by" DEC's PDP-10 BASIC-PLUS.)

    [1] https://www.businessinsider.com/10-things-you-didnt-know-abo...

    [2] https://www.theregister.com/software/2000/06/29/bill-gates-r...

    • ndiddy 4 hours ago

      The Microsoft BASIC syntax is certainly inspired by DEC BASIC, but the actual implementation is completely different. DEC BASIC compiles the program source code into bytecode, while Microsoft BASIC tokenizes each line as it's entered and then interprets the tokens at runtime. You have to remember that minicomputers had vastly different capabilities from 8-bit microcomputers. Even if Gates did look at the code for DEC BASIC, there's not much there he could have used.

    • abecedarius 5 hours ago

      From [2]:

      > Gates said: "I'd skip out on athletics and go down to this computer center. We were moving ahead very rapidly: Basic, FORTRAN, LISP, PDP-10 machine language, digging out the operating system listings from the trash and studying those."

      Is there more context clarifying this means they studied the source code of DEC Basic?

      • petilon 4 hours ago

        In this [1] interview Gates says that he and his group got DEC BASIC source code and enhanced it.

        [1] https://americanhistory.si.edu/comphist/gates.htm

        • abecedarius 3 hours ago

          "The BASIC they did which we got ahold of the BASIC source code and enhanced t quite a bit was great."

          Thanks! I think this is still talking about his high school volunteer hacking rather than the MS Basic era. (i.e. doesn't obviously support your "ported it".)

          • petilon 2 hours ago

            They got the source code of DEC Basic, studied it, "enhanced quite a bit" then wrote their own Basic which is similar to DEC Basic, and you don't think it is a derivative? Ok. It is a derivative in my book.

  • tailrecursion an hour ago

    One of the things I'm often curious about is how various BASIC interpreters organize memory for string storage. You'd think there's some way to reclaim memory after an expression involving intermediate strings is finished. But you don't see descriptions for how BASIC works in this regard.

  • davidfekke 8 hours ago

    Here is the 6502 assembly source code for Microsoft Basic:

    https://github.com/microsoft/BASIC-M6502

  • piker 8 hours ago

    These two guys* were crazy productive in the 2 months they worked. Just the level of commenting shows how much thought they were able to give it during that span.

    * plus the math package guy

    • jhallenworld 5 hours ago

      I always thought that the floating point routines were the big feature that made Microsoft BASIC a thing (compared with both Radio Shack and Apple integer BASIC). It's interesting reading about Monte Davidoff and also that Gates knew they needed a specialist for this.

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

      • MiroslavPokorny an hour ago

        The reason i believe Microsoft Basic became popular across multiple platforms is because nobody else sold their BASIC to other hardware vendors.

        In those days the money was in hardware which cost a lot, and software was thrown in. It wouldnt make sense for IBM to sell their BASIC to another hardware vendor.

        Microsoft was different, they would sell their languages to anyone and they did. Can anyone actually name a competitor in those early days ?

        Even Apple didnt sell their own Woz written basic to other 6502 vendors, C= had to buy Microsoft Basic.

      • senfiaj 4 hours ago

        Me too. The 4K basic was quite limited in other functionalities (in order to fit into the memory). But that floating point module made it very competitive, although also made the execution slower. IMO Monte Davidoff is underappreciated.

    • markus_zhang 3 hours ago

      I checked the documentation and looks like even the 4K version supports single precision floating point numbers (32-bit). Not sure how they managed to do it in 8-bit machines but I guess they just had to use more registers/memory for each of them.

    • MiroslavPokorny 3 hours ago

      2 months to write a working BASIC from scratch in the shared computer environment seems highly unlikely. I think more time would be required and having some source to inspire and guide the design would be a big advantage.

    • jll29 8 hours ago

      Does the code work?

      I.e., has anyone OCR'd the listing and fed it into an emulator yet?

  • thrownawaysz 8 hours ago

    "FILE WILL BE DELETED AFTER PRINTING"

    hah I've never seen that before but reminds me to roguelike games.

    "permadeath coding" would be actually fun. IF compiler error THEN erase code repository or something like this

    • teddyh 7 hours ago

      Kent Beck called this “test && commit || revert” in 2018, and credits Oddmund Strømme for the idea: <https://medium.com/@kentbeck_7670/test-commit-revert-870bbd7...>

    • WillAdams 8 hours ago

      Or, just buy the source for a dollar and bury it:

      https://www.folklore.org/MacBasic.html

    • bitwize 7 hours ago

      The source code (and original assets) to many video games from as late as the 90s has been lost. The publishing company often deleted it after the game shipped, thinking it just took up space. This is one reason why, for example, there hasn't been a substantive remaster of Final Fantasy VII.

      Also, it sounds like you described Vigil: https://github.com/munificent/vigil

      • reaperducer 7 hours ago

        The publishing company often deleted it after the game shipped, thinking it just took up space.

        Floppy disks were not cheap, expensive, easy to get, or reliable. It sucked.

        Even on the U.S. east coast, I remember having to travel over an hour to get to the nearest store that sold floppy disks. Each BASF FlexyDisk cost $18 in 2026 money. So $50 if you wanted redundant long-term storage of one program.

        That's why we printed everything out all the time; especially for archive storage.

        …which also turned out to be a bad idea. Just in a different way.

        • cduzz 4 hours ago

          I'd guess that any of these media is sketchy for long-term archival storage.

          I've got probably 30 5.25 floppies in my house, and I have a 5.25 drive and an old motherboard that can probably recognize that drive, and I've got the cables to connect the drive to the motherboad (and power supply). I'd guess that there's maybe a 20% chance that, if I spent a week trying to mash it all together I'd be able to get some data off of some of these floppies.

          On other magnetic media the chances are between "haha, no" (oh, you've got an old 8 inch 10mb Bernoulli disk?) to 5% (oh, a QIC150 tape).

          On the other hand, if I found a stack of moldy greenbar printout of some data, I'd say that most of the data can likely be recovered, and likely for not a tremendous amount of money.

          • badc0ffee 4 hours ago

            Get a Greaseweazle and that floppy drive will work on any modern computer (macOS, Windows, Linux). I've been backing up floppies from a disorganized retro PC collection I bought, and almost all of them still work.

        • bitwize 4 hours ago

          A company of any size wasn't archiving stuff on freaking floppies. In the 70s and 80s most video games were developed on big iron—PDPs or VAXen, usually, and data from those was archived on paper or mag tape. If you were renting (or stealing) time on one of these, as "Micro-Soft" was in its very early days, then printing stuff out may have been more economical. But major game studios of the day had resources and means of bulk archival that didn't involving buying a bunch of floppies at Lechmere.

          • reaperducer 3 hours ago

            You vastly overestimate the budget and abilities of most software houses of the day.

            For every Atari or Epyx, there were many dozens of very significant publishers who did their work on consumer-grade hardware.

            Except for Atari and less than a handful of others with previous income, none started with PDPs on hand. They had to work up to that.

            It's not like today with everything consolidated and full of VC money. Bootstrapping your way to success was de regur, and the playing field was wide open to anyone with a home computer and a little talent.

  • ChrisArchitect 7 hours ago

    Associated blog post from 2025:

    Celebrate 50 years of Microsoft with the company's original Source code

    https://www.gatesnotes.com/microsoft-original-source-code

    (Discussion: https://news.ycombinator.com/item?id=43575884)

    • joebig 7 hours ago

      Gates plays the long game. The man dodged multiple requests over decades to publish this og code that launched MS as a company (pretended he had misplaced the same or forgot to reply or something): only to perfectly time it for a jubilee release.

      • markus_zhang 3 hours ago

        I imagine that was one of the happiest moments in his life (completing Altair BASIC).

      • senfiaj 4 hours ago

        I wonder were most of the comments added later? I guess they used pen and paper to write the ASM code and then enter it as machine code.

        • II2II 3 hours ago

          Why would anyone put themselves through that if they didn't have to? There is the tale of Allen hand coding the bootloader in machine code, but that was because he was on the plane to give a demo. Otherwise, all of the tales I've heard of the development of BASIC involved a mainframe. Hand coded assembly was certainly conceivable, given that terminals weren't exactly everywhere back in the day, but even a basic assembler does more than the straight translation of instructions into opcodes.

  • joebig 7 hours ago

    And all of it within ~4 Kbytes too!

    • senfiaj 4 hours ago

      And the PDF is about 100MB.

      • andsoitis 3 hours ago

        that's only because it is 157 images (one per page). if it were text it would have been a more reasonably size, albeit still much larger than the actual source.

        however, the PDF also adds nostalgia and more information than the source alone. whether that's a good tradeoff I'll leave up to the reader, but clearly Bill Gates thinks it is more interesting to post this than point to GitHub repo. I would agree.