| Altair BASIC | |
|---|---|
The title page of theassembly language code that produced Altair BASIC | |
| Original author | Micro-Soft |
| Developers | |
| Initial release | 2.0 (4K and 8K editions) July 1, 1975; 50 years ago (1975-07-01)[3][4][5][6] |
| Stable release | 5.0 / 14 July 1978; 47 years ago (1978-07-14) |
| Platform | Altair 8800 |
| Type | Microsoft BASIC |
Altair BASIC is a discontinuedinterpreter for theBASIC programming language that ran on theMITSAltair 8800 and subsequentS-100 bus computers. It wasMicrosoft's first product (as Micro-Soft), distributed by MITS under a contract. Altair BASIC was the start of theMicrosoft BASIC product range.
Bill Gates recalls that, when he andPaul Allen read about the Altair in the January 1975 issue ofPopular Electronics, they understood that the price of computers would soon drop to the point that sellingsoftware for them would be aprofitable business.[7] Gates believed that, by providing a BASIC interpreter for the new computer, they could make it more attractive to hobbyists. They contacted MITS founderEd 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 atrial balloon, an announcement of anon-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 anIntel 8008emulator for their previous venture,Traf-O-Data, that ran on aPDP-10time-sharing computer. Allen adapted this emulator based on the Altair programmer guide, and they developed and tested the interpreter onHarvard'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.[8] Gates and Allen bought computer time from a timesharing service in Boston to complete their BASIC program debugging. When fellow Harvard studentMonte Davidoff stated he believed the system should usefloating-point arithmetic instead of theinteger 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 ownI/O system andline editor, fit in only fourkilobytes of memory, leaving plenty of room for the interpreted program. In preparation for the demo, they stored the finished interpreter on apunched tape that the Altair could read, and Paul Allen flew toAlbuquerque.
While on final approach into the Albuquerque airport, Allen realized that they had forgotten to write abootloader to read the tape into memory. Writing in8080 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.[9][10]

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, and Disk BASIC.
The smallest version, 4K BASIC, could run within a 4K RAM machine, leaving only about790 bytes 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 includingRND for random numbers, Boolean operators, andPEEK andPOKE. The 8K version is the basis for most versions of BASIC during thehome computer era. Extended BASIC addedPRINT USING and basic disk commands, while Disk BASIC further extended the disk commands to allow raw I/O.[11][12]
In October 1975, 4K BASIC sold for$150, 8K BASIC for$200, and Extended BASIC for$350 (equivalent to $877 in 2024, equivalent to $1,169 in 2024, and equivalent to $2,045 in 2024, respectively). The prices were discounted to$60,$75, and$150 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.[13]
As they expected, the Altair was very popular with hobbyists such as theHomebrew 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 memberDan 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 wordedOpen Letter to Hobbyists that accused the copiers oftheft 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 theMotorola 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 anarbitrator who, much to Roberts' surprise, decided in favor of Microsoft based on MITS failure to market the software with their "best efforts".[14] BASIC interpreters remained the core of Microsoft's business until the early 1980s, when it shifted toMS-DOS.
MITS/Pertec 'materially breached its best efforts obligation...'