Altair BASIC. Altair BASIC is a discontinued interpreter for the BASIC programming language that ran on the MITS Altair 8800 and subsequent S-100 bus computers. It was Microsoft's first product (as Micro-Soft), distributed by MITS under a contract. Altair BASIC was the start of the Microsoft BASIC product range.

Origin and development 
Bill Gates recalls that, when he and Paul Allen read about the Altair in the January 1975 issue of Popular Electronics, they understood that the price of computers would soon drop to the point that selling software for them would be a profitable business. Gates believed that, by providing a BASIC interpreter for the new computer, they could make it more attractive to hobbyists. They contacted MITS founder Ed Roberts, told him that they were developing an interpreter, and asked whether he would like to see a demonstration. This followed the engineering industry practice of a trial balloon, an announcement of a non-existent product to gauge interest. Roberts agreed to meet them for a demonstration in a few weeks, in March 1975.

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. Allen adapted this emulator based on the Altair programmer guide, and they developed and tested the interpreter on Harvard's PDP-10. Harvard officials were not pleased when they found out, but there was no written policy that covered the use of this computer. Gates and Allen bought computer time from a timesharing service in Boston to complete their BASIC program debugging. When fellow Harvard student Monte Davidoff stated he believed the system should use floating-point arithmetic instead of the integer arithmetic of the original versions, and claimed he could write such a system that could still fit within the memory limits, they hired Davidoff to write the package.

The finished interpreter, including its own I/O system and line editor, fit in only four kilobytes of memory, leaving plenty of room for the interpreted program. In preparation for the demo, they stored the finished interpreter on a punched tape that the Altair could read, and Paul Allen flew to Albuquerque.

While on final approach into the Albuquerque airport, Allen realized that they had forgotten to write a bootloader to read the tape into memory. Writing in 8080 machine language, Allen finished the program before the plane landed. Only when they loaded the program onto an Altair and saw a prompt asking for the system's memory size did Gates and Allen know that their interpreter worked on the Altair hardware. Later, they made a bet on who could write the shortest bootstrap program, and Gates won.

Versions and distribution 

Roberts agreed to distribute the interpreter. He also hired Gates and Allen to maintain and improve it, causing Gates to take a leave of absence from Harvard. The original version would retroactively be known as 4K BASIC when they added upgraded versions, including 8K BASIC, Extended BASIC, Extended ROM BASIC, and Disk BASIC.

The smallest version, 4K BASIC, could run within a 4K RAM machine, leaving only about  free for program code. In order to fit the language into such a small space, the 4K version lacked string manipulation and a number of common mathematical functions. These were added into the 8K BASIC version, which had string variables and manipulation functions, a larger set of math functions including RND for random numbers, Boolean operators, and PEEK and POKE. The 8K version is the basis for most versions of BASIC during the home computer era. Extended BASIC added PRINT USING and basic disk commands, while Disk BASIC further extended the disk commands to allow raw I/O.

In October 1975, 4K BASIC sold for , 8K BASIC for , and Extended BASIC for  (, , and , respectively). The prices were discounted to , , and  respectively for those who purchased "8K of Altair memory, and an Altair I/O board". The language versions were distributed on paper tape or cassette tape.

As they expected, the Altair was very popular with hobbyists such as the Homebrew Computer Club. Altair BASIC, as MITS' preferred BASIC interpreter, was also popular. However, the hobbyists took a "share-alike" approach to software and thought nothing of copying the BASIC interpreter for other hobbyists. Homebrew member Dan Sokol was especially prolific; after somehow obtaining a pre-market tape of the interpreter, he made 25 copies and distributed them at the next Homebrew meeting, urging recipients to make more copies. Gates responded in 1976 with a strongly worded Open Letter to Hobbyists that accused the copiers of theft and declared that he could not continue developing computer software that people did not pay for. Many hobbyists reacted defensively to the letter.

Under the terms of the purchase agreement, MITS would receive the rights to the interpreter after it had paid a certain amount in royalties. However, Microsoft had developed versions of the interpreter for other systems such as the Motorola 6800. When they decided to leave MITS, a dispute arose over whether the full amount had been paid and whether the agreement applied to the other versions. Microsoft and MITS took the dispute to an arbitrator who, much to Roberts' surprise, decided in favor of Microsoft based on MITS failure to market the software with their "best efforts". BASIC interpreters remained the core of Microsoft's business until the early 1980s, when it shifted to MS-DOS.

See also 
 Microsoft Binary Format (MBF) - the floating-point format used by Altair BASIC
 Interleaved instructions - according to Bill Gates used in Altair BASIC's error tables mutually sharing their instruction bytes

References

Further reading 
 
 
 Cringely, Robert X. Triumph of the Nerds. PBS, 1996.

External links 
 Altair BASIC 3.2 (4K) - Annotated Disassembly
 Altair BASIC 3.2 (4K) - Annotated Disassembly
 Altair BASIC source disassembly, compiled by Reuben Harris and archived at archive.org
 Writing an Altair Basic, Interview with Bill Gates, Interviewer: David Allison (DA), Division of Computers, Information, & Society, National Museum of American History, Smithsonian Institution 
 History of Microsoft Video: Bill Gates Talks about Altair Basic, (Lisa Feigenbaum) 24 Jun 2009, The Visual Basic Team, MSDN Blogs

1975 software
Discontinued Microsoft BASICs
BASIC programming language family
Microsoft programming languages