Один важный участок нашего Бейсика оставался белым пятном: операции с плавающей запятой, которые необходимы при работе с большими числами и десятичными дробями в экспоненциальной форме[3]. Однажды мы с Биллом ужинали в кафе «Кариер-Хауса», где продвинутые студенты-математики болтали о гиперкубах и геометрии пяти измерений. Я вслух пожаловался, что придется самому писать математические подпрограммы, и тут кучерявый новичок, сидевший напротив, неожиданно сказал:
– Я делал их для PDP-8.
Мы потащили его в комнату Билла обсуждать наши проблемы – и так мы нашли Монте Давидоффа (Монте выторговал за работу 400 долларов сразу и еще несколько тысяч за доработку в Альбукерке).
Решив затруднение, мы отправились в гарвардскую «Вычислительную лабораторию Айкена» на Оксфорд-стрит – одноэтажное бетонное здание, где стояли обычно незанятые терминалы разделенного времени. Сроки поджимали нас с самого начала. Билл сказал Эду Робертсу, что наш Бейсик почти готов, и Эд ответил, что хотел бы посмотреть его примерно через месяц. На деле же у нас не было даже инструкции по эксплуатации 8080-го. Купив инструкцию, я принялся за работу. У 8080-го оказалось в два с лишним раза больше команд, чем у 8008-го, а значит предстояло написать множество макросов. Но основы архитектуры у двух этих чипов были сходные, так что общий подход оставался прежним. Мне снова требовалось превратить программы PDP-10 в Ассемблер для микропроцессора. Я закончил макросы за пару дней.
Мой симулятор для 8080-го получился больше, но по сути таким же, что и для Traf-O-Data; и я снова модифицировал отладчик PDP-10, чтобы мы могли остановить программу и заглянуть внутрь нашего Бейсика. Бывают в жизни программиста моменты, когда все складывается, когда мозг работает на полную мощность; для меня это был один из таких моментов. Меня воодушевил новый видеомонитор у Айкена (или «стеклянный телетайп» – на жаргоне того времени) – DEC VT05. Очень помог доступ к высокоскоростному принтеру и жесткому диску PDP-10. Через месяц у нас были средства разработки для нового чипа, каких не было больше нигде. Пакет программ для 8080-го получился быстрым и мощным. Я до сих пор горжусь им.
Мои средства разработки дали нам начальный толчок, а программистский талант Билла позволил быстро двигаться вперед. К тому времени, как я доделал набор инструментов, Билл уже продумал структуру интерпретатора. Как сейчас вижу: Билл то шагает по комнате, то сидит, раскачиваясь на стуле, а потом начинает писать в желтом разлинованном блокноте; у него пальцы были в пятнах от разноцветных фломастеров. Когда я закончил симулятор, Билл пересел за терминал. Он, раскачиваясь, проглядывал записи, затем стремительно набивал код, держа руки в своей странной манере, и снова читал. Он мог сидеть так часами без перерыва.