Сиэтл не был родиной большинства программистов, но при наличии поблизости компании Boeing и крупных университетов светлых голов хватало.
Пол Аллен говорит о Сиэтле: «Здесь такая природа, что большую часть времени приходится проводить под крышей. Мы всегда шутили, что в Сиэтле идеальная атмосфера для программирования. Сидишь за терминалом и смотришь на дождь за окном.» При приеме на работу основными критериями были способности и энтузиазм. «Нас меньше всего интересовали степени и тому подобное, — рассказывает Аллен. — Вместо этого мы старались принимать людей, любящих программирование. Формальная квалификация была для нас менее важна, чем увлеченность и способности к программированию.»
В апреле 1978 г. Intel начала выпускать новый чип — 8086. В плане характеристик и объема памяти он был огромным достижением по сравнению с прошлыми чипами. Чипы Intel 4004 в 1969 г. и 8008 в 1972 г. были нацелены на рынок бытовых электроприборов. После неожиданного успеха в компьютерах чипа 8080 Intel начала серьезную работу над микропроцессором, который был бы в основном ориентирован для обработки данных. Инженеры Intel конструировали 8086 с учетом того, что на рынке микрокомпьютеров начинается бум.
Чип Intel 8080, нашедший применение в компьютерах Altair и IMSAI, был 8-битовым микропроцессором. (Бит — это двоичный разряд). Бит — это наименьшая единица информации, которую может хранить цифровой компьютер и которая принимает два значения: 0 или 1. В цифровых компьютерах применяется двоичная система счисления, в которой используются только нули и единицы. Основанием этой системы является число 2, при этом единица каждого разряда равна соответствующей степени 2. Единица самого правого разряда равна 2°; при перемещении на один разряд влево показатель степени увеличивается на 1. Единицы разрядов умножаются на 0 или 1. Так, в двоичной системе «1» означает 1 умножить на 2°, то есть 1 умножить на 1, «101» = (1х22) + (0х21) + (1х20) = 4 + 0+1 = 5 и т. д. 8-битовый чип может обрабатывать по одной 8-битовой команде. Он также может оперировать с числами от 0000 0000 до 1111 1111 (0-255). Принят ряд соглашений о представлении обычных букв, цифр и символов. Например, ASCII (American Standard Code for Information Interchange — Американский стандартный код обмена информацией) определяет, что буквам от А до Z соответствуют двоичные числа эквивалентные десятичным от 65 до 90. Большинству пользователей все это совершенно ни к чему, но для программистов очень важно.
8086 — 16-битовый микропроцессор. Он мог по одной команде программы обрабатывать числа до 1111 1111 1111 1111 (65535). Но это еще не все. В восьмибитовых чипах, к которым относились 8080, 6800 и 6502, было одно серьезное ограничение: они позволяли адресовать только 64 килобайта (64000 байтов или символов) памяти. Это немного, учитывая то, что в памяти должны находиться операционная система, прикладная программа и данные, которые она обрабатывает. Например, деловое письмо, составленное с помощью текстового процессора, может занимать 2000 байтов памяти. 16-битовый микропроцессор 8086 в этом плане был лучше, так как он допускал адресацию 1 мегабайта (1 миллиона байтов) памяти.
Компания Intel представила Microsoft свой чип 8086, что указывало на определенный интерес к получению Бейсика для нового микропроцессора. В это время в Microsoft решали, то ли продолжать разработку других языков для 8-битовых микрокомпьютеров, то ли переключиться на 16-битовые компьютеры на чипах типа 8086. Гейтс остановился на последнем, видя в этом дополнительную возможность утверждения Microsoft как первопроходца в данной области.
— Ладно, мы напишем вам Бейсик за три недели, — сказал Гейтс.
Представитель Intel принял это за шутку:
— Постойте, давайте серьезно. Вы справитесь с этой работой за девять месяцев?
Гейтс посоветовался с сотрудниками:
— Да нет, мы сделаем ее за три недели.
Разработка Бейсика для 8086 началась осенью 1978 г. и заняла полгода. Сначала, что уже стало традицией, в Microsoft подготовили программу для PDP-11 (DEC), моделирующую этот чип. Весной 1979 г. Бейсик был готов. И вновь программисты Microsoft разработали этот язык, в глаза не видя реального чипа.
В это время в Сиэтле над 8086 работал еще один компьютерщик. Тим Паттерсон только что получил степень по вычислительной технике в Университете штата Вашингтон и устроился на работу в небольшую местную фирму Seattle Computer Products. Паттерсона восхитил микропроцессор 8086, и он взялся за конструирование основанной на нем платы. Затем он встроил эту плату в один из микрокомпьютеров, использующих ту же шину, что и Altair. (Шина — это магистраль, по которой передаются данные в компьютере. Это электрическое или электронное соединение между платами, управляющими динамиком, дисководом и т. д.)