7

Altair BASIC, the first version of Microsoft BASIC, was developed using an Intel 8008 emulator, modified to emulate an Intel 8080, running on a PDP-10 computer. This emulator was originally designed by Paul Allen so that he and Bill Gates could create the software for Traf-O-Data.

  • How was the original 8008 emulator developed?
  • What documents were required?
  • How did they ensure that it was a faithful emulation?
  • How was this then modified for the 8080?
  • What made it able to be modified so quickly?
  • What documents were required to do so?
  • What modifications to the emulator were made to fit specific behaviours of the Altair 8800?
20
  • 3
    Not sure what kind of answer you are expecting, unless someone digs up this particular emulator source or documentation. From a ten-thousend feet view, software development on a PDP-10 isn't that different from software development on any other computer, so the answer would be "the emulator was developed and modified in the same way as any other emulator on any other system". And cross-development was pretty common back then.
    – dirkt
    Oct 21, 2017 at 12:56
  • 3
    Paul Allen's biography "Idea Man" explains the story in a lot of detail.
    – tofro
    Oct 21, 2017 at 13:47
  • 4
    Designing an emulator for an early 8-bit CPU that only needs to be able to run a program you're developing isn't that hard. It's not like trying to make an emulator for entire an personal computer or video game console that needs to run every game made for it. My guess at the answers would be: Like any other software. The 8008 User's Manual. It wasn't particularly faithful. Like any other software. It's not that hard. The 8080 User's Manual. None.
    – user722
    Oct 21, 2017 at 16:24
  • 1
    My guess would be because they needed to make modifications to their BASIC interpreter to fit the specific behaviours of the Altair 8800.
    – user722
    Oct 21, 2017 at 16:50
  • 3
    My guess is that they used a real Altair 8800 to test it. The emulator would've been a tool to speed up development, but it couldn't replace testing on the actual hardware. From your link that appears to be what happened. They weren't sure it would work until they ran it on an actual Altair 8800. A comment in the source code, "FOR SIMULATOR FIXUPS", suggests that it was conditionally assembled according to whether it would be run on the emulator not, making the code for the emulator and the Altair different. upload.wikimedia.org/wikipedia/commons/c/cd/…
    – user722
    Oct 21, 2017 at 17:24

1 Answer 1

7

I'm guessing here, but I suspect they started from Intel's own INTERP/8 8008 simulator. This was supplied on tape for PDP-10 as FORTRAN IV source. While I can't find the source of INTERP/8, the manual is an appendix of this Lawrence Livermore report "SIlMULATOR PROGRAM FOR THE INTEL MCS-8 800 CPU" [PDF]. Intel's simulator for the 8080, INTERP/80, was released in 1973 in a similar format. Original source for INTERP/80 is available here.

The instructions for the 8008 and 8080 are quite similar, so it wouldn't be a superhuman effort to modify the Intel simulator. As the BIOS of these early micros didn't need to be much more than "print a char / read a char / write to port / read from port", even a very crude simulator would be of immense help.

8
  • According to the Altair BASIC Wikipedia page, "Gates and Allen had neither an interpreter nor even an Altair system on which to develop and test one. However, Allen had written an Intel 8008 emulator for their previous venture Traf-O-Data that ran on a PDP-10 time-sharing computer. He adapted this emulator based on the Altair programmer guide, and they developed and tested the interpreter on Harvard's PDP-10."
    – wizzwizz4
    Oct 22, 2017 at 8:43
  • 1
    but does it say that Allen wrote it from scratch? Intel wanted their processors used, so they provided tools like simulators to aid developers.
    – scruss
    Oct 23, 2017 at 1:09
  • Wasn't "write to port / read from port" already handled by the CPU?
    – wizzwizz4
    Oct 23, 2017 at 9:22
  • the raw instructions are, but where the ports are in the memory map depends on the hardware. That's where CP/M's BIOS ironed out differences: each vendor could have completely different ports for console/printer/disk I/O, but the BIOS allowed one call for all C/PM systems to do the same thing.
    – scruss
    Oct 23, 2017 at 14:53
  • "Allen then started developing a simulator program on the university computer that would emulate the Intel 8008 microprocessor." from here, p4 implies that he wrote it from scratch. Also, "Access to the DEC PDP-10 allowed Allen to complete his Intel 8008 simulator program" between "the fall of 1972" and "the fall of 1973". On page 5 it is also referred to as "Allen's simulation program", but other programs are referred to as not his: "He also adapted assembler and debugger programs for the Intel 8080."
    – wizzwizz4
    Oct 25, 2017 at 14:54

Not the answer you're looking for? Browse other questions tagged .