Пионер видеоигр Алан Элкорн рассказывает о том, как показал Стиву Возняку хак, позволивший компьютеру Apple II работать с цветами, и откуда взялся знаменитый звук «блип» в игре Pong
Домашняя консоль Atari Pong, поступившая в продажу в магазины The Sears под брендом Tele-Games в 1975
Недавно мы публиковали статью о современном любительском компьютере, использующем очень старый хак: артефактные цвета NTSC. Этот хак позволял цифровым системам, не имевщим отдельных графических карт, выдавать цветные изображения, эксплуатируя особенности декодирования телевизионного сигнала.
Наиболее известным примером использования артефактных цветов NTSC служит компьютер Apple II 1977 года. Использование этого хака Стивом Возняком в данном компьютере привлекло к нему широкое внимание. Позднее его использовали в компьютерах IBM PC и TRS-80 Color. Однако мало кто знал, откуда взялась эта идея, поэтому мы сильно взволновались, когда комментарий на эту тему к той статье оставил легенда электроники и видеоигр, Алан Элкорн. Оказывается, предком первой цветной компьютерной графики можно считать дешёвый испытательный прибор, который использовали в калифорнийских телеремонтных мастерских в 1960-х. Журнал IEEE Spectrum пообщался с Элкорном, чтобы узнать больше подробностей.
Алан Элкорн с приставкой Pong
IEEE: Аналоговые телевизоры стандарта NTSC генерируют цвет, отслеживая фазу сигнала относительно опорной частоты. Как к вам в руки попал этот испытательный прибор, и как он работал?
Алан Элкорн: Когда мне было лет 13-14, мой сосед, живший через улицу, держал ремонтную лавку для телевизоров. Я бегал к нему; а ещё как раз тогда отец отправил меня на курсы по ремонту радиоприёмников и телевизоров от RCA. Поэтому к тому моменту, когда я попал в Беркли, я уже работал странствующим мастером по ремонту телевизоров, и таким образом даже оплатил обучение в колледже. И в одной мастерской был очень дешёвый и грязный генератор цветных прямоугольников, предназначенный для проверки телевизоров. Вместо того, чтобы правильно выдавать цвет, синтезируя фазы и всё такое прочее, он просто использовал кристалл на 3,58 МГц (несущая частота цветового сигнала), минус 15,750 кГц, частота горизонтальной развёртки. Поэтому каждую фазу он отставал на 360 градусов. Если вывести этот сигнал на экран, получится цветная полоска, от левого края до правого. Это был реально самый дешёвый и грязный способ этого добиться!
IEEE: Как в ваших планах появилась идея использовать NTSC «не по инструкции»?
АЭ: С дешёвым грязным способом я познакомился во время работы мастером по ремонту. А потом я устроился на работу в компанию Ampex (в то время – лидер в аудио- и видеотехнологиях). В Ampex я впервые увидел, как картинку на видео получают при помощи цифровых технологий; они тогда достигли приемлемой скорости, и это открыло мне глаза. А потом я перешёл в Atari. Нолан Бушнел, сооснователь Atari, решил выходить на рынок домашней потребительской электроники. В 1972 мы выпустили монохромную аркадную игру Pong, что дало нам возможность развиться с нуля, но он всегда хотел работать на рынке домашней потребительской электроники. Совместно с ещё одним инженером мы сжали всю логику игры Pong до единственного N-канального кремниевого чипа. И в какой-то момент во время разработки Нолан сказал: «И, кстати, игра ещё должна быть цветной». Однако я-то знал, что он провернёт такой номер, поэтому уже выбрал кристалл на частоте 3,58 МГц минус 15,750 кГц.
IEEE: Почему вы подозревали, что он выкинет что-то подобное?
АЭ: Потому что никакого плана у нас не было. Не было никаких черновиков, никакого бизнес-плана. Всё было у Нолана в голове. Думаю, вы в курсе, что вообще изначально аркаду Pong затевали в качестве испытания для меня, чтобы я попрактиковался в разработке простейшей игры из возможных. Однако Нолан мне соврал, и сказал, что это будет продукт для домашних потребителей. В итоге было довольно грустно, у меня не получилось сделать это – я напихал туда порядка 70 интегральных схем, и для домашней игры устройство получилось дороговатым. А потом Нолан вдруг решил, что она подойдёт для игрового автомата! И когда мы уже заканчивали делать Pong для автомата, Нолан говорит: «Ну а где звук-то?» Я его спрашиваю: «В смысле, звук?» Я не хотел добавлять туда ещё компонентов. Он сказал: «Я хочу слышать рёв толпы, аплодисменты тысяч людей». Тед Дабни, другой владелец компании, сказал: «Я хочу слышать звуки ''бууу'' и свист». И я ответил им: «Ну ладно, скоро вернусь». Я полез туда с зондом, подыскивая схему вертикальной синхронизации с частотой, которая попадала бы в слуховой диапазон. Я нашёл такое место, использовал таймер 555 (чтобы на короткое время соединять схему с динамиком и выдавать пикающие звуки). Я сказал: «Будет вот так, Нолан; а если тебе не нравится, то делай сам». И он сказал: «ОК». И после этого я читал статьи, где пели дифирамбы этому звуку! А вся идея заключалась в том, чтобы выжать максимум из минимального набора компонентов. И она сработала. У нас в банке оставалось $500. У нас не было ничего, и мы просто выставили нашу игру на рынок. Время поджимало.
IEEE: А в домашней версии Pong графика просто меняла цвет с одной до другой стороны экрана?
АЭ: Да, цель состояла только в том, чтобы написать на коробке: «Цветная!» И происходит такой анекдот: домашняя версия Pong становится хитом. В 1974-75 году. Большим хитом. Делается реклама для телевидения. Рекламщики пытаются записать сигнал Pong на видеоплёнку. И мне звонят из какой-то студии, и говорят: «Почему мы не можем заставить её выводить изображение на видеомагнитофон?» Я говорю: «Ну это не совсем видео! Там нет чересстрочной развёртки… Считайте, что это PAL. Прогоните его через обычный конвертер».
IEEE: Как об этом узнал Возняк?
АЭ: В то время в Кремниевой долине у нас секретов не было. Я нанял Стива Джобса по счастливому стечению обстоятельств. Он даже не был инженером. А его приятель Воз работал в HP, однако с нами было гораздо веселее зависать. У нас было производство, мы собирали 30-50 игровых автоматов, и они стояли в цехе. Джобс не поладил с другими работниками, поэтому приходил работать по ночам. Воз, бывало, приходил играться в те часы, когда работал Джобс, а иногда Джобс подговаривал Воза сделать работу за него. И мне нравился Воз. Я хочу сказать, он просто гений, прям светило. Просто потрясающий.
Когда они делали Apple II, я им помогал. Я одолжил им свой осциллограф. У меня был 465 Tektronix, и он у меня до сих пор стоит. А они с его помощью разрабатывали Apple II. Я с его помощью делал Pong. Я для них что-то делал, по-моему, в связи с хранением данных на аудиокассетах. И потом я помню, как показывал Возу трюк с цветом высокого разрешения. Мы сидели, я объяснял ему принцип, и сказал: «Ну, вот, как NTSC в принципе должен работать». А потом сказал: «Ну а на самом деле, если сделать всё на такой вот частоте, и при помощи прямоугольных импульсов…» И объяснил ему весь фокус. А он его взял на вооружение. Такая была традиция. Это было нормально, я как бы хвастался перед ним!
IEEE: Когда сегодня людей мотивируют повозиться с электроникой, поэкспериментировать с ней, обычно это бывают такие штуки, как Arduino, сконцентрированные на цифре. Не кажется ли вам, что аналоговую электронику обходят стороной?
АЭ: Определённо. Был такой период, мне кажется, где-то в 90-х, когда это дошло до абсурда, и просто нельзя было найти хорошего аналогового инженера. А для определённых вещей аналоговые инженеры необходимы. В то время хорошим аналоговым инженерам очень неплохо платили. Они зарабатывали кучу денег, потому что их было мало. Но большинство ребятишек просто хотят разбогатеть. И к этому ведёт путь, связанный с программированием чего-либо для iPhone. И всё. Разбогател и пошёл. Однако аналоговая электроника – это очень важная и ценная область.
corvair
Очевидно, что аналог будет актуален всегда и в чем-то он сложнее цифры с её дискретными состояниями.
HardWrMan
Как минимум в области радио. Имеется в виду беспроводная передача информации, не важно в аналоговом или цифровом виде. Там жёсткий контроль за спектром, а это чистый аналог.
Gordon01
А вы что-нибудь слышали об ultra-wide band?
HardWrMan
UWB, конечно, интересная тема, но там как жёсткие ограничения по излучаемой мощности, так и отведён вполне конкретный, хоть и очень широкий, диапазон. Опять же, если начинать придираться, то первые передатчики, что работали на искровом промежутке, были вполне себе прототипами современного UWB.
andreili
Скажу больше — все эти ВОЛС и PCIe имеют неплохую аналоговую составляющую. В обоих случаях для уплотнения данных используются «созвездия», то есть за один такт передаётся набор бит, закодированных уровнем сигнала.
ValeriyS
PCIe не имеет ни QAM, ни какой другой модуляции, похожей на «созвездия». Обычное бинарное представление сигнала. «Уплотнение» реальной скорости передачи данных производится за счет использования специальных бинарных кодов, сохряняющих возможность подсинхронизации приемника по фронтам сигнала в линии.
andreili
Ну не знаю, не знаю. Но у нас на Gen4 аналоговая часть очень даже большая на кристалле получается.
ValeriyS
Victor_koly
Ничего сильно аналогового не вижу. Про QPSK немного здесь нашел.
Наверное такими методами проще закодировать сразу 16 уровней сигнала, аналогично сохранению 4 бит в ячейке QLC.
IgorPie
Но, показывает практика, платить за него — не будут.
Когда лопается контора, инженеры по цифре находят работу за месяц, по аналогу — от полугода
khim
Не сравнивайте жопу с пальцем. Если лопается контора по проектированию самолётов (или, к примеру, нефтедобывающих платформ — неважно), то главному конструктору найти работу по смециальности бывает ой как непросто и небыстро… а «специалист по выпечке пирожков» может найти работу и за день.
Это просто значит, что таких специалистов нужно несколько меньше, чем «специалистов по выпечке пирожков», только и всего.
drWhy
На бирже труда как-то встретил режиссёра, предыдущая работа была на телеканале. Он стоял на учёте два года и стоически отказывался от всех заманчивых предложений получить квалификацию пекаря или станочника ЧПУ, мотивируя тем, что получал специализированное образование в течение одиннадцати лет.
khim
К сожалению или к счастью — я не режиссёр. И вакансий для моей специализации — хватает. Но если бы я оказался в ситуации, когда пришлось бы переучиваться на пекаря… не знаю что я бы делал. Честно.
IgorPie
Неуместно ставить инженера по аналогу выше инженера по цифре. И те и другие проходили одно и то же, просто используют в разных доменах.
Цифра — тоже не сахар и не пирожки. А аналог сто лет как не самолет.
khim
Потому цифры стараются делать побольше, а аналога — поменьше. Соотвественно и инженеров по аналогу требуется всё меньше.