Altair BASIC — это снятый с производства интерпретатор языка программирования BASIC , который работал на MITS Altair 8800 и последующих компьютерах с шиной S-100 . Это был первый продукт Microsoft (как Micro-Soft), распространяемый MITS по контракту. Altair BASIC положил начало линейке продуктов Microsoft BASIC .
Билл Гейтс вспоминает, что, когда они с Полом Алленом прочитали об «Альтаире» в январском номере журнала Popular Electronics за 1975 год , они поняли, что цены на компьютеры вскоре упадут до такой степени, что продажа программного обеспечения для них станет прибыльным бизнесом. [7] Гейтс считал, что, предоставив интерпретатор BASIC для нового компьютера, они смогут сделать его более привлекательным для любителей. Они связались с основателем MITS Эдом Робертсом , рассказали ему, что разрабатывают переводчик, и спросили, хочет ли он увидеть демонстрацию. Это последовало за сомнительной практикой в машиностроительной отрасли, связанной с пробным воздушным шаром , объявлением о несуществующем продукте для оценки интереса. Робертс согласился встретиться с ними на демонстрации через несколько недель, в марте 1975 года.
У Гейтса и Аллена не было ни интерпретатора, ни даже системы «Альтаир», на которой можно было бы ее разработать и протестировать. Однако Аллен написал эмулятор Intel 8008 для своего предыдущего проекта Traf-O-Data , который работал на компьютере с разделением времени PDP-10 . Аллен адаптировал этот эмулятор на основе руководства для программистов «Альтаир», и они разработали и протестировали интерпретатор на Гарвардском PDP-10. Представители Гарварда были недовольны, когда узнали об этом, но не было письменной политики, регулирующей использование этого компьютера. [8] Гейтс и Аллен купили компьютерное время у службы разделения времени в Бостоне, чтобы завершить отладку своей программы на BASIC. Когда однокурсник Гарварда Монте Давидофф заявил, что, по его мнению, система должна использовать арифметику с плавающей запятой вместо целочисленной арифметики исходных версий, и заявил, что может написать такую систему, которая все еще могла бы уместиться в пределах памяти, они наняли Давидоффа для написания упаковка.
Готовый интерпретатор, включая собственную систему ввода-вывода и строковый редактор , умещался всего в четырех килобайтах памяти, оставляя достаточно места для интерпретируемой программы. Готовясь к демонстрации, они сохранили готовый интерпретатор на перфоленте , которую мог читать «Альтаир», а Пол Аллен улетел в Альбукерке .
На последнем этапе захода на посадку в аэропорт Альбукерке Аллен понял, что они забыли написать программу начальной загрузки для считывания ленты в память. Написав на машинном языке 8080, Аллен завершил программу до того, как самолет приземлился. Только когда они загрузили программу на «Альтаир» и увидели запрос на размер памяти системы, Гейтс и Аллен узнали, что их интерпретатор работает на оборудовании «Альтаира». Позже они заключили пари, кто напишет самую короткую программу начальной загрузки, и Гейтс выиграл. [9] [10]
Робертс согласился предоставить переводчика. Он также нанял Гейтса и Аллена для его поддержания и улучшения, в результате чего Гейтс взял отпуск в Гарварде. Исходная версия задним числом будет известна как 4K BASIC, когда будут добавлены обновленные версии, включая 8K BASIC, Extended BASIC, Extended ROM BASIC и Disk BASIC.
Самая маленькая версия, 4K BASIC, могла работать на машине с 4K RAM, оставляя лишь около790 байт свободно для программного кода. Чтобы вместить язык в такое маленькое пространство, в версии 4K отсутствовали манипуляции со строками и ряд общих математических функций. Они были добавлены в версию 8K BASIC, которая имела строковые переменные и функции манипуляции, а также более широкий набор математических функций, включая RND
случайные числа, логические операторы PEEK
и POKE
. Версия 8K является основой для большинства версий BASIC в эпоху домашних компьютеров . В расширенный BASIC добавлены PRINT USING
базовые дисковые команды, а в Disk BASIC расширены дисковые команды, позволяющие осуществлять необработанный ввод-вывод. [11] [12]
В октябре 1975 года 4K BASIC продавался за 150 долларов , 8K BASIC за 200 долларов и Extended BASIC за 350 долларов (что эквивалентно 816 долларам в 2022 году, 1088 долларам в 2022 году и 1903 долларам в 2022 году соответственно). Цены были снижены до 60 , 75 и 150 долларов соответственно для тех, кто приобрел «8 КБ памяти Altair и плату ввода-вывода Altair». Языковые версии распространялись на бумажной ленте или кассете. [13]
Как они и ожидали, «Альтаир» пользовался большой популярностью среди любителей, таких как компьютерный клуб Homebrew . Altair BASIC, предпочитаемый MITS интерпретатор BASIC, также был популярен. Однако любители придерживались «совместного» подхода к программному обеспечению и не задумывались о копировании интерпретатора BASIC для других любителей. Участник Homebrew Дэн Сокол был особенно плодовитым; каким-то образом получив предпродажную запись переводчика, он сделал 25 копий и распространил их на следующем собрании Homebrew, призывая получателей сделать больше копий. В 1976 году Гейтс ответил резким Открытым письмом любителям , в котором обвинил копировальные аппараты в воровстве и заявил, что не может продолжать разработку компьютерного программного обеспечения, за которое люди не платят. Многие любители отреагировали на письмо оборонительно.
По условиям договора купли-продажи MITS получит права на переводчика после выплаты определенной суммы гонорара. Однако Microsoft разработала версии интерпретатора для других систем, таких как Motorola 6800 . Когда они решили покинуть MITS, возник спор о том, была ли выплачена вся сумма и распространяется ли соглашение на остальные версии. Microsoft и MITS передали спор арбитру , который, к большому удивлению Робертса, принял решение в пользу Microsoft на основании того, что MITS не смогла продать программное обеспечение, приложив «все усилия». [14] Интерпретаторы BASIC оставались основой бизнеса Microsoft до начала 1980-х годов, когда компания перешла на MS-DOS .
MITS/Pertec «существенно нарушили свои обязательства приложить все усилия…»