Play with Bill Gates’ First Child!

Chris DavisFun Things To Do

After reading the January 1975 issue of Popular Electronics with the Altair 8800, Bill Gates (then a 19 year-old sophomore at Harvard) contacted MITS to inform them that he and others were working on a BASIC interpreter for the platform. In reality, Gates and friend Paul Allen did not have an Altair and had not written code for it; they merely wanted to gauge MITS’s interest. MITS president Ed Roberts agreed to meet them for a demo, and over the course of a few weeks they developed an Altair emulator that ran on a minicomputer, and then the BASIC interpreter. The demonstration, held at MITS’s offices in Albuquerque, was a success and resulted in a deal with MITS to distribute the interpreter as Altair BASIC. They named their partnership “Micro-Soft”.

Terminal software (Putty or Tera Term are highly recommended.)

4k Basic

Written by: Bill Gates, Paul Allen, Monte Davidoff
When: July 1, 1975


  1. Stop whatever the Altair is doing – raise “Stop”, then raise “Reset”.
  2. To load BASIC – switch 2 up, switch 0 up (all others down).
  3. AUX1 down. This will load BASIC from Arduino memory into Altair memory and terminal will display MEMORY SIZE?
  4. Press Enter.
  5. Terminal will display TERMINAL WIDTH?
  6. Enter 80.
  7. Answering N  to WANT SIN? WANT RND? WANT SQR? will slightly increase available BASIC memory.
  8. Terminal will display:
    [4K VERSION]
  9. You are ready to program in BASIC!

Ok, Ok. This is version 3.2 of BASIC, so not really Bill Gates’ “first child”. If you really want to run version 1.0 of BASIC from Micro-Soft (thanks to Mike Douglas of for providing the paper tape file, and David Hansel for providing the instructions), follow this process:

  1. Download BASIC Ver1-0.tap (you can also download BASIC Ver 1-0.pdf if you want to read about it.)
  2. Connect to the Altair-Duino using Tera Term
  3. Either use a low baud rate (9600 is too fast for the boot loader to keep up) or set the “Transmit delay” setting in
    Setup->Serial Port to 10 msec/char.
  4. In the Altair-Duino configuration manager (STOP + AUX1 up), configure the “SIO” card to
    • primary host interface
    • use 7 bits: off
    • Serial input uppercase: off
    • Translate Backspace to: off
  5. Either key in the LOAD10 boot loader via the front panel switches:
    • To load from front panel:
      • Raise SW12 & SW9 and EXAMINE
      • Toggle the following data (octal):
        046 000 061 022 022 333 000 017
        330 333 001 167 043 326 152 300
        157 311 002 022


    • start configuration manager, enable serial input, exit config manager
    • type: H (should say “Reading HEX data…”)
    • paste contents of LOAD10.HEX into the terminal
    • start configuration manager, disable serial input, exit config manager
  6. [you may want to save the 1200h page to file at this point so it’s easier to use again later]
  7. Set A12, A9 up, all others down
  9. RUN (this will start the boot loader)
  10. In Tera Term, select ‘File->Send File…’
    • select BASIC Ver1-0.tap (that you downloaded in step 1)
    • make sure ‘Binary’ is checked
    • click OK (front panel lights on the Altair-Duino should start flickering lightly)
  11. Wait until the lights stop flickering (the boot loader does NOT automatically start BASIC!)
  13. RUN => At this point the “MEMSIZ?” prompt should appear

Here is a video of me loading Micro-Soft BASIC version 1.0 from a real paper tape:

YouTube video