Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В предыдущей статье мы остановились на особенностях производства и сборки в цехах Commodore. Сегодня предлагаем вам продолжить знакомство с историей легендарного компьютера, рассказанной инженерами того времени.
Изменения в ходе серийного выпуска
Запуск Commodore 64 в производство весной 1982 года не предвещал окончания разногласий. «Главное — уметь решать проблемы во время работы», — считает Зимбицки.
Одним из первых «сражений», вспоминает Шарпантье, стал вопрос о разводке печатной платы. Сборочный завод Commodore в США использовал автоматизированное оборудование для монтажа компонентов, а японский завод — нет, и две технологии сборки требовали разного расстояния между компонентами. В конце концов, плата для C-64 была подготовлена к автоматическому монтажу, и производство было перенесено на новый завод в Гонконге, где имелись все необходимые инструменты.
Проблемы также возникали с некоторыми компонентами — например, с микропереключателями. «Вы выбираете переключатель, внесенный в список потребительских устройств», — говорит Зимбицки. «Проектируете всё на его основе. Затем связываетесь с производителем и получаете приемлемую смету. А потом Калифорния [производственное подразделение] заказывает 50 000 переключателей в неделю, но в ответ слышит: «Мы не можем изготавливать их в таком количестве! Это потребительский переключатель, но мы не ориентированы на такие объёмы». В этот момент ты буквально зависаешь».
«Поскольку Commodore только что перевезла свой инженерный персонал из Калифорнии в Пенсильванию, коммуникация между инженерами-конструкторами и производственными предприятиями была не очень эффективной», — объясняет Зимбицки. «Доходило до того, что нельзя было прекращать работу, даже если не получаешь ответа — ты просто работал с теми компонентами, которые, по твоему мнению, могли достать на производстве».
А внешние поставщики далеко не всегда были надежны. «Один из них предоставил нам источник питания для утверждения», — вспоминает Зимбицки. «Его одобрили, а потом поставщик изменил конструкцию и никому об этом не сказал».
Небольшие изменения во внутреннем устройстве Commodore 64 в ходе производства первых 5 млн экземпляров позволили снизить затраты на треть от первоначальной цены в 135 долларов. Как известно, увеличение объемов производства — это один из способов сэкономить.
Самой известной проблемой было т.н. «искрение», дефект, из-за которого на экране дисплея появлялись маленькие световые пятна. Проблема была решена накануне ухода Шарпантье из компании в сентябре 1982 года, но отзывы о браке продолжали поступать вплоть до Рождества, а в прессе они приводились как пример плохого контроля качества Commodore. Хитрые потребители использовали это как предлог, чтобы вернуть совершенно исправные Commodore 64, поскольку на них действовала 90-дневная гарантия. Учитывая, что стоимость машины упала на 200 долларов в течение двух месяцев после её появления, эта уловка позволяла владельцам получить возврат средств и купить другой C-64 за меньшую цену.
«Искрение» в народе приписывали багам видеочипа, но на самом деле оно возникало из-за микросхем ПЗУ, три миллиона которых успешно функционировали в других системах, включая хитовую аркадную видеоигру Asteroids. Инженеры Commodore сначала тоже искали проблему в видеочипе. По словам Шарпантье, только через три недели они определили настоящего виновника. «Проблема носила случайный характер — дефект не проявлялся на постоянной основе. Мы предположили, что видеочип допускает ошибки в обработке данных. Нам и в голову не приходило, что дело может быть в ПЗУ. В конце концов мы подключили к плате логический анализатор и вычислили виновника». ПЗУ, которое Шарпантье и его группа разработали несколькими годами ранее, имело специальную схему предварительной зарядки, позволяющую ускорить работу, однако чувствительную к наводкам и помехам. Видеочип и микропроцессор 6510 попеременно управляли системной шиной, и когда управление переходило от одного чипа к другому, порой возникали скачки напряжения.
«Передача управления происходила в самый что ни на есть неудачный момент», — смеется Шарпантье. «Если бы всплеск был на несколько наносекунд короче или длиннее, проблемы бы не существовало. Однако длительность этого всплеска была достаточной, чтобы ПЗУ восприняло его как логический сигнал. Оно игнорировало «настоящий» запрос адреса и передавало видеочипу неверные данные». Поскольку ПЗУ содержало набор символов C-64, на дисплее появлялись их случайные фрагменты.
Конфетти из помех на дисплее обладало одним крайне неприятным свойством: оно вызывало аппаратные коллизии. Спрайты воспринимали «обломки» символов как реальные препятствия. Поскольку «искрение» возникало из-за неправильных данных, подаваемых на видеочип, это приводило в действие схему, отвечающую за проверку наложения спрайтов на фоновые объекты. В результате любое программное обеспечение, которое полагалось на детектор столкновений, в частности, игры, буквально «ломались».
Ошибку в ПЗУ удалось исправить, однако Commodore пришлось некоторое время прибегать к услугам сторонних поставщиков, пока она наращивала новую производственную линию. Дефект проявился только в первых нескольких сотнях тысяч отгруженных устройств.
Проблемы с таймингами
«В придачу к дефекту ПЗУ, я допустил логическую ошибку», — вспоминает Шарпантье. Эта ошибка, которую инженерам пришлось ловить и исправлять уже после ухода Шарпантье из Commodore, заключалась в том, что ранние C-64 генерировали неправильное количество тактовых циклов на каждой горизонтальной видеолинии. «Оно было смещено на единицу», — сказал он. «Вместо 65 тактовых циклов на строку у меня было 64».
В результате 180-градусный фазовый сдвиг между черно-белой и цветной информацией, который должен был устранять проблемы с переходами цвета, не происходил. В зависимости от цветов спрайта и фона, края некоторых объектов на экране выглядели слегка не в линию. Это удалось исправить примерно через пять месяцев после начала производства.
Но «опережающие» края объектов по-прежнему (на момент публикации статьи в 1985 году — прим. перевод.) являются проблемой C-64. Схема, которая отображает информацию либо о спрайте, либо о фоне, иногда работает с задержкой и накладывает спрайт на фон уже после того, как пропустит несколько пикселей.
Не только конструкторы C-64 занимались совершенствованием машины; даже некоторые работники сборочной линии включились в работу. Поскольку проверить качество цветопередачи автоматически практически невозможно, сборщикам дали указание крутить потенциометр, управляющий цветным и черно-белым сигналами, до тех пор, пока они не увидят цвет. Как вспоминает Шарпантье, вскоре сотрудники обнаружили, что если повернуть потенциометр до упора, цвет станет насыщенным, но черно-белый сигнал при этом пропадет. Было отгружено несколько тысяч компьютеров, прежде чем «доработка» сотрудников сборочной линии была замечена; к тому времени некоторые рецензенты уже вовсю критиковали C-64 за его «аляповатые» цвета.
Уровень качества по-прежнему оставляет желать лучшего
Несмотря на то, что с момента выхода C-64 на рынок в него были внесены многочисленные изменения и улучшения, разработчики коммерческого ПО продолжали просить большего. Одно из самых частых пожеланий — наладить адекватный контроль качества. «Они их не тестируют», — говорит специалист компании Epyx Нельсон. «Я вскрывал совершенно новые компьютеры Commodore и находил на плате следы механического воздействия. Очевидно, при сборке C-64 они пользуются электрической отверткой, иногда промахиваются мимо винта и кромсают дорожки. Как, спрашивается, такое чудо могло пройти финальную поверку? Что ж, эти дорожки подведены к разъему дисковода, который они явно не проверяют».
Одна из жалоб, высказанных разработчиками дополнительного оборудования для C-64, заключалась в том, что его удешевленная, аскетичная конструкция приводит к нежелательному взаимодействию компонентов аппаратного и программного обеспечения. Например, схема, используемая для управления джойстиком и портом геймпада, «заимствуется» каждую 1/60 секунды для проверки клавиатуры на наличие нажатых клавиш. Если переключатели джойстика замкнуты, программа сканирования клавиатуры сообщит, что клавиша была нажата. А устройства, подключаемые к портам джойстика, могут вызывать и вовсе непредсказуемые последствия. Эта проблема не возникла бы, если бы для этих двух функций использовалось разное железо.
Еще один недостаток C-64 — сырое встроенное программное обеспечение компьютера. При включении система переходит в режим Basic. Это пережиток эпохи первого компьютера Commodore, Pet. Он не имел дисковой операционной системы, так как для него поначалу не имелось дисководов. «Приличная дисковая операционная система была разработана только после появления Pet Basic 4.0», — говорит Шарпантье. В C-64 не используется эта продвинутая версия Basic, потому что «для этого потребовалось бы больше ПЗУ, чем мы могли себе позволить». Вместо этого машина использует гораздо более примитивную версию Basic, позаимствованную у VIC-20.
Наиболее очевидные упущения в Basic для Commodore 64 — это команды для управления звуковым и графическим чипами. «Мы в принципе не предполагали внедрять подобное ПО», — сказал Яннес. «Это очевидная часть философии Commodore: ты не тратишь деньги на вещи, которые сделают продукт дороже и которые большинство покупателей не будут использовать».
У дизайнеров C-64 был свой взгляд на необходимые изменения. Чтобы сократить сроки разработки, за основу корпуса C-64 взяли корпус VIC-20, но уже в течение года новый, принципиально отличный корпус должен был заменить классический. «Он тоньше спереди и имеет более клиновидную форму», — говорит Шарпантье. «Мне всегда казалось, что корпус VIC-20 выглядит громоздким». В машину также должны были быть добавлены несколько новых функций. (Вероятно, речь идет о ревизии Commodore 64C, в котором уже читаются линии нового компьютера Commodore Amiga, в частности, домашнего Amiga 500 — прим. перевод.)
Главный недостаток C-64: дисковод
Главный недостаток C-64 заключается не в самой машине, а в ее дисководе. С достаточно быстрым дисководом и адекватной дисковой операционной системой (DOS) C-64 мог бы конкурировать на бизнес-рынке с Apple и, возможно, с другими бизнес-компьютерами. Однако с нынешним дисководом ему трудно избавиться от репутации игрушки.
«Бизнес-ориентированное программное обеспечение не работает на C-64 так хорошо, как могло бы, — говорит Доэрти, — не потому, что базовая система недостаточно хороша, а потому, что доступ к диску слишком медленный; любое бизнес-приложение предполагает большое количество обращений. И поскольку DOS слаба и лишена ряда функций, таких как автоматическое создание и ведение каталогов и отслеживание файлов, для С-64 гораздо сложнее разрабатывать бизнес-программы. «Кто-то, например, Lotus [компания Development Corp., производитель популярного интегрированного пакета программ для бизнеса], сталкивается с гораздо большими трудностями, чем при разработке программ для IBM PC, потому что у C-64 в принципе нет ОС, сопоставимой с той, что существует на PC».
«Базовая система ввода-вывода в ПЗУ выполнена достаточно качественно, в полном соответствии с принципами написания операционных систем. Там есть все необходимые процедуры, но, например, не хватает средств для автоматического чтения первой дорожки диска и загрузки в память более сложной операционной системы.»
По словам Нельсона из Epyx, в дисководе на самом деле есть функция автоматического чтения первой дорожки диска, но из-за того, что она не документирована, её мало кто использует.
Как инженеры Commodore просчитались с дисководом?
«Дисковод? Какая жуткая история!» — говорит Шарпантье. «Ею мы обязаны отделу маркетинга, точнее, тому единственному предложению от него, которое мы приняли. Маркетинг настоял на том, что C-64 должен быть обратно совместим с VIC-20».
Дисковод на VIC-20, объясняет Шарпантье, прямой потомок дисковода Commodore Pet. «У нас была параллельная шина IEEE-488, и в первое время мы использовали нестандартный формат упаковки данных: на внешних дорожках диск движется «быстрее», чем на внутренних, поэтому скорость передачи данных меняется, чтобы упаковать туда больше информации. Это была хорошая идея, но она оказалась очень неуклюжей и плохо совместимой с другими ПК. Здесь-то и берет начало проблема дисковода C-64».
Решить проблему дисковода C-64 пытались и сторонние производители. Одни продавали свои собственные дисководы для использования с C-64, но им было трудно пробиться на рынок, который контролировал Commodore. Другие продавали программы, которые можно загрузить в оперативную память для ускорения скорости передачи данных с диска, но этот вариант был применим только для использования C-64 для программирования на Basic; готовые программы, загруженные в систему, «выбивают» программы из оперативной памяти.
(На практике несостоятельный подход Commodore к дисководу привел к появлению целого зоопарка ПО, железа и хардварных модификаций, которые ретро-любители расхлебывают и по сей день. — прим. перевод.).
Окончание следует…