Шрифт:
Сначала я изучил свою схему на бумаге и точно определил, где и как размещу чипы на плате, чтобы перемычки между ними были короче и аккуратнее выглядели. Я собрал и разложил детали так, как они должны были размещаться на плате.
Большинство чипов были из видеотерминала, который я собрал для работы с ARPANET. Кроме того, у меня были микропроцессор, гнездо для еще одной платы с чипами памяти RAM и два периферийных адаптера для подключения процессора 6502 к терминалу.
Для всех чипов я задействовал гнезда, потому что был просто помешан на них – еще со времен работы в Electroglas, где припаянные чипы было не так-то просто извлечь и поменять. Я же хотел, чтобы это было легко.
Также у меня была пара гнезд для чипов памяти PROM. В этих чипах можно было хранить данные в виде маленькой программы, которая не стиралась при выключении компьютера.
У меня в лаборатории было два чипа PROM, на которых могло храниться 256 байт данных. Их было достаточно для крохотной программы. (Сегодня-то программы весят в миллионы раз больше.) Это настолько малый объем памяти, что в текстовом редакторе его хватит лишь на одно предложение.
Я решил записать на эти чипы свою программу-монитор, позволяющую использовать клавиатуру вместо панели управления.
Это сокращение от Advanced Research Projects Agency Network – «Сеть агентства передовых исследовательских проектов». ARPANET разрабатывалась Министерством обороны США и стала первой рабочей сетью на основе пакетной коммутации, способной связывать компьютеры по всему миру. Затем она превратилась в то, что сегодня известно под названием Интернет.
ARPANET и Интернет основаны на передаче данных по принципу «пакетной коммутации». Компьютер разбивает фрагмент данных на пакеты, которые можно отправлять по разным линиям связи и затем собирать воедино на другом конце. До этого основным методом была коммутация каналов. Это было похоже на старые телефонные системы начала XX столетия. Каждому звонку соответствовал отдельный канал, и весь сигнал шел только по нему.
Использование пакетной коммутации – феноменальный прорыв, благодаря которому и стал возможен Интернет.
Чтобы подключить чипы в компьютере – спаять все вместе, – мне потребовалась одна ночь. Еще несколько вечеров я писал 256-байтную программу – причем в буквальном смысле, ручкой на бумаге. У меня здорово получались компактные программы, но здесь была непростая задача даже для меня.
Это была моя первая программа для микропроцессора 6502. Тогда нормальные люди писали программы так: они платили за компьютерное время, за использование терминала и печатали программу. Терминал был подключен к дорогущему здоровенному компьютеру, стоявшему где-то еще. И вот этот компьютер распечатывал вашу программу в виде нулей и единиц, которые микропроцессор мог распознать.
Затем нули и единицы вводились в память RAM или PROM, и программа запускалась. Но я не мог позволить себе платить за компьютерное время и поэтому вынужден был писать программу на бумаге. К счастью, в руководстве к процессору 6502 описывались последовательности нулей и единиц для каждой инструкции, для каждого шага программы. MOS Technologies даже выдавала маленькую карточку, которую можно было носить с собой в кармане: на ней были записаны все нули и единицы для всех нужных инструкций.
Итак, я записал программу на языке машинных кодов на левой стороне страницы. К примеру, я писал «LDA #44», что означало: загрузить данные, соответствующие 44 (в шестнадцатеричной системе счисления) в регистр А микропроцессора.
На правой стороне страницы я с помощью карточки записывал ту же инструкцию в шестнадцатеричной системе счисления. Инструкция из приведенного выше примера записывалась бы как A9 44. Она занимала 2 байта данных и на процессор поступала в таком виде: 10101001 01000100.
Чтобы написать программу, мне понадобилось несколько листов бумаги.
Я еле смог втиснуть все, что нужно, в это крохотное пространство на 256 байт. Я написал две версии: одна позволяла прерывать нажатием клавиши любую запущенную программу, другая – только проверить, что за клавиша нажата. Второй вариант назывался «опросом клавиатуры».
Днем я отнес две эти программы и несколько чипов памяти PROM в другое здание HP, где было оборудование, позволяющее «прожечь» их на чипе.
Но я все еще не мог закончить – и тем более протестировать – эти чипы, не имея памяти. Компьютерной, конечно.
Самым распространенным типом компьютерной памяти в то время были чипы SRAM (статическая RAM). «Крем-сода», «Альтаир» и все остальные компьютеры того времени использовали такую память. Я позаимствовал у Майрона Таттла 32 чипа SRAM. Каждый мог хранить 1024 бита данных. В общей сложности это было 4 килобайта – в шестнадцать раз больше, чем у «Альтаира» (256 байт).
Я спаял отдельную плату SRAM с этими чипами в гнездах и воткнул ее в разъем на моей основной плате.
Итак, я был готов проверить, работает ли мой компьютер.
Первым делом надо было подключить питание. Я воспользовался розетками рядом с моей кабинкой и проанализировал сигнал на осциллографе. Примерно час я выяснял, что же мешает микропроцессору заработать. Оказалось, что две ножки микропроцессора случайно замкнуло, и сигнал с обеих превратился в бессмысленный шум. Еще одну ножку я погнул, вводя чип в гнездо.