Commodore 64
Retour Informatique
dernière mise à jour le 19 mai 2005
Le Commodore 64 (C64) a été le premier ordinateur que j'ai possédé. S'il est bien sûr mentionné dans tous les "musées" virtuels de micro-informatique, il est souvent décrit de manière trop succincte. En fait, il n'a pas rencontré en France le succès qu'il a eu aux États-Unis et dans le reste de l'Europe, probablement à cause du contexte nationaliste du début des années 1980 qui tendait à rejeter tout ce qui avait un clavier QWERTY et qui supportait mal le standard français SECAM et dont la plupart des logiciels nécessitaient la connaissance de l'anglais.
Le cœur du Commodore 64 est le microprocesseur 6510, un dérivé très proche du 6502
microprocesseur de l'Apple ][ et des Atari 600/800 et des Commodore PET et Vic-20 (ce
dernier fut le prédécesseur du C64 sur le même marché). C'est un chip 8 bits dont la
portée d'adressage est limité à 64 Ko (un système de "bank switching"
permettra plus tard une extension sur le C128) développé par Chuck Peddle.
Chuck Peddle développa chez Motorola le microprocesseur de première génération
MC6800 puis quitta Motorola pour entrer chez MOS Technology. En 1976, MOS Technology fut
acquise par Jack Tramiel qui avait monté Commodore au Canada sur le marché de la
réparation des machines à écrire et des caisses enregistreuses. Peddle développa le
PET, un ordinateur de gestion de PME -un peu le marché que conquit R2E en France avec les
Micrals interactifs- Outre le processeur 6502, Peddle utilisa l'interface IEE-488 -aussi
connue sous le nom de HP-GPIB- pour connecter les périphériques. Le VIC-20 fut introduit
en 1981, le C64 en 1982. Introduit à $600, le C64 (sans écran, ni disquette) valait $200
deux ans plus tard et devenait l'un des moins chers des ordinateurs domestiques, ce qui a
permis d'être vendu à près de 10 millions d'exemplaires. En réalité, le chiffre
effectif compte tenu des retours et des importations parallèles en Europe est inconnu.
Le C64 possède 64 Ko de mémoire DRAM et 20 Ko de mémoire ROM.
L'alimentation est externe à 5 volts, la tension classique des circuits TTL disponibles à l'époque. Cependnat, il faut noter que le C64 fait appel à une proportion de LSI assez rare pour l'époque et due à son contrôle de MOS Technology. La mémoire DRAM est sous forme de chips Micron Semi 64K x 1 bits (4164-2), la mémoire ROM est aussi sous forme de chips 64Kb chips. Les registres "couleur" sont réalisés avec des National Semiconductors static RAM de 1K x 4 bits. Une partie de logique est réalisée par un LSI PLA (programmed line array)
Processeur
Le microprocesseur 6510A MPU dont la fréquence d'horloge est de 0.985 MHz -version PAL un peu plus lente que la version américaine NTSC-. En fait l'horloge de base est fournie par un cristal à 16MHz servant à piloter la vidéo.
Le 6510 diffère du 6502 originel par sa gestion d'interruption et les programmes sont interchangeables entre ces processeurs sous réserve d'une compatibilité des entrées-sorties et de l'adressage des zones réservées de mémoire, ce qui veut dire que les programmes objets ne sont pas compatibles avec ceux de l'Apple II, de l'Atari ou même du Vic-20, mais qu'une transposition entre ces machines est relativement aisée surtout en ce qui concerne les programmes peu exigeants sur le plan des graphiques.
Disquette 1541
Ce modèle de drive utilise des disquettes 5" 1/4 enregistrées en simple face,
simple densité, format GCR avec 35 pistes -en standard- contenant de 17 à 21 secteurs
par piste (soit 169 984 octets disponibles). La vitesse de rotation est de 300 tpm. Le
1541 inclut son propre microprocesseur 6502 à 1 MHz utilisant 2 Ko de mémoire RAM (1
chip de 16 Kb) et 16 Ko de ROM (2 chips de 64 Kb). L'unité de disquette est alimentée
directement par le secteur.
Le 6502 de la disquette effectue en local (sous un système d'exploitation nommé
DOS 2.6)les opérations de formatage de disquette et de boot. Le 1541 gère en interne une
BAM "block allocation table" analogue à la FAT des PC.
Le 1541 est connecté au C64 par un bus série multipoint pouvant recevoir jusqu'à 5
appareils. Je l'ai utilisé personnellement avec 2 disquettes et une imprimante.
Mon second 1541 fut un modèle plus récent 1541C à verrouillage manuel (et non plus par simple enfichage de la disquette).
Un problème -voire LE problème- du 1541 fut celui de l'alignement des têtes. La piste 0 se trouvait sur une position de butée mécanique fixée avec une colle devenant visqueuse sous l'effet de la température. De trop nombreux programmes et en particulier ceux protégés par un bricolage de pistes cachées -l'adressage physique du 1541 permet d'adresser à la demi-piste- "s'amusaient" à se repositionner sur la butée et finissaient par repousser le butoir hors des pistes déjà enregistrées.
Lecteur de Cassette 1530
Ce petit lecteur de cassette lit et écrit des cassette audio standard. Il est autoalimenté par le C-64. Sa fiabilité laissait quelque peu à désirer, sans parler de ses performances en rebobinage. J'ai parfois modifié le "boot" des cassettes de façon à transposer un programme bande sous forme de disque.
Écran vidéo
L'écran du C64 est un poste de télévision. Il contient 25 lignes de 40 caractères. Chaque caractère occupe une matrice de 8x8 pixels. Outre le mode caractère utilisé en texte ou en semi-graphique (à la Minitel ou comme les premiers iBM PC), le C64 a un mode graphique permettant d'adresser une matrice de 320x200 pixels (soit la définition présente des PDA de qualité). Le C64 supporte 16 couleurs.
Clavier
Le clavier standard du C64 est un clavier QWERTY à 66 touches dont 4 touches de fonction programmables. Le clavier et l'unité centrale constituent un ensemble monobloc.
Alimentation
L'alimentation fornit du 5V continu et du 9v alternatif servant à générer du 12v pour des périphériques externes (tels que modems)
Ports d'entrées-sorties
L'unité centrale du C54 contient les ports suivants
Ces ports sont connectés intérieurement à des LSI custom
Contenu de la ROM du C64
La ROM fournie en standard avec le C-64 se décompose en 3 parties faisant indépendamment partie ou non de l'espace d'adresse du processeur: 8 Ko de kernal, 8 Ko de BASIC et 4 Ko de character map.
La ROM de base contient des instructions 6502 remplissant trois fonctions, celle d'un
superviseur (aussi appelé kernal), celle d'un interpréteur BASIC et celle d'un éditeur
écran. La machine telle qu'elle fut conçue initialement était une machine BASIC,
similaire à la plupart des machines de cette génération. Rappelez-vous le slogan des
années 1960 "le langage de nos pères était FORTRAN, le notre est LISP, celui de
nos enfants est BASIC". Donc, la mise sous tension de la machine -sans extension-
initialise l'éditeur écran et l'interpréteur BASIC. Celui-ci est capable de
reconnaître la commande LOAD et de charger un autre programme depuis cassette ou
disquette. L'interpréteur fonctionne en deux modes: le mode immédiat qui fonctionne
comme une calculette et le mode différé qui édite un fichier d'instructions BASIC sous
forme "tokenizée" qui sera interprété plus tard par une commande RUN. Quand
est programme BASIC est sauvé sur une mémoire externe (disquette ou cassette), il l'est
sous forme tokenizée et l'éditeur écran peut le traduire sous forme lisible. L'éditeur
écran permet des corrections en fait il s'agit plutôt d'un éditeur "ligne"
travaillant sur un buffer de 80 caractères -la taille d'une ligne logique en BASIC.
BASIC utilise le mode graphique via des primitives de bibliothèque ou directement au
moyen d'un instructions POKE de la mémoire centrale utilisée comme buffer d'écran. Il
peut aussi lire le contenu d'une position quelconque de la mémoire par une instruction
PEEK.
LA ROM peut être lue par programme et copiée en RAM. La version copiée peut être altérée par un programme de hacker. Il en est de même de celle de la disquette du 1541 et c'est ce qui a permis la réalisation de systèmes de protection des programmes par écriture dans les zones normalement interdites sur la disquette ou l'utilisation du bus en mode parallèle sur 4 bits au lieu du mode série normal.
Extensions cartouches
La distribution de logiciel dans les années 1980 se faisait par des boutiques que
fréquentaient des fanatiques de tous âges curieux de toutes les nouveautés et se
faisant faire des démonstrations par des vendeurs aussi compétents qu'eux et non pas par
des distributeurs anonymes en grande surface ou via le Web. Le coût intrinsèque de la
distribution du logiciel par cartouches de ROM n'apparaissait prohibitif et avait
l'avantage d'être davantage hors de la portée des pirates que les cassettes ou les
disquettes. Dans le cas particulier du C64, cela permettait d'offrir au joueur ou au
programmeur une opérabilité très simple appropriée au programme concerné.
En dehors du cas de CP/M, je n'ai pas eu connaissance de l'utilisation de ces cartouches
pour autre chose que des programmes en ROM.
Cette distribution par cartouches avait déjà été très utilisée sur VIC et perdurera
sur les futures "consoles de jeu". Sur C64, la mode des cartouches s'affaiblira
assez rapidement lorsque des périphériques nouveaux non compatibles apparaîtront
et que
les démontages de cartouches s'avèreront plus inconfortables (nécessiter de remise sous
tension, vérifications de l'enfichage des connecteurs) que les changements de disquettes.