4 ms·
Altair Basic Interpreter Source Code (1975) [pdf]
- harkenugent 1mo ago[dead]
- thrownawaysz 1mo 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
- WillAdams 1mo agoOr, just buy the source for a dollar and bury it: https://www.folklore.org/MacBasic.html https://www.folklore.org/MacBasic.html
- bitwize 1mo agoThe 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 https://github.com/munificent/vigil
- reaperducer 1mo agoThe 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 1mo agoI'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 1mo agoGet 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 1mo agoA 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 1mo agoYou 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.
- teddyh 1mo agoKent Beck called this “test && commit || revert” in 2018, and credits Oddmund Strømme for the idea: <https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864 https://medium.com/@kentbeck_7670/test-commit-revert-870bbd7...>
- piker 1mo agoThese 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
- jll29 1mo agoDoes the code work? I.e., has anyone OCR'd the listing and fed it into an emulator yet?
- jhallenworld 1mo agoI 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 https://en.wikipedia.org/wiki/Monte_Davidoff
- senfiaj 1mo agoMe 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.
- MiroslavPokorny 1mo agoThe 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.
- roryirvine 1mo agoMicroFORTH would have been the nearest thing to it - but FORTH was sufficiently easy to implement that most vendors decided to make their own rather than pay FORTH Inc. SofTech Pascal could have been there, too, if they hadn't priced it way out of the reach of hobbyists. In many ways, that was Microsoft's real genius - charging just a few dollars per user to the manufacturers. Even the Professional Development System was only low hundreds of dollars rather than thousands. They were the first tech company to use the "make it up on volume" strategy.
- davidfekke 1mo agoHere is the 6502 assembly source code for Microsoft Basic: https://github.com/microsoft/BASIC-M6502 https://github.com/microsoft/BASIC-M6502
- joebig 1mo agoAnd all of it within ~4 Kbytes too!
- senfiaj 1mo agoAnd the PDF is about 100MB.
- andsoitis 1mo agothat'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.
- RetroTechie 1mo agoI'll cut mr. Gates some slack if scanned from original printouts, and done so to avoid OCR'ing errors. That said: it's an under 4K binary right? How much effort to check that text version matches original printouts? (or even paper tape!) The guy is a billionaire ffs! If he cares, hire some people to double-check OCR output. Errors in comments aren't end of the world anyway. Then maybe throw some small(er) sized images in that pdf + link to full-sized ones on the web.
- ChrisArchitect 1mo agoAssociated blog post from 2025: Celebrate 50 years of Microsoft with the company's original Source code https://www.gatesnotes.com/microsoft-original-source-code https://www.gatesnotes.com/microsoft-original-source-code (Discussion: https://news.ycombinator.com/item?id=43575884 https://news.ycombinator.com/item?id=43575884)
- joebig 1mo agoGates 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.
- senfiaj 1mo agoI 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 1mo agoWhy 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.
- markus_zhang 1mo agoI imagine that was one of the happiest moments in his life (completing Altair BASIC).
- petilon 1mo agoCredit 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-about-bill-gates-2011-4 https://www.businessinsider.com/10-things-you-didnt-know-abo... [2] https://www.theregister.com/software/2000/06/29/bill-gates-roots-in-the-trashcans-of-history/1502096 https://www.theregister.com/software/2000/06/29/bill-gates-r...
- abecedarius 1mo agoFrom [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 1mo agoIn 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 https://americanhistory.si.edu/comphist/gates.htm
- abecedarius 1mo 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 1mo agoThey 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 1mo agoOne 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.
- whartung 1mo agoIts talked about here: https://www.c64-wiki.com/wiki/Garbage_Collection https://www.c64-wiki.com/wiki/Garbage_Collection The process they used was simple, but brutal.
- anonymousiam 1mo agoGates would have had access to Dartmouth BASIC, which he likely referenced and possibly plagiarized while writing Altair BASIC. Back in that day, people shared software freely, so Gates took advantage. https://en.wikipedia.org/wiki/Dartmouth_BASIC https://en.wikipedia.org/wiki/Dartmouth_BASIC
- ChocMontePy 1mo agoThere's a good deep dive into the code here: https://www.maizure.org/projects/decoded-altair-basic/ https://www.maizure.org/projects/decoded-altair-basic/
- EvanAnderson 1mo agoIt's really neat that many of the comments in the 6502 version[0] match this 8080 version. I've only done a quick review but there's a lot of duplication. It's interesting to see how the 6502 version reflects its direct lineage from this version. The table of constants for the SIN function doesn't have the two bogus constants that make up the "WAIT 6502" easter egg[1]. Since WAIT wasn't in this version that easter egg couldn't exist anyway. That's not to say there isn't an easter egg of some kind in here, but it's not that one. (It's hard to believe it's been a year since the 6502 version was released. It seems like just a few days ago I was hunting around in the code for the easter egg...) [0] https://opensource.microsoft.com/blog/2025/09/03/microsoft-open-source-historic-6502-basic/ https://opensource.microsoft.com/blog/2025/09/03/microsoft-o... [1] https://www.pagetable.com/?p=43 https://www.pagetable.com/?p=43