Дэвид Коэн, исполнительный продюсер и главный сценарист "Футурамы", рассказал, как процессор MOS Technology 6502 оказался в голове робота
Это перевод части статьи IEEE Spectrum’s Special Report: 25 Microchips That Shook the World.
14 ноября 1999 года эпизод "Футурамы", анимационного научно-фантастического сериала от создателя "Симпоснов" Мэтта Гроунинга, ошарашил гиков зрелищем технологического характера, абсолютно беспрецедентным в отрасли развлечений в прошлом. В этом эпизоде, "Фрай и фабрика Слёрма", профессор Фарнсворт направляет Ф-луч на голову безумного робота Бендера, и мы видим маленький прямоугольник, очевидно являющийся микросхемой, с надписью "6502".
6502 был любимым (по крайней мере, гиками) 8-битным микропроцессором, созданным компанией MOS Technology в 1975 году. Именно этот чип Стив Возняк, гик, обутый в сандалии и с неряшливой бородой, использовал для постройки Apple II в 1977 году, "машины, которая изменила всё", как её назвал журнал PC World. Он также был использован в Commodore PET, BBC Micro, и других систем, начавших революцию персональных компьютеров.
Появление этого чипа в "Футураме" взбудоражило нердосферу, вызвав шквал комментариев на онлайновых форумах (нердовских эквивалентах разговоров на коктейльных вечеринках). Также есть упоминание в Википедии, в статье по 6502. У нас в IEEE Spectrum появилось несколько вопросов, ранее не появлявшихся на фоне всех шумов. Во-первых, почему 6502? Во-вторых, возможно ли, что Mom’s Friendly Robot Co., как-то получила проект от волосатого хипана, который жил на севере Калифорнии в конце 20-го века?
Чтобы узнать правду, наш редактор Эрико Гуиззо (Erico Guizzo) проник в тайну мозга Бендера. Дэвид Коэн, исполнительный продюсер и главный сценарист "Футурамы", как выясняется, тоже изрядный гик.
Вот ответ Коэна:
Я провёл изрядную долю времени в старших классах школы, программируя Apple II Plus на ассемблере 6502, и прекрасно помню все долгие вечера наедине с этим чипом. Моё наивысшее достижение в области 6502 было видеоигрой, которую я назвал Zoid, в которую играл я и мой отец, и никто больше. Zoid обладал оцифрованной речью (я произносил слово "Zoid", замедленное, чтобы казаться мощнее), что было редкостью в то время. Цифровое аудио этого единственного слова занимало много памяти, больше, чем вся остальная программа. Я пробовал продать игру компании Broderbund Software, но я понял, что у них для меня плохие новости, когда я получил письмо, в котором моё имя было написано с ошибкой.
С точки зрения программирования, более впечатляющим достижением было создание настоящего работающего языка FLEET для Apple II Plus, который я разработал с двумя школьными друзьями, Дэвидом Борденом и Дэвидом Шимоновичем. Мы называли себя "Властелины Глюков". Язык был предназначен для облегчения написания школьных графических программ (да, видеоигр) для компьютеров Apple. Ни один из нас не знал ничего про компиляторы, и без каких-либо познаний в этом предмете, и работая исключительно на ассемблере 6502, мы каким-то образом написали работающий компилятор. Что ещё более впечатляло, там практически не было комментариев, просто страница за страницей ассемблерного кода.
Получившийся компилятор был очень хорош: быстрый, как молния, язык был прост для изучения и программирования, и скомпилированные программы были сравнимы по скорости с тем, что мы писали на чистом ассемблере. Я думаю, это был бы очень полезный продукт. Однако время играло против нас: компилятор был закончен в 1984 году, когда Apple II был предан забвению, и мы поступили в колледж. Таким образом, наш потрясающий компилятор так никогда и не был использован в практических целях.
В ретроспективе, я бы сказал, что ограничения процессора 6502 подталкивали нас, против нашей воли, к тому, чтобы проявлять сообразительность и изучать его работу на более глубоком уровне. Например, нам нужно было написать эффективную подпрограмму умножения и деления 16-битных чисел, используя только 8-битные операции сложения, вычитания и сдвига. Другой пример: возможно (а фактически, тривиально), нарисовать пиксели от точки (A, B) до точки (C, D) без использования операций деления или вычисления коэффициента наклона. Но это требует сообразительности. Итак, я думаю, программирование 6502, в те дни, когда память была очень ограниченной, было очень полезным для развития креативности и эффективности.
Переместившись в будущее на 15 лет, я работал над ранним эпизодом "Футурамы". Бендера просветили рентгеном (точнее, Ф-лучами), и мы увидели, на чём работает его могучий мозг. Естественно, на 6502.
Хоть я и ответственен за появление 6502 в "Футураме", я не самый опытный компьютерный инженер в команде сценаристов "Футурамы". У меня степень магистра computer science университета Калифорнии, в Беркли. Однако, сценарист Кен Келлер (Ken Keeler) имеет Ph.D. по прикладной математике из Гарварда и магистерскую степень electrical engineering, и, на полном серьёзе, Кен читает каждый номер "IEEE Spectrum" и иногда заглядывает в "Transactions on Information Theory".
Нет сомнения, что голова Возняка дожила в банке до 3000 года, и, возможно, по-прежнему носит сандали. И возможно, она предоставила проект Бендера компании Mom’s Friendly Robot Co. в обмен на корм для рыб.