classic corpo move. sell vapor then spend the money making the product. these guys just so happened to have the juice to create what they promised…
Convicted Monopoly
Is that assembly language it’s written in?
Mostly? What really sent me down a rabbit hole in reading this code was the syntax:
- The
==
assignment - The argument lists
<...>
PRINTX
instructions, etc.
The Altair 8800 uses an Intel 8080 processor. This syntax doesn’t match the instruction set for Altair or Intel, or even PDP-10 for that matter.
We have some hints about what may have happened. We know that Paul Allen wrote an Intel 8080 emulator designed to translate instructions to ones that a PDP-10 would understand.
We also know that Microsoft later released Macro-80 (M80) Assembly for Intel 8080 and Z80 architectures five years later. It turns out that M80 has
<...>
argument lists and.printx
instructions.So my suspicion is that Allen built some macro convenience functionality into his emulator, and that the language used is 95% Altair assembly with some macro functionality to support different kinds of Altair configurations and simplify some of the programming. Then they later evolved that into its own product offering and added Z80 support for it as well.
Building a Basic interpreter on top of a custom CPU emulator in a slightly-customized version of assembly in two months between 2.5 people and having it work correctly the first time on untested hardware is pretty damn impressive, whatever you think of Gates. It’s no wonder he’s so proud of it.
- The
Yes!
I didn’t realize assembly had named variables.
Assembly has variables. You can label locations in memory, then move them onto registers in order to perform operations.