Création du Commodore 64 : l'histoire des ingénieurs
L'audace et le design de l'ordinateur le plus vendu de tous les temps
En janvier 1981, une poignée d'ingénieurs en semi-conducteurs de MOS Technology à West Chester, en Pennsylvanie, une filiale de Commodore International Ltd., a commencé à concevoir une puce graphique et une puce sonore à vendre à quiconque souhaitait créer "le meilleur jeu vidéo au monde". En janvier 1982, un ordinateur domestique incorporant ces puces a été présenté au Winter Consumer Electronics Show de Las Vegas, Nevada. En utilisant des installations internes de fabrication de circuits intégrés pour le prototypage, les ingénieurs avaient réduit le temps de conception de chaque puce à moins de neuf mois, et ils avaient conçu et construit cinq prototypes d'ordinateurs pour le salon en moins de cinq semaines. Ce qui a le plus surpris le reste de l'industrie de l'informatique domestique, cependant, c'est le prix de lancement du Commodore 64 : 595 $ pour une unité intégrant un clavier, un processeur central, les puces graphiques et sonores, et 64 Ko de mémoire au lieu des 16 ou 32 qui étaient alors considérés comme la norme.
Lorsque le projet de développement de puces a commencé, le Commodore 64 n'était pas du tout ce que les concepteurs avaient en tête. MOS Technology était une maison marchande de semi-conducteurs. Son groupe LSI, dirigé à l'époque par Albert Charpentier, était responsable de certaines des puces intégrées à l'ordinateur domestique VIC-20 de Commodore, mais ce projet était déjà bien avancé en production. "Nous étions à court d'idées pour toutes les puces que le reste du monde pourrait vouloir que nous fassions", a déclaré Charpentier, "Nous avons donc décidé de produire des puces vidéo et sonores à la pointe de la technologie pour le prochain grand jeu vidéo du monde."
Cet article a été publié pour la première fois sous le titre "Design case history: the Commodore 64". Il est apparu dans le numéro de mars 1985 de IEEE Spectrum. Une version PDF est disponible sur IEEE Xplore. Les schémas et photographies de puces, de circuits imprimés et d'écrans sont apparus dans la version imprimée originale.
Charles Winterble, alors directeur de l'ingénierie mondiale pour Commodore, a donné le feu vert pour l'effort de puce, et le groupe de Charpentier a travaillé de manière assez indépendante jusqu'à ce que les deux puces soient terminées à la mi-novembre 1981.
Lors d'une réunion avec Charpentier et Winterble à la fin du mois, Jack Tramiel, alors président de Commodore, a décidé de ne pas poursuivre le jeu vidéo. Au lieu de cela, décida-t-il, les puces iraient dans un ordinateur domestique de 64 kilo-octets qui serait présenté au Consumer Electronics Show de Las Vegas la deuxième semaine de janvier 1982. L'ordinateur n'avait pas encore été conçu, mais il était facile d'y remédier.
En deux jours, les ingénieurs ont mis sur papier l'architecture de base de la machine. Juste avant la nouvelle année, ils ont terminé cinq prototypes fonctionnels. Entre-temps, suffisamment de logiciels de système d'exploitation ont été copiés et réécrits à partir du VIC-20 pour donner des démonstrations passables de ce que la nouvelle machine pouvait faire. Suite à son accueil enthousiaste au Consumer Electronics Show, le Commodore 64 a été précipité en production; les expéditions en volume ont commencé en août 1982 et se sont poursuivies sans relâche.
Malgré les plaintes concernant le contrôle de la qualité et le lecteur de disque le plus lent de l'industrie, le Commodore 64 a été un succès sans précédent, repoussant un certain nombre de ses concurrents hors du marché. Une partie de la raison de son succès est le prix, qui ne cesse de baisser - de 595 $ lors de son introduction à 149 $ actuellement, pour lequel le consommateur obtient des graphismes et un son égaux ou meilleurs que ceux fournis par des machines qui coûtent cinq fois plus cher.
À la fin des années 1970, MOS Technology était une société de semi-conducteurs prospère ; ses ingénieurs avaient conçu le populaire microprocesseur 6502 et il fabriquait plusieurs autres produits qui se vendaient solidement. Commodore, une société de la côte ouest à l'époque, a repris MOS en 1976 - ce qui a poussé de nombreux ingénieurs MOS à démissionner lorsque leur action a été achetée à 10 cents le dollar - mais MOS a été autorisé à fonctionner de manière assez autonome.
En 1979 et 1980, se souvient Charpentier, MOS Technology a développé le microprocesseur 6510 - une révision mineure du 6502 avec un port d'entrée-sortie supplémentaire, le contrôleur périphérique 6526, de nombreuses puces de mémoire morte (ROM) et une puce de mémoire vive (RAM) de 4 kilobits. À cette époque, MOS fournissait des équipements à Atari Inc., General Electric Co., Hewlett-Packard Co. et un certain nombre d'autres clients, ainsi qu'à Commodore.
Carte binaire
Un système d'affichage dans lequel chaque point sur l'écran est contrôlé par la valeur d'un bit particulier dans la mémoire de l'ordinateur. Plusieurs bits par point permettent plusieurs couleurs et ombrages.
Table des caractères
Un système d'affichage dans lequel un groupe de points sur l'écran est défini par un seul mot dans la mémoire de l'ordinateur qui pointe vers une carte de points miniature contenant les valeurs de chaque point. Étant donné que de nombreux modèles sont réutilisés sur un écran typique, les mappages de caractères utilisent moins de mémoire que les mappages de bits.
Horloge couleur
La fréquence du signal porteur utilisé pour transmettre les informations de couleur dans la norme NTSC (National Television Systems Committee); 3,58 mégahertz.
DE LA
Disque contenant le systeme d'exploitation; ensemble de fonctions, telles que l'ouverture, la fermeture, le changement de nom et la suppression de fichiers, nécessaires à un ordinateur pour utiliser efficacement un lecteur de disque.
Champ
Dans la norme NTSC, un ensemble de 262,5 lignes de balayage de télévision, transmises à un taux de 60 par seconde. Deux champs entrelacés forment une seule trame de 525 lignes.
Interrompre
Un signal qui amène un ordinateur à arrêter ce qu'il est en train de faire et à appeler une routine spéciale. Les interruptions permettent à un ordinateur de traiter des données tout en répondant aux entrées imprévisibles des périphériques.
Lutin
Objet graphique mobile utilisé dans les ordinateurs personnels et les machines de jeux vidéo pour l'animation. Un sprite peut être déplacé simplement en changeant les registres qui contrôlent sa position, tandis qu'un objet dessiné dans une mémoire bitmap ne peut être déplacé qu'en le copiant dans un nouvel ensemble d'emplacements mémoire.
Lorsque la décision a été prise de concevoir les dernières puces graphiques et sonores supérieures, la première étape était évidente : trouver ce que les puces de haute qualité actuelles pouvaient faire. Pour constituer son équipe de conception, Charpentier a recruté Robert Yannes, un jeune ingénieur qui avait rejoint MOS en 1979 et avait conçu le VIC-20 chez lui, à partir d'une carte prototype de rechange. L'équipe a passé environ deux semaines à rechercher des puces comparables dans toute l'industrie.
"Nous avons beaucoup étudié le Mattel Intellivision", se souvient Winterble. "Nous avons également examiné le Texas Instruments 99/4A et l'Atari 800. Nous avons essayé d'avoir une idée de ce que ces entreprises pourraient faire à l'avenir en extrapolant à partir de leur technologie actuelle. Cela a clairement indiqué quelles devaient être les capacités graphiques de notre machine."
Les concepteurs de MOS ont librement emprunté des idées qu'ils aimaient - des sprites de la machine TI, des techniques de détection de collision et des graphiques mappés de caractères de l'Intellivision, et une carte binaire de leur propre VIC-20. Ils ont ensuite emballé autant de ces idées que possible dans une zone prédéfinie de silicium.
"Al [Charpentier] a eu la liberté, dans une certaine taille de dé, de mettre tout ce qu'il pouvait, en travaillant à rebours dans la taille que nous avions prévue. Lorsqu'il a manqué de registres, il s'est arrêté", a déclaré Winterble. "Nous avons défini à l'avance la taille de silicium qui donnerait un rendement avec lequel nous étions prêts à vivre ; à cette époque, une taille de matrice raisonnable dans la technologie de 5 micromètres était inférieure à 200 mils. Ensuite, nous avons hiérarchisé la liste de souhaits de ce qui doit être là à ce qui devrait être là à ce que nous aimerions avoir, de sorte que les décisions qui étaient nécessaires à différents moments sont devenues assez automatiques. "
Pendant neuf mois, Charpentier a travaillé avec deux dessinateurs et un opérateur de conception assistée par ordinateur sur la puce graphique tandis que Yannes a travaillé avec deux autres dessinateurs et un opérateur CAO sur la puce son. Ils manquaient complètement des outils de conception sophistiqués des postes de travail d'ingénierie d'aujourd'hui, mais ils disposaient d'un outil de conception facilement disponible que l'on ne trouve presque nulle part ailleurs dans l'industrie de l'informatique domestique : une ligne de fabrication de puces sur place. Avec cela, a expliqué Winterble, un circuit enterré profondément à l'intérieur des puces pourrait être soulevé et exécuté comme une puce de test, permettant un débogage approfondi sans se soucier des autres parties du circuit. David A. Ziembicki, alors ingénieur de production chez Commodore, rappelle que les temps de fabrication typiques étaient de quelques semaines et qu'en cas d'urgence, l'installation de fabrication captive pouvait transformer les conceptions en aussi peu que quatre jours.
Le coût de développement du Commodore 64 : Personne ne le sait.
Le coût de développement du Commodore 64 : Personne ne le sait. "Je n'avais aucune responsabilité budgétaire formelle", a déclaré Winterble, "à part Jack [Tramiel] qui me regardait. Jack a dit que les budgets étaient une licence pour voler." Étant donné que l'installation de fabrication de MOS Technology ne fonctionnait pas à pleine capacité, l'équipement utilisé pour les puces de test C-64 et les multiples passages de silicium auraient autrement été inactifs. "Nous utilisions des gens qui étaient là de toute façon", a déclaré Ziembicki. "Vous gaspillez un peu de silicium, mais le silicium est assez bon marché. Ce n'est que du sable."
Bien que les puces personnalisées soient généralement considérées comme chères, les puces C-64 ne l'étaient pas. Non seulement les coûts de développement ont été absorbés par les frais généraux de l'entreprise, mais il n'y avait pas de majoration à payer, car il y en aurait eu si les puces avaient été construites par une autre entreprise. Et les rendements étaient élevés car les puces étaient conçues pour un processus de fabrication de semi-conducteurs mature.
La puce sonore a été conçue avec une technologie de 7 micromètres, réduite à 6 par endroits. (En revanche, la puce personnalisée du système informatique vidéo d'Atari, fabriquée quatre ans plus tôt, était construite avec une technologie de 6 micromètres.) La puce vidéo de Commodore a été conçue avec des fonctionnalités de 5 micromètres.
Parce que le temps de conception plutôt que le silicium était primordial, les puces ont été disposées simplement plutôt que de manière compacte. "Nous l'avons fait de manière très modulaire", a déclaré Yannes. Par exemple, a-t-il noté, "la manière standard de construire des oscillateurs est d'en construire un, puis de le multiplexer jusqu'à ce que vous en ayez autant que vous en avez besoin. Nous venons de construire un module d'oscillateur et de le répéter, car c'était beaucoup plus rapide que de travailler sur tout le timing pour le multiplexeur. "
(UN)Stockage de pointeur de caractère(B)Compteurs d'adresses de sprites(C)Compteurs d'adresses de caractères(D)Générateur d'horloge(E)Comparateur vertical Sprite(F)Contrôle de synchronisation verticale(G)Comparateur horizontal Sprite(H)Contrôle de la synchronisation horizontale(JE)Registres à décalage de sprites et de caractères(J)Encodeur à priorité d'affichage(K)Registre des couleurs(L)Détection de collision de caractères Sprite(M)Sorties vidéo
La majeure partie de la zone de la puce vidéo Commodore 64, le VIC II, est consacrée aux huit sprites (B, EH, L). Le circuit de génération d'horloge (D) dessert l'ensemble du système. Le seul circuit entièrement consacré à la génération de caractères est la matrice de stockage qui contient chaque ligne de caractères à afficher (A) et le compteur d'adresses qui récupère les données ROM appropriées pour chaque ligne de trame de l'affichage de caractères. Trois modules (I, J, L) sont chargés d'envoyer les données de sprite et de personnage à l'écran dans le bon ordre et de signaler toute collision entre les données de sprite et de personnage. La partie centrale de la puce se compose des circuits pour afficher les sprites à leurs positions horizontales et verticales correctes, et pour récupérer leurs données de la mémoire. La synchronisation des différentes fonctions de la puce, telles que la récupération des données pour les sprites, est effectuée en combinant un compteur et une ROM. Le compteur parcourt les adresses de la ROM, et le contenu de chaque adresse ROM commande les lignes de commande appropriées. Le logo MOS Technology et les initiales des concepteurs et des dessinateurs sont visibles près de la marge gauche de la puce.
"Ce qui était remarquable", a ajouté Winterble, "c'est que neuf mois plus tard, lorsque nous sommes sortis avec le premier passage, il a fonctionné à l'exception d'un mauvais sprite."
En novembre 1981, les puces étaient complètes. L'intention initiale était une machine de jeu, mais à ce stade, le marché des ordinateurs personnels commençait à être prometteur. Lors d'une réunion de Charpentier, Winterble et Tramiel, la décision a été prise d'opter pour un ordinateur personnel. Le prochain choix à faire, selon Charpentier, était entre une machine de 16 kilo-octets et une machine de 64 kilo-octets, puisque les puces personnalisées étaient conçues pour gérer l'une ou l'autre option.
"Jack [Tramiel] a fait le pari qu'au moment où nous serions prêts à produire un produit, les Rams 64K seraient suffisamment bon marché pour que nous les utilisions", a déclaré Charpentier.
Lorsque la conception du Commodore 64 a commencé, les objectifs primordiaux étaient la simplicité et le faible coût. Le coût de production initial du Commodore 64 était ciblé à 130 $; il s'est avéré être 135 $. L'ordinateur utiliserait le même boîtier que le VIC-20 et le circuit imprimé de même taille, pour accélérer le développement. "Ce n'était même pas une décision", a déclaré Charpentier. "C'était juste du bon sens. Si vous avez un produit gagnant, pourquoi le changer?" Pour passer du VIC-20 au Commodore 64, le groupe de production n'a eu qu'à réduire l'emplacement de la cartouche, changer la couleur du boîtier et concevoir une nouvelle étiquette.
De plus, au lieu de concevoir d'abord les performances et le prix ensuite, comme de nombreux ingénieurs ont tendance à le faire, la petite équipe de conception de Commodore avait le coût à l'esprit dès le départ. Yannes, par exemple, avait fait de l'économie son credo lorsqu'il était un lycéen démuni à la recherche de pièces pour construire un synthétiseur sonore. "Chaque fois que je conçois quelque chose, je veux utiliser le nombre minimum de composants possible. C'est un défi personnel. S'il y a une porte [logique] de rechange dans un package de porte, je travaillerai pour me débarrasser de l'ensemble du package, car en travaillant avec un certain nombre de puces, je devrais pouvoir utiliser tout ce qu'elles contiennent. Le Commodore 64 était ma tentative de construire le système minimal absolu qui pourrait être construit à partir des puces vidéo et audio assemblées. "
Dans l'industrie de l'électronique grand public, les nouveaux produits sont traditionnellement présentés aux distributeurs, aux revendeurs, à la presse et à la concurrence deux fois par an, le premier week-end de janvier et le premier week-end de juin, lors des salons d'hiver et d'été de l'électronique grand public (CES).
"Lorsque vous travailliez pour Commodore", a déclaré Yannes, "vous deviez toujours avoir quelque chose pour le CES d'hiver." Le C-64 n'avait pas beaucoup de concurrence au salon d'hiver de 1982. Atari semait encore son ordinateur 400/800. Mattel a présenté l'ordinateur Aquarius et Spectravideo a présenté son ordinateur/machine de jeu, à la fois avec une mémoire et des capacités limitées.
Ziembicki a rappelé: "Tout ce que nous avons vu sur notre stand, c'étaient des gens d'Atari bouche bée, disant:" Comment pouvez-vous faire ça pour 595 $? ""
"Nous avons été un succès", a ajouté Winterble.
Après le salon, Commodore, qui avait la réputation de montrer parfois des produits qui ne réapparaissaient jamais, a dû mettre rapidement le 64 en production. Seules quelques modifications de conception ont été apportées pour préparer la machine à la production. "Ce qu'il y a dans le 64 est fonctionnellement ce que je voulais", a déclaré Yannes. "Ce qu'il y a dans la puce audio, c'est ce que je voulais, et ce qu'il y a dans la puce vidéo, c'est ce qu'Al [Charpentier] voulait."
En fait, a déclaré Ziembicki, "après qu'il soit finalement entré en production, nous avons regardé en arrière et demandé, pourquoi avons-nous pris la peine de le changer après janvier ? Il n'aurait pas vendu une unité de moins, et nous aurions économisé beaucoup d'argent sur les coûts de développement."
Certains des changements étaient assez importants, mais ils ont peut-être créé autant de problèmes qu'ils en ont résolus. La plus grande amélioration a été de remédier à "un hoquet" dans la puce vidéo, a déclaré Winterble.
Lorsque Charpentier a conçu la puce vidéo pour la première fois, a-t-il expliqué, son objectif était des performances optimales en noir et blanc et en couleur. Les puces vidéo précédentes, telles que celles utilisées dans l' Atari et l' Apple , avaient une fréquence noir et blanc de 7,16 MHz - deux fois la fréquence d'horloge couleur de la télévision de 3,58 MHz - mais cela ne pouvait pas compresser suffisamment de caractères sur une ligne, et cela a également induit une diaphonie entre les deux signaux, provoquant un léger déplacement d'un objet vers la gauche ou la droite sur l'écran en fonction de sa couleur. Après le CES de janvier 1982, lorsqu'il a vu que 40 caractères ne tiendraient pas tout à fait sur un écran de télévision, Charpentier a accéléré la fréquence d'horloge en noir et blanc et a rendu les deux horloges complètement asynchrones. Mais comme les ensembles d'informations en couleur et en noir et blanc changeaient constamment de phase les uns par rapport aux autres, "les transitions de couleurs étaient fantastiques, mais il y avait un effet global de nage", se souvient-il. La solution consistait à mettre une boucle à verrouillage de phase dans le système afin que les informations couleur et noir et blanc aient une relation constante. Ceci, a reconnu Charpentier, était "une solution de fortune".
Et c'est à quoi cela ressemble, selon Craig Nelson, directeur du développement de produits pour Epyx Computer Software de Sunnyvale, en Californie. "C'est un circuit vraiment élégant", a-t-il dit, "à l'exception de la boucle à verrouillage de phase, qui est juste coincée au milieu." (Commodore dit maintenant qu'il a repensé la puce pour éliminer le problème.)
Pour en savoir plus sur les joies et les frustrations des développeurs de logiciels travaillant avec le Commodore 64, consultez :
En raison du "pansement", les informations de couleur et les informations en noir et blanc changent de phase de 180 degrés l'une par rapport à l'autre sur des champs vidéo successifs plutôt que de changer de phase de manière imprévisible. Cela est plus conforme à la norme NTSC (National Television Systems Committee), qui exige que les informations en noir et blanc aient une fréquence d'horloge qui est une harmonique impaire de la fréquence d'horloge couleur, de sorte que les deux inversent automatiquement leur relation tous les autres. champ - un champ en phase, le champ suivant déphasé. (Dans la norme NTSC, les couleurs sont déterminées par la différence de phase entre le signal de couleur et un signal de référence de couleur transmis au début de chaque ligne.)
Au moment où la norme a été développée, les circuits couramment disponibles ne pouvaient pas séparer complètement les informations en noir et blanc de la couleur : les changements de couleur entraîneraient des changements de luminosité et vice versa. C'est pour faire la moyenne de ces évolutions dans le temps que le NTSC a précisé que l'inversion de phase relative des deux signaux pouvait se produire sur des trames successives. Le résultat est des transitions de couleurs plus agréables, mais le déphasage donne l'impression que les figures stationnaires tremblent. La gigue est particulièrement évidente sur les lignes verticales fines, comme celles en caractères alphanumériques. Mais lorsque le Commodore 64 a été conçu, ce devait être avant tout une machine de jeu, pas un ordinateur.
L'exécution d'une puce de technologie de 5 micromètres à une fréquence d'horloge de 8 MHz lui a fait dissiper une grande quantité de puissance - près de 1,5 watts. Non seulement la puce fonctionnait rapidement, mais pour éviter que les couleurs ne se délavent, comme elles l'avaient fait dans le VIC-20, "nous sommes passés à 12 volts pour éliminer les signaux de couleur", a rappelé Winterble. "Nous savions que nous aurions un problème de chaleur."
À ce stade, Winterble a apporté une autre solution de conception en soudant une petite languette métallique à l'intérieur du couvercle de l'enceinte de blindage autour de la puce vidéo. Lorsque l'ordinateur a été assemblé, la languette a été pressée contre le haut du boîtier de la puce, formant un chemin conducteur de chaleur et transformant le blindage en dissipateur thermique.
Certaines modifications qui auraient pu améliorer la machine n'ont pas été apportées dans la précipitation à la production. Par exemple, a déclaré Yannes, les fils de la sortie audio sur la carte de circuit imprimé longent les fils du signal vidéo. En conséquence, la sortie sonore capte un gémissement gênant de 15 750 Hz. Rediriger le circuit aurait pris du temps, "et nous avions une carte qui fonctionnait", a-t-il expliqué. "A ce moment-là, si vous aviez quelque chose qui fonctionnait, vous ne l'avez pas changé." Une révision du circuit imprimé depuis lors a redirigé ces lignes, a déclaré Commodore.
Mais les concepteurs ont en fait changé certaines choses qui fonctionnaient, y compris une révision qui a dégradé les performances de la machine.
Mais les concepteurs ont en fait changé certaines choses qui fonctionnaient, y compris une révision qui a dégradé les performances de la machine. La conception originale spécifiait un modulateur radiofréquence de haute qualité pour transmettre le signal à un téléviseur, mais un modulateur moins cher a été remplacé. "C'était entre 6,25 $ et 6,50 $ pour un bon, et nous avons fini par dépenser environ 3 $", a déclaré Charpentier.
Winterble a une vision différente du modulateur à 3 $ : "Le modulateur à 50 cents que nous utilisions sur le VIC-20 n'était pas assez bon", a-t-il dit, "nous sommes donc allés vers un plus cher".
La conception électronique n'était pas le seul domaine difficile car le Commodore 64 est passé du développement du prototype à la production - la logistique posait un problème complexe. Le C-64 a été conçu à Norristown, en Pennsylvanie, au MOS. La chaîne de montage du VIC-20, qui devait commencer à fabriquer des C-64, se trouvait à Santa Clara, en Californie. Alors que le C-64 entrait en production, Commodore ouvrait également une nouvelle chaîne de montage à West Chester, en Pennsylvanie. Il y avait d'autres installations d'assemblage de VIC-20 au Japon, où le lecteur de disque du C-64 devait être fabriqué. Et les circuits imprimés C-64 étaient fabriqués à Hong Kong.
"C'était très amusant", a déclaré Ziembicki. "Les concepteurs choisissaient une vis anglaise. La fin de la production choisissait la métrique. Mais ils sont allés avec ce qu'ils avaient. La production de Commodore était très bonne pour faire en sorte que les choses s'adaptent, qu'elles soient destinées ou non. Leur charte était 'Expédiez-les'" "
"Il faut une personne très dure", a expliqué Charpentier, "pour dire" Je ne les expédie pas parce qu'ils ne sont pas aussi bons qu'ils pourraient l'être ", surtout lorsque les gens réclament de les acheter."
Le démarrage de la production du Commodore 64 au printemps 1982 n'a pas mis fin à la polémique. "La clé est de pouvoir résoudre vos problèmes pendant que vous courez", a déclaré Ziembicki.
L'une des premières batailles, se souvient Charpentier, portait sur la disposition du circuit imprimé. L'usine d'assemblage de Commodore aux États-Unis utilisait un équipement d'insertion de composants automatisé, mais pas son usine japonaise, et les deux techniques d'assemblage nécessitaient un espacement différent des composants. En fin de compte, la carte du C-64 a été conçue pour une insertion automatisée et la production a été transférée dans une nouvelle usine à Hong Kong qui disposait des outils automatisés.
Des problèmes affectaient également un certain nombre de composants, comme les commutateurs. "Vous choisissez un interrupteur qui est répertorié comme un interrupteur grand public", a déclaré Ziembicki. "Vous le concevez. Vous appelez le fabricant et obtenez une estimation qui semble raisonnable. Ensuite, la Californie [la division de production] veut 50 000 par semaine, mais le fabricant dit:" Nous ne pouvons pas faire cela. C'est un changement de consommation, mais nous ne sommes pas adaptés aux quantités de consommation. À ce moment-là, vous êtes raccroché."
Étant donné que Commodore venait de déplacer son personnel d'ingénierie de la Californie vers la Pennsylvanie, la communication entre les ingénieurs de conception et les installations de production n'était pas très bonne, a expliqué Ziembicki. "C'est arrivé au point où vous ne pouviez pas arrêter de travailler même si vous n'obteniez pas de réponse --- vous continueriez simplement avec les composants que vous pensiez que la fin de la production pourrait obtenir."
Et les fournisseurs extérieurs n'étaient pas toujours fiables. "L'un a fourni une alimentation électrique pour approbation technique", se souvient Ziembicki. "Il a été approuvé, puis le fournisseur a modifié la conception et n'en a parlé à personne."
De petits changements dans la conception interne du Commodore 64 au cours de sa production de plus de 5 millions d'unités ont réduit les coûts de fabrication à environ un tiers des 135 $ d'origine. L'augmentation du volume est une économie de coûts. (Cliquez sur la flèche pour voir le circuit imprimé révisé.)
Charpentier a déclaré que ses relations avec le groupe de production étaient assez agréables. Les relations de Winterble avec eux n'étaient pas aussi cordiales, mais il trouvait cela acceptable. "Personnellement, j'ai dû jouer du lourd sur beaucoup de choses", a-t-il déclaré. "Alors Al entrait et faisait du bien. Cette technique soulageait beaucoup de tension - c'était un moyen de faire avancer les choses."
Le problème le plus notoire était le "scintillement", un défaut qui provoquait l'apparition de petites taches de lumière sur l'écran d'affichage. Le problème a été résolu avant que Charpentier ne quitte l'entreprise en septembre 1982, mais les rapports sur le défaut se sont poursuivis jusque pendant la saison de Noël, des articles de presse le citant comme un exemple du mauvais contrôle qualité de Commodore. Les consommateurs avertis l'ont utilisé comme excuse pour retourner des Commodore 64 en parfait état alors qu'ils étaient sous garantie de 90 jours. Le prix de la machine ayant chuté de 200 $ dans les deux mois suivant son introduction, cette ruse a permis aux propriétaires d'obtenir le remboursement du prix d'achat et d'acheter un autre C-64 au prix inférieur.
Sparkle a été largement attribué à des bogues dans la puce vidéo qui était au cœur du système, mais en fait, il a été causé par une puce ROM dont 3 millions étaient en service sans aucun problème dans d'autres systèmes, y compris le jeu vidéo d'arcade à succès Asteroids. Les ingénieurs de Commodore eux-mêmes ont d'abord recherché le problème dans la puce vidéo. Il leur a fallu trois semaines pour repérer la puce ROM comme source du défaut, a déclaré Charpentier. "Le problème était un événement aléatoire - cela ne se produisait pas tout le temps. Nous pensions que la puce vidéo voyait, pour une raison quelconque, les mauvaises données. Nous ne soupçonnions même pas que cela pouvait être la ROM. Enfin, nous avons mis l'analyseur logique dessus et l'avons retrouvé. " La ROM, que Charpentier et son groupe avaient conçue des années plus tôt, avait un circuit de précharge spécial pour la faire fonctionner plus rapidement, mais le circuit la rendait sensible aux signaux parasites. Le circuit vidéo et le microprocesseur 6510 ont alterné pour contrôler le bus système, et lorsque le contrôle passait de l'un à l'autre, des pointes de tension étaient parfois générées.
"Il se trouve que nous avons atteint le moment exact", a déclaré Charpentier. "Si le pic avait été plus court ou plus long de quelques nanosecondes, cela n'aurait pas été un problème. Le pic était juste assez large pour que la ROM le considère comme une adresse valide. Il ignorerait la prochaine demande d'adresse et donnerait des données erronées à la puce vidéo. " Étant donné que la ROM contenait le jeu de caractères C-64, l'affichage à l'écran serait jonché de tranches aléatoires de caractères.
Selon Nelson d'Epyx, "Ce truc qui ressemble à des interférences de confettis sur l'écran, appelé brillamment éclat, a une propriété extrêmement désagréable : il provoque des collisions matérielles - les sprites croient qu'il existe vraiment." Étant donné que l'étincelle était causée par des données inappropriées transmises à la puce vidéo, elle a déclenché le circuit chargé de vérifier si les objets d'affichage mobiles - les sprites - recouvraient des objets d'arrière-plan sur l'écran. Ainsi, les logiciels qui dépendaient de la détection de collision pour contrôler le mouvement des objets sur l'écran deviendraient fous lorsqu'ils seraient confrontés à l'étincelle.
Le bogue dans la ROM a été corrigé, bien que Commodore ait dû compter sur des fournisseurs extérieurs pendant un certain temps alors qu'il accélérait sa nouvelle ligne de production. Seules les premières centaines de milliers d'unités expédiées présentaient le défaut. Mais, a observé Nelson, "peu importe pour les programmeurs qu'il ait été corrigé. Notre logiciel doit fonctionner sur toutes les machines." La meilleure solution pour les programmeurs, a-t-il expliqué, est de copier le contenu de la ROM dans la RAM, qui est fiable. Mais cela gaspille 2 kilo-octets de RAM.
En plus de la difficulté avec la ROM, "j'ai fait une erreur de logique", se souvient Charpentier. L'erreur, qui a parfois été corrigée après que Charpentier a quitté Commodore, a amené les premiers C-64 à générer le mauvais nombre de cycles d'horloge sur chaque ligne vidéo horizontale. "C'était à une heure", a-t-il dit. "Au lieu de 65 cycles d'horloge par ligne, j'en avais 64."
En conséquence, le déphasage de 180 degrés entre les informations en noir et blanc et en couleur, qui aurait éliminé les problèmes de transition des couleurs, ne s'est pas produit. Selon leur couleur et la couleur de l'arrière-plan, les bords de certains objets à l'écran apparaîtraient légèrement décalés. Cela a été corrigé environ cinq mois après le début de la production.
Mais les bords d'attaque sont toujours un problème avec le C-64. Le circuit qui affiche des informations sur le sprite ou des informations d'arrière-plan à n'importe quel endroit de l'écran est parfois lent à répondre et superpose le sprite sur les informations d'arrière-plan uniquement après avoir manqué quelques pixels.
Les concepteurs du C-64 n'étaient pas les seuls à réviser leur machine ; même certains travailleurs à la chaîne sont entrés dans l'acte.
Les concepteurs du C-64 n'étaient pas les seuls à réviser leur machine ; même certains travailleurs à la chaîne sont entrés dans l'acte. Étant donné qu'il est pratiquement impossible de tester automatiquement la qualité des couleurs, les travailleurs de la chaîne de montage ont été chargés de tourner un potentiomètre qui contrôle les signaux de couleur et de noir et blanc jusqu'à ce qu'ils voient la couleur. Comme l'a rappelé Charpentier, les ouvriers ont vite découvert que s'ils tournaient le potentiomètre aussi loin que possible, cela entraînait une couleur saturée, mais cela effaçait également le signal noir et blanc. Plusieurs milliers d'ordinateurs avaient été expédiés avant que la «révision» des ouvriers de la chaîne de montage ne soit remarquée; à ce moment-là, certains critiques fustigeaient le C-64 pour ses couleurs "criardes".
Bien que ces modifications aient été apportées au C-64 depuis son introduction, les concepteurs qui écrivent des logiciels commerciaux pour la machine aimeraient en voir quelques autres. Un tel changement serait un contrôle de qualité adéquat. "Ils ne testent pas", a déclaré Nelson d'Epyx. "J'ai ouvert de tout nouveaux Commodores et j'ai trouvé des traces coupées. Ils utilisent évidemment un tournevis électrique pour assembler le C-64, manquent parfois la vis et coupent les traces. Comment, pourriez-vous vous demander, cela aurait-il pu passer l'inspection finale ? Eh bien, ces traces sont reliées aux connecteurs du lecteur de disque, qu'ils ne testent évidemment pas."
Avec le recul, Charpentier a qualifié l'une des erreurs de Commodore de "ne pas se rapprocher un peu plus de la qualité".
Une plainte exprimée par les concepteurs de matériel complémentaire pour le C-64 est que sa conception minimaliste entraîne des interactions indésirables entre les parties du matériel et du logiciel. Par exemple, les circuits utilisés pour contrôler le joystick et le port de la manette de jeu sont empruntés une fois toutes les 1/60 seconde pour scanner le clavier à la recherche des touches qui ont été enfoncées. Si les commutateurs du joystick sont fermés, le logiciel de numérisation du clavier signale qu'une touche a été enfoncée. Les périphériques qui se connectent aux ports du joystick peuvent provoquer des réponses imprévisibles, un problème qui ne se produirait pas si un matériel séparé avait été utilisé pour les deux fonctions.
Un autre défaut est le logiciel interne rudimentaire de l'ordinateur. Le système s'affiche en Basic lorsqu'il est allumé. Il s'agit d'un vestige de l'époque du premier ordinateur Pet produit par Commodore, qui n'avait pas de système d'exploitation sur disque, car il n'y avait pas de lecteurs de disque à l'époque. "Un système d'exploitation de disque décent n'a pas été développé avant Pet Basic 4.0", a déclaré Charpentier. Le C-64 n'utilise pas cette version avancée de Basic car "il aurait fallu plus de ROM que nous ne pouvions en mettre". Au lieu de cela, la machine utilise une version beaucoup plus primitive de Basic, empruntée au VIC-20.
"Le logiciel n'était pas tangible - vous ne pouviez pas le tenir, le sentir ou le toucher - donc cela ne valait pas la peine de dépenser de l'argent."
Les omissions les plus flagrantes du Basic du Commodore 64 sont les commandes permettant de contrôler les puces audio et graphiques. "Il n'a jamais été question que le système ait un logiciel intégré pour contrôler les graphismes ou le son", a déclaré Yannes. "C'était une partie évidente de la philosophie de Commodore ; vous ne gaspillez pas d'argent dans des choses qui rendent le produit plus cher et que la majorité des acheteurs n'utiliseront pas."
« Commodore a toujours fait semblant de parler de logiciels », a déclaré Charpentier. "Ils en font assez pour s'en sortir, puis s'appuient sur des sources extérieures pour combler le vide. Commodore était une extension de Jack Tramiel, et pour lui, le logiciel n'était pas tangible - vous ne pouviez pas le tenir, le sentir ou le toucher - donc ça ne valait pas la peine de dépenser de l'argent pour ça."
Les concepteurs du C-64 avaient leurs propres plans de modifications qui n'ont pas encore été mis en œuvre. Ils ont utilisé le boîtier VIC-20 pour raccourcir le développement, mais ils avaient conçu un nouveau boîtier qu'ils avaient l'intention de remplacer dans huit à dix mois. "Il était plus mince à l'avant et avait une forme plus cunéiforme", a déclaré Charpentier. "J'ai toujours pensé que le boîtier VIC-20 avait l'air maladroit." Quelques nouveautés devaient également être ajoutées à la machine.
Le fait que ces modifications n'aient pas été apportées n'a pas vraiment affecté le succès du C-64, a affirmé Brian Dougherty, président de Berkeley Softworks de Berkeley, en Californie. "Cette machine a la meilleure capacité d'affichage graphique de tout ce qui a encore été fait pour un écran de télévision", a-t-il déclaré. "C'est devenu un système génial."
Le seul défaut majeur du C-64 n'est pas la machine elle-même, mais son lecteur de disque. Avec un lecteur de disque raisonnablement rapide et un système d'exploitation de disque (DOS) adéquat, le C-64 pourrait rivaliser sur le marché professionnel avec Apple et peut-être avec d'autres ordinateurs professionnels. Avec le lecteur de disque actuel, cependant, il est difficile de perdre son image de jouet.
"Les logiciels orientés métier ne sont pas aussi beaux qu'ils le devraient sur le C-64", a déclaré Dougherty, "non pas parce que le système de base n'est pas assez bon, mais parce que l'accès au lecteur de disque est trop lent ; toute application métier nécessite beaucoup d'accès au disque." Et comme le DOS est si faible et manque de fonctionnalités telles que la création et la maintenance automatiques de répertoires et le suivi des fichiers, "il est beaucoup plus difficile de développer des logiciels d'entreprise" pour le C-64, a-t-il ajouté. "Quelqu'un comme Lotus [Development Corp., fabricant d'un progiciel intégré populaire] est confronté à beaucoup plus de difficultés qu'il n'en a eu pour développer un logiciel pour le PC IBM, car le PC a une structure de système d'exploitation qui n'existe tout simplement pas pour ce produit.
"Le système d'entrée-sortie de base dans la ROM est fait assez proprement, selon les principes du système d'exploitation. Toutes les routines qui doivent être là sont là, mais il devrait également y avoir une fonction pour lire automatiquement la première piste du disque et démarrer un système d'exploitation plus sophistiqué en mémoire. "
Le lecteur de disque dispose en fait d'une fonction de lecture automatique de la première piste d'un disque, selon Nelson d'Epyx, mais comme elle n'est pas documentée, elle n'est pas largement utilisée.
Comment les ingénieurs de Commodore ont-ils bâclé le lecteur de disque ?
« Le lecteur de disque ? Quelle histoire sanglante ! »
« Le lecteur de disque ? Quelle histoire sanglante ! » dit Charpentier. "Cela avait à voir avec la seule contribution marketing que nous avons acceptée. Le marketing a déclaré que le C-64 devait être compatible avec le VIC-20."
Le lecteur de disque du VIC-20, a expliqué Charpentier, était un descendant direct du lecteur de l'ordinateur Commodore Pet. "Nous avions un bus IEEE-488 parallèle pour le lecteur de disque Pet ; et nous utilisions un format étrange au début afin de compresser les données : sur les pistes externes, le disque se déplace plus rapidement que sur les pistes internes, donc le débit de données change afin de compresser plus de données. C'était une bonne idée, mais c'était maladroit, dans la mesure où vous êtes incompatible avec tout le monde. C'est le problème avec lequel tout a commencé."
Le lecteur de disque VIC-20 a été conçu au Japon et le bus est passé de parallèle à série pour économiser. Le lecteur est très lent car la partie interface série du contrôleur d'interface (le 6522) utilisé sur le VIC-20 ne fonctionne pas. En conséquence, le processeur 6502 envoie un bit à la fois sous contrôle logiciel direct, plutôt que d'envoyer un octet au contrôleur périphérique et de le laisser s'occuper des horloges, des données et des tremblements de main.
"Nous avons corrigé le registre à décalage série pour le 6526 [le contrôleur d'interface utilisé sur le C-64 pour remplacer le 6522] mais nous ne pouvions pas l'utiliser, car le lecteur de disque devait être compatible", a poursuivi Charpentier. "Et, parce que le processeur du C-64 est éteint pendant 40 microsecondes toutes les 512 microsecondes, il manque toujours les signaux d'interruption qui contrôlent l'interface du disque. La solution : ralentir encore plus le lecteur."
La vitesse était le seul facteur qui aurait pu être modifié sans entraîner le coût de modifications radicales du lecteur de disque ; si les concepteurs du C-64 avaient pu renoncer à la compatibilité VIC-20, ils auraient pu faire beaucoup mieux. Et au final, bien sûr, le C-64 n'était de toute façon pas compatible avec le lecteur de disque de l'IC-20.
"Tout cela est dû au fait que l'interface série 6522 ne fonctionnait pas", a conclu Charpentier.
D'autres fabricants tentent de résoudre le problème de lecteur de disque du C-64. Certains vendent leurs propres disques durs à utiliser avec le C-64, mais ils ont du mal à pénétrer un marché contrôlé par Commodore. D'autres vendent des programmes qui peuvent être chargés dans la RAM pour accélérer les taux de transfert de disque, mais cette option ne s'applique qu'à l'utilisation du C-64 pour la programmation en Basic ; les logiciels préemballés chargés dans le système éliminent les programmes de la RAM. Epyx a publié un programme basé sur ROM pour accélérer le transfert de disque quintuple. Selon Nelson, le programme fonctionnera avec n'importe quel logiciel sur disque. "C'est possible", a déclaré Charpentier. "Le lecteur de disque C-64 possède son propre microprocesseur et sa propre mémoire, et vous pouvez lui envoyer des informations pour changer de système d'exploitation et accélérer le protocole de bus série."
Le logiciel standard du lecteur de disque C-64 peut lire un secteur de 256 octets toutes les 2,5 révolutions du disque, soit 512 octets par seconde. Les astuces de programmation utilisées par Epyx ont donné des taux de transfert allant jusqu'à 2,5 kilo-octets par seconde. (Parmi les autres lecteurs de disque lents, le 810 d'Atari transfère 1 000 octets par seconde et le lecteur de disque Apple II fonctionne à un maximum de 15 000 octets par seconde.)
L'équipe Commodore avait travaillé dur pour assurer un faible coût de production initial pour le C-64. L'intégration verticale a permis de réduire les coûts des pièces et Winterble a opposé son veto aux idées de fonctionnalités supplémentaires. Les concepteurs eux-mêmes croyaient qu'il fallait compter les sous; Charpentier dit avoir beaucoup appris" de Jack Tramiel, qui était "un vrai maniaque du coût. Nous avons agonisé pour chaque transistor."
Avec un coût de production de 135 $ et un prix de détail de 595 $ à son introduction, le Commodore 64 aurait une majoration de détail largement supérieure à la norme de l'industrie de un à trois (peut-être un à deux lorsque les volumes grimpent). Mais Commodore a continué à trouver des moyens de réduire à la fois le prix de détail, maintenant de 149 $, et le coût de production, estimé entre 35 $ et 50 $ aujourd'hui.
Commodore n'a pas confirmé ce chiffre de coût. Dougherty de Berkeley Softworks a estimé les coûts des pièces C-64, sur la base de son expérience chez Mattel et Imagic.
Dans le cadre d'autres mesures de réduction des coûts, Commodore a remplacé le TTL par des puces personnalisées moins chères et a trouvé des moyens d'augmenter les rendements des puces audio et graphiques.
Toutes les mesures de réduction des coûts n'ont pas été sans effet néfaste sur le système. La puce vidéo 6567 était à l'origine emballée dans de la céramique, même si le plastique est beaucoup moins cher. "Nous avons essayé toutes sortes de choses", a déclaré Charpentier, "des cadres en cuivre-plomb, des inserts métalliques dans le boîtier et un nombre impie d'autres choses pour obtenir un boîtier en plastique, car un boîtier en céramique coûte très cher. Mais nous n'avons pas pu trouver un boîtier qui fonctionnait assez cool. Avant de quitter Commodore, j'ai énuméré quelques idées pour réduire la puissance, mais la moitié de la puce fonctionnait toujours à un clip de 8 MHz. Sans une refonte majeure, vous ne pouviez pas couper le courant. "
L'équipe de conception était autonome - ils ont fait leur propre étude de marché, développé leurs propres spécifications et pris leur bébé tout au long de la production.
La puce est maintenant enfermée dans du plastique. Les ingénieurs de Commodore ont déclaré qu'en plus de repenser la puce, ils ont développé un boîtier en plastique capable de dissiper la chaleur ainsi que la céramique.
Depuis le passage aux emballages en plastique, un certain nombre de nouveaux problèmes avec le C-64 ont été signalés, des problèmes spécifiques à la machine ou dépendant de la température. Un défaut largement connu dans l'industrie du logiciel est la tendance de la puce à se bloquer lorsqu'un programme change de mode graphique, de l'affichage d'une carte binaire à l'affichage de caractères [voir l'encadré, "Une riche collection de modes graphiques"]. "Un jeu que nous produisions a commencé à échouer sur la chaîne de production", a déclaré Nelson d'Epyx. "Ensuite, nous testions à nouveau [les disques défectueux] et ils fonctionnaient. Cela dépendait de la machine sur laquelle nous les mettions et de la température." Charpentier a émis l'hypothèse que certaines lignes de circuit avaient été laissées flottantes dans la conception originale; un traitement médiocre et des températures de fonctionnement élevées stresseraient les puces jusqu'au point de défaillance.
Un autre problème qui a commencé à apparaître dans certains C-64 est le défilement horizontal défectueux des écrans bitmap. Dans une récente revue des Jeux d'été, un jeu de sport Epyx pour le C-64, le San Jose, Californie, Mercury News a critiqué "l'effet d'ampoule" perceptible lors de l'épreuve de natation. Cela, selon Nelson, n'est pas un "effet" - le C-64 utilisé par le critique de Mercury News ne fait tout simplement pas le défilement horizontal correctement.
Bien que la machine ait ses défauts, les concepteurs du Commodore 64 pensent avoir apporté de nombreuses avancées significatives en raison de la liberté dont ils ont bénéficié lors des premières étapes du projet. L'équipe de conception était autonome - ils ont fait leur propre étude de marché, développé leurs propres spécifications et pris leur bébé tout au long de la production. Mais dès que les bogues de production ont été résolus et que Commodore a su qu'il avait un gagnant, la bureaucratie de l'entreprise, qui jusque-là était sur la côte ouest pour gérer le VIC-20 et l'ordinateur Pet, a emménagé.
"À ce moment-là, de nombreux groupes de marketing sont venus nous" aider "", se souvient Winterble. "La prochaine définition de produit allait être imaginée par un groupe, et un autre groupe devait être responsable de la mise en production, et le groupe d'Al ne ferait de la R&D que sur les puces."
"Si vous laissez le marketing s'impliquer dans la définition du produit, vous ne le ferez jamais rapidement", a déclaré Yannes. "Et vous gaspillez la possibilité de créer quelque chose d'unique, car le marketing veut toujours un produit compatible avec autre chose."
Charpentier a résumé leur frustration : "Lorsque vous impliquez de nombreuses personnes dans un projet, tout ce que vous finissez par faire est de vous justifier. Je savais que le Commodore 64 était techniquement aussi bon et aussi bon marché que n'importe quel produit qui pouvait être fabriqué à l'époque, mais maintenant j'ai dû écouter les gens du marketing dire : 'Il ne se vendra pas parce qu'il n'a pas ceci, il ne peut pas faire cela.'
"La liberté qui nous a permis de réaliser le projet C-64 n'existera probablement plus jamais dans cet environnement."
De l'équipe de conception originale du Commodore 64, seul Robert Russell reste chez Commodore; il est actuellement responsable du design. Le reste de l'équipe - Albert Charpentier, Robert Yannes et Charles Winterble, ainsi que David Ziembicki et Bruce Crocket, qui ont aidé à déboguer le projet et à le mettre en production - ont quitté Commodore au printemps 1983 et ont formé la société Peripheral Visions. Leur plan était de concevoir un autre ordinateur. Pour obtenir un fonds de roulement, ils ont conclu un contrat avec Atari - pour concevoir un clavier pour le système informatique vidéo, qui a été présenté en avant-première mais qui, alors que le marché du jeu vidéo s'est effondré, n'a jamais été publié. Peripheral Visions a été poursuivi par Commodore, qui a déclaré que le clavier VCS était un projet appartenant à Commodore. Au moment d'écrire ces lignes, la poursuite n'avait pas été résolue.
Peripheral Visions a été renommé Ensoniq et sortira bientôt son premier produit, un synthétiseur musical. Albert Charpentier est actuellement vice-président de l'ingénierie chez Ensoniq, Bob Yannes est designer senior et David Ziembicki est responsable du contrôle de la production. Charles Winterble a quitté Peripheral Visions et est maintenant vice-président du groupe de l'électronique chez Coleco Industries Inc. de West Hartford, Connecticut. Et Jack Tramiel est actuellement directeur général d'Atari Corp., la société qui était le principal concurrent de Commodore sur le marché des ordinateurs personnels avant de perdre près d'un milliard de dollars en concurrence avec le C-64.
Les librairies informatiques proposent une large sélection de livres sur le C-64. Parmi ceux recommandés figurent What's really inside the Commodore 64, de Bilton Bathurst, publié par DataCap de Feneur, Belgique, et The Anatomy of the 1541 disk drive, de Lothar Englisch et Norbert Szczepanowski, publié par Abacus Software de Grand Rapids, Michigan. Des magazines informatiques tels que Creative Computing et Compute ! revoir les logiciels et publier des programmes qui s'exécutent sur le C-64. Le Commodore 64 lui-même peut être trouvé chez la plupart des grands détaillants.
"Nous n'avions pas l'intention de faire 128 couleurs", a insisté Albert Charpentier, qui était le concepteur en chef du Commodore 64. "C'était tout simplement une trop grande surface sur la puce.
Néanmoins, le Commodore 64 peut afficher bien plus que les 16 couleurs répertoriées dans sa documentation, en plus de ses nombreuses autres fonctionnalités graphiques. Brian Dougherty, président de Berkeley Softworks de Berkley, en Californie, a expliqué : "La largeur de chaque pixel est presque la moitié de l'horloge de couleur NTSC, donc lorsque vous alternez des pixels de deux couleurs différentes, au lieu d'obtenir les deux couleurs que vous pensez obtenir, vous obtenez une toute nouvelle interprétation de phase." [Voir figure ci-dessous.] La nouvelle interprétation de phase, bien sûr, donne une nouvelle couleur. Étant donné que les pixels font 7/16 de la largeur d'une horloge couleur, les couleurs produites se déplacent cycliquement sur l'écran, ce qui les rend difficiles à utiliser.
Avant de concevoir la puce vidéo, se souvient Charpentier, il avait passé quelques semaines à regarder la concurrence. En plus des produits de Texas Instruments, Atari et Mattel, il a étudié ses propres travaux antérieurs. "Je me souviens avoir passé environ une semaine à parcourir les modes graphiques que nous pouvions installer."
La carte Commodore 64 bits est différente de celles de la plupart des ordinateurs, en ce sens qu'elle emprunte la plupart de ses circuits à ceux utilisés pour afficher les graphiques de caractères. Une carte de bits standard stockerait les segments de huit points ci-dessus dans des octets de mémoire successifs dans l'ordre A, B, C, D…. Le Commodore 64 les stocke dans l'ordre A,E,I,M,Q,U,Y,CC,B,F…. Cela imite les motifs de caractères huit par huit points.
"C'était un exemple d'escalade technique", a déclaré Charles Winterble, qui était directeur de l'ingénierie mondiale pour Commodore au moment de la conception de la puce vidéo. "Nous avons trouvé des modes de couleur étranges. L'imagination d'Al est devenue folle ; certains modes de couleur se sont avérés inutiles, certains d'entre eux se sont avérés très intelligents."
Il existe deux modes de base dans le Commodore 64 : mappé en caractères et mappé en bits. En mode mappé de caractères, l'écran est composé de 1000 pointeurs, chacun d'eux sélectionnant un caractère stocké dans la ROM ou la RAM. Puisque chaque pointeur contient 8 bits, 256 caractères de huit par huit pixels peuvent être sélectionnés. En mode bitmap, 8000 emplacements mémoire sont utilisés pour définir l'écran, un bit correspondant à un seul pixel. Le mode bitmap offre une flexibilité maximale mais consomme de la mémoire, surtout si plusieurs écrans sont définis. Le mode de mappage de caractères n'est pas aussi limitant qu'il n'y paraît, car la plupart des images sont constituées d'éléments répétés.
Il existe plusieurs variantes du mode de mappage de caractères. Dans sa forme standard, il contient 256 cellules de huit par huit pixels, avec une résolution de 320 pixels horizontalement et 20 lignes verticalement. Chacune des 1000 positions sur l'écran peut contenir une couleur de premier plan différente, mais toutes utilisent la même couleur d'arrière-plan. "C'est une limitation quand il s'agit de mélanger les couleurs", a déclaré Dougherty. Le texte est généralement affiché à l'aide du mode de mappage de caractères standard.
Dans la norme du National Television Systems Committee, la couleur est déterminée par la phase de la porteuse de couleur par rapport à une salve de couleur envoyée au début de chaque ligne. Les ondes sinusoïdales ci-dessus sont colorées en fonction de leur phase selon cette norme. Un passage du rouge à l'orange est relativement propre car il n'y a qu'une petite différence de phase entre les deux ondes sinusoïdales. Cependant, un passage du rouge au bleu peut provoquer des bords tachés sur l'écran car il laisse la phase indéterminée à partir du point où l'onde sinusoïdale rouge commence vers le haut jusqu'au point où l'onde sinusoïdale bleue atteint le bas, une période d'environ 300 nanosecondes. Ce problème est universel dans les systèmes qui adhèrent à la norme NTSC.
En mode caractère multicolore, chaque cellule a une couleur de premier plan et un choix de trois couleurs d'arrière-plan. Seules huit des 16 couleurs sont disponibles pour le premier plan ; les couleurs de fond sont définies par trois registres dans la puce vidéo. Deux bits (au lieu d'un) sont utilisés pour définir chaque pixel dans une cellule, de sorte que les cellules ont une résolution de huit lignes verticalement par quatre pixels horizontalement, plutôt que la norme huit par huit. Chaque pixel fait deux fois la largeur normale, donc la résolution d'affichage est réduite à 160 par 200.
En mode couleur étendue, vous avez le choix entre quatre couleurs d'arrière-plan pour chaque position à l'écran, plus une couleur de premier plan. Les 16 couleurs sont disponibles et l'écran s'affiche en pleine résolution. La seule limitation est que le nombre de caractères est de 64 au lieu de 256, car deux bits de chaque pointeur de caractère sont consacrés à la sélection de couleur.
Le mode bitmap est adapté du mode mappé de caractères, ce qui rend son utilisation moins simple qu'elle ne pourrait l'être. "La plupart des algorithmes de balayage raster s'attendent à ce que la mémoire soit disposée de manière linéaire", a déclaré Dougherty, "il est donc difficile d'utiliser beaucoup de logiciels qui ont déjà été créés pour d'autres systèmes". Les cartes de bits typiques sont organisées avec des pixels successifs sur une ligne horizontale dans des emplacements de mémoire successifs, mais la carte de bits C-64 utilise huit emplacements de mémoire successifs pour stocker huit pixels chacun à partir de huit lignes successives. Les huit emplacements suivants stockent huit pixels supplémentaires à partir des mêmes huit lignes [voir figure]. Cela imite la façon dont les pixels du jeu de caractères sont disposés dans la ROM, permettant d'utiliser le même circuit pour les deux modes.
En mode bitmap standard, un bit "1" est affiché dans la couleur de premier plan et un bit "0" dans la couleur d'arrière-plan (avec une couleur de premier plan différente disponible pour chaque groupe de huit par huit pixels). Dans le mode bitmap multicolore, deux bits sont utilisés pour définir chaque pixel, permettant ainsi de choisir quatre couleurs parmi les 16 possibles, bien que la résolution de l'écran redescende à 160 par 200.
Les différentes fonctionnalités du matériel Commodore 64 peuvent être utilisées seules ou de concert pour obtenir des effets impressionnants. Dans les écrans présentés ici, la fonction d'interruption de trame du Commodore 64 est utilisée pour modifier les couleurs et la résolution, pour augmenter le nombre de sprites disponibles et pour alterner entre les différents modes graphiques. Dans cet écran d'ouverture du jeu vidéo Summer Games d'Epyx, deux interruptions raster entre les rangées de drapeaux sont utilisées pour changer les registres de couleurs, augmentant ainsi le nombre de couleurs disponibles dans cet affichage multicolore mappé de caractères. Les sprites sont également utilisés pour ajouter des couleurs et des détails complexes.
L'inclusion de sprites - des objets indépendamment mobiles qui recouvrent l'affichage en arrière-plan - a reçu beaucoup d'attention au début du projet Commodore 64. En effet, les circuits qui servent à manipuler et à afficher les sprites occupent les deux tiers de la puce d'affichage vidéo de la machine.
"Avec le recul, il aurait été préférable de mettre un peu plus de capacité bitmap dans la machine, mais nous nous sommes concentrés sur les sprites", a déclaré Albert Charpentier, qui était le concepteur en chef de l'ordinateur Commodore 64. "La prémisse au moment où la puce a été conçue était une machine de jeu."
Et un bon jeu, bien sûr, utilise de nombreux objets en mouvement indépendants. Robert Yannes, également concepteur du projet C-64, se souvient avoir étudié les soi-disant sprites joueurs-missiles d'Atari. "Ils sont terribles", a-t-il dit. "Ils n'ont pas assez de couleur, ils ne sont pas assez grands et ils ne font pas ce que vous voulez." Les sprites du Texas Instruments 99/4A, a-t-il dit, "étaient super, mais ils n'avaient qu'une seule couleur, et il fallait les regrouper pour faire un objet assez grand."
Le groupe a décidé que le sprite C-64 serait un objet multicolore mobile indépendamment sur les axes x et y, avec une surcharge logicielle minimale.
Les sprites peuvent être affichés dans l'une des quatre tailles suivantes : normal, étendu verticalement, étendu horizontalement ou étendu dans les deux sens. Ils peuvent également être affichés en mode multicolore, dans lequel leur résolution est plus grossière mais les proportions sont conservées.
"Nous avons passé beaucoup de temps à discuter des sprites", a déclaré Charpentier, "en nous demandant 'Quelle taille devraient-ils avoir ? Devraient-ils avoir une expansion d'un facteur 2 en x ? En y ? Devrions-nous avoir une détection de collision ?'"
Une série de calculs mathématiques a répondu à bon nombre de ces questions, a-t-il expliqué. « En vous déplaçant sur la ligne vidéo, vous disposez de 63 microsecondes pour jouer. J'allais utiliser une mémoire fonctionnant à un peu moins de 2 MHz, ce qui signifie seulement 114 extractions de mémoire par ligne. Pas plus.
"Donc, 114 moins 40 pour le processeur et 40 pour l'arrière-plan me laissaient 34 extractions. J'avais besoin de huit extractions pour récupérer les pointeurs de sprite [qui indiquent où les informations sur les sprites sont stockées en mémoire]. Cela me laissait 26 extractions. Si j'avais huit sprites, cela me donnait trois extractions pour chaque sprite. "
Charpentier a expliqué qu'aucun cycle supplémentaire n'était nécessaire pour rafraîchir la RAM dynamique pendant l'affichage à l'écran puisque la puce vidéo parcourait déjà les adresses de ligne et de colonne appropriées. Ce n'est que pendant la période de suppression verticale que la mémoire est rafraîchie séparément.
"Quand j'ai utilisé chacun de ces cycles sur lesquels je pouvais mettre la main, j'avais 3 octets par sprite", a-t-il déclaré. (Un changement de vitesse d'horloge a ensuite augmenté le nombre de cycles disponibles sur une ligne à 126, mais il était alors trop tard pour changer le circuit du sprite.)
Les 3 octets par sprite ont déterminé la taille horizontale du sprite - 24 pixels. Charpentier a alors recherché le multiple de 3 (octets) qui se rapprocherait d'une puissance de 2, afin que les sprites puissent être stockés efficacement. "Il est arrivé que 24 bits sur 21 donnent 63 octets d'informations", a-t-il déclaré. Par conséquent, chaque sprite mesure 21 lignes de haut.
Non seulement les sprites peuvent être positionnés n'importe où sur ou hors de l'écran, mais ils peuvent également être étirés à deux fois leurs dimensions normales dans le sens horizontal ou vertical, produisant un sprite aussi grand que 48 par 42 points (bien que la résolution n'augmente pas). [Voir figure ci-dessus.] Les sprites peuvent également être définis en mode multicolore, auquel cas la résolution horizontale tombe à 12 pixels, bien que leur taille ne change pas.
Les circuits du Commodore 64 chronomètrent la récupération de ses données sur les lignes de balayage d'un téléviseur CRT
"J'avais travaillé avec des synthétiseurs et je voulais une puce qui soit un synthétiseur musical", a déclaré Robert Yannes, le concepteur de la puce sonore et l'architecte système du Commodore 64. Il a commencé à travailler sur la puce au printemps 1981, assisté de deux dessinateurs et d'un opérateur CAO. "Personne d'autre n'avait une bonne idée de ce que nous faisions", a-t-il déclaré. "Au-delà de la recherche fondamentale, que je faisais depuis le lycée, la conception proprement dite n'a pris qu'environ quatre ou cinq mois."
Les principales différences entre sa puce et les puces sonores typiques des jeux vidéo, a expliqué Yannes, étaient son contrôle de fréquence plus précis et son enveloppe indépendante pour façonner l'intensité d'un son. "Avec la plupart des effets sonores dans les jeux, il y a soit un volume complet, soit aucun volume. Cela rend vraiment la musique impossible. Il n'y a aucun moyen de simuler le son d'un instrument, même vaguement, avec ce type d'enveloppe, sauf peut-être un orgue."
Bien qu'il soit théoriquement possible d'utiliser les commandes de volume d'autres puces sonores pour façonner l'enveloppe d'un son, très peu de programmeurs se sont déjà attaqués à une tâche aussi complexe. Pour faciliter la mise en forme du son, Yannes a placé les commandes d'enveloppe dans le matériel : un registre pour chaque voix pour déterminer la rapidité avec laquelle un son se construit ; deux pour déterminer le niveau auquel la note est soutenue et à quelle vitesse elle atteint ce niveau ; et un pour déterminer la vitesse à laquelle la note s'éteint. "Il a fallu longtemps pour que les gens comprennent cela", a-t-il conclu.
Yannes a également mis une table de recherche dans le matériel pour convertir les données des notes de musique aux fréquences équivalentes, mais cela nécessitait un excès de silicium. "J'ai retiré cela", a déclaré Charles Winterble, qui était directeur de l'ingénierie mondiale chez Commodore lors de la conception du C-64.
Les capacités précises de la puce sonore ne sont pas claires même aujourd'hui, en grande partie à cause de spécifications incorrectes ayant été écrites lors de la conception de la puce. "La fiche technique a été distribuée, copiée et réécrite par diverses personnes jusqu'à ce qu'elle n'ait pratiquement plus de sens", a déclaré Yannes. Un exemple de documentation défectueuse est l'affirmation selon laquelle la puce peut logiquement ET plusieurs formes d'onde. La puce peut produire une onde triangulaire, une dent de scie ou une onde carrée, selon le bit défini dans l'un de ses registres de contrôle. "Il n'y a pas de verrouillage pour s'assurer que si un bit est activé, les autres sont désactivés", a déclaré Yannes. "Cela aurait pris trop de silicium." Donc si plus d'une forme d'onde est élue, les notes internes du multiplexeur de sortie sont déchargées, et ce qui ressort est le minimum d'amplitudes.
Une autre erreur dans la fiche technique concerne les filtres sur puce. "Le filtre est la dernière chose sur laquelle on a travaillé", a reconnu Yannes. "J'ai manqué de temps. La simulation informatique a dit:" Cela ne fonctionnera pas très bien "- et ce n'est pas le cas." Le filtre était peut-être médiocre, mais les équations décrivant son fonctionnement étaient tout simplement fausses, se souvient Yannes. "Ils ne se sont pas accrochés. Personne ne m'a donné la chance de les corriger."
Confrontés à ces équations erronées, la plupart des concepteurs de logiciels n'utilisent que la puce son.
Certains des programmeurs japonais qui ont écrit les premiers logiciels de jeu pour le C-64 ont adopté une approche différente, a noté Yannes : « Ils l'ont écrit selon les spécifications. Peu leur importait que quelque chose fonctionne ou non. En conséquence, les programmes produisaient des effets sonores que vous ne pouviez pas entendre.
En janvier 1981, Bit map Carte de caractères Horloge couleur DOS Field Interrupt Sprite (A) (B) (C) (D) (E) (F) (G) (H) (I) (J) (K) (L) (M)