Section courante

A propos

Section administrative du site

Les premiers pas

Le processeur MOS Technology 6502, commercialisé en 1975 au prix révolutionnaire de 25 dollars (contre environ 200 dollars pour les processeurs concurrents de l'époque), est un microprocesseur 8 bits ayant joué un rôle fondamental dans la révolution de la micro-informatique. Conçu par Chuck Peddle et son équipe chez MOS Technology, il est dérive conceptuellement du Motorola 6800, dont plusieurs des concepteurs du 6502 étaient les créateurs.

Le 6502 se distingue par :

Malgré sa simplicité apparente, le 6502 est remarquablement efficace. Son utilisation intensive de la page zéro comme un ensemble de pseudo-registres compense le faible nombre de registres internes, et ses modes d'adressage indirect permettent une manipulation flexible des pointeurs et des structures de données.

Variantes de la famille 6502

MOS Technology et ses licenseurs ont produit de nombreuses variantes du 6502 :

Variantes Description
6502 Version originale, 1 MHz (1975)
6502A Version améliorée, 2 MHz (1977)
6502B Version haute vitesse, 3 MHz (1982)
6503 Variante avec bus d'adresses réduit a 12 bits (4 Ko adressables), boîtier 28 broches
6504 Variante avec bus d'adresses réduit a 13 bits (8 Ko adressables), boîtier 28 broches
6505 Variante 28 broches, bus d'adresses 12 bits, pas de ligne RDY
6507 Variante 28 broches, bus d'adresses 13 bits, pas de lignes d'interruption (utilisée dans l'Atari 2600)
6510 Variante avec port d'entrée/sortie intégré de 6 bits, utilisée dans le Commodore 64
6512 Version du 6502 compatible avec le bus du 6500/1
7501 Variante utilisée dans le Commodore 16 et Plus/4 (procédé HMOS)
8500 Version HMOS du 6510, utilisée dans les Commodore 64C tardifs
8502 Variante cadencée a 2 MHz, utilisée dans le Commodore 128

Des versions CMOS améliorées ont été produites par d'autres fabricants :

Versions CMOS Description
65C02 (WDC) Version CMOS avec corrections de bugs et ajout de nouvelles instructions (BRA, PHX, PHY, PLX, PLY, STZ, TRB, TSB, BBR, BBS, RMB, SMB). Faible consommation. (1983)
65SC02 Version sans les instructions spécifiques Rockwell (BBR, BBS, RMB, SMB)
65CE02 (CSG) Version étendue avec registre Z supplémentaire, mode 16 bits partiel, et nouvelles instructions. Utilisée dans le Commodore 65 (prototype).
65816 (WDC) Extension 16 bits du 6502, retrocompatible. Bus d'adresses 24 bits (16 Mo). Utilisée dans le Super Nintendo (Ricoh 5A22) et l'Apple IIGS.
65802 (WDC) Version du 65816 compatible broche a broche avec le 6502 (bus d'adresses 16 bits seulement)
2A03 (Ricoh) Variante du 6502 sans mode BCD, avec générateur audio et contrôleur DMA intégrés, utilisée dans la Nintendo NES/Famicom
2A07 (Ricoh) Version PAL du 2A03

Toutes les variantes de la famille partagent l'ensemble d'instructions de base du 6502. Les versions CMOS (65C02, 65816) ajoutent de nouvelles instructions mais restent retrocompatibles avec le code 6502 original. Ce document se concentre sur le 6502 original (NMOS), qui constitue le denominateur commun de toute la famille.

Contexte historique

Le 6502 est né d'une équipe d'ingénieurs de Motorola, menés par Chuck Peddle, ayant travaillé sur le Motorola 6800 (1974).

Insatisfaits du prix élevé du 6800 (environ 175 dollars) et désireux de créer un processeur abordable, ils quittèrent Motorola pour rejoindre MOS Technology en 1974. Le 6502 fut présenté au Wescon trade show en septembre 1975, ou il pouvait être acheté directement au comptoir pour 25 dollars, un prix qui stupéfie l'industrie.

Le 6502 a été adopte dans un nombre remarquable de systèmes emblématiques :

Ordinateurs personnels :

Consoles de jeux :

Périphériques et systèmes embarqués :

Le 6502 reste extrêmement populaire dans la communauté retro-informatique et parmi les amateurs d'électronique. Ben Eater a popularisé la construction d'ordinateurs 8 bits autour du 65C02 sur breadboard, et le WDC 65C02 et 65C816 sont toujours fabriques et vendus aujourd'hui (2026) par Western Design Center.

L'assembleur 6502 reste pertinent car :

Comparaison avec les autres processeurs de l'époque

Le 6502 était en concurrence directe avec l'Intel 8080/8085, le Zilog Z80 et le Motorola 6800 :

Caractéristique 6502 8080 Z80 6800
Année 1975 1974 1976 1974
Architecture 8 bits 8 bits 8 bits 8 bits
Bus données 8 bits 8 bits 8 bits 8 bits
Bus adresses 16 bits 16 bits 16 bits 16 bits
Espace adressable 64 Ko 64 Ko 64 Ko 64 Ko
Registres généraux A, X, Y A, B, C, A, B, C, A, B
    D, E, H, L D, E, H, L
    + ensemble alternatif  
Modes d'adressage 13 4 10 6
Transistors ~3 510 ~4 500 ~8 500 ~4 100
Fréquence typique 1-2 MHz 2 MHz 2,5-4 MHz 1-2 MHz
Prix initial 25 $ ~150 $ ~25 $ (1978) ~175 $
Endianness Little Little Little Big
Pile Page 1 Mémoire Mémoire Mémoire
(256 octets) (16 bits) (16 bits) (16 bits)

Le 6502 se distingue par :

En termes de performances effectives, le 6502 a 1 MHz est souvent comparable au Z80 a 4 MHz pour de nombreuses tâches, grâce a son pipeline et a ses modes d'adressage efficaces.

Modèle de programmation

Le 6502 offre un modèle de programmation minimaliste mais efficace, compense par des modes d'adressage puissants :

Accumulateur (A) :

Registre d'index X :

Registre d'index Y :

Pointeur de pile (SP, Stack Pointer) :

Compteur programme (PC, Program Counter) :

Registre d'état du processeur (P, Processor Status) :

Le faible nombre de registres du 6502 est compense par l'utilisation de la page zéro ($0000-$00FF) comme un ensemble de 256 pseudo-registres accessibles en seulement 2 cycles d'horloge (au lieu de 4 pour un adressage absolu). Les programmeurs 6502 utilisent couramment la page zéro pour entreposer des pointeurs, des compteurs et des variables temporaires.

Ordre des octets (Endianness)

Le 6502 utilise l'ordre little-endian (poids faible en premier) :

Cet ordre s'applique partout dans le 6502 :

Exemples :

C'est le même ordre que l'Intel 8080/8085, le Z80 et les x86. C'est l'ordre inverse du Motorola 6800 et du 68000 (big-endian), bien que le 6502 soit un descendant conceptuel du 6800.



Dernière mise à jour : Mardi, le 6 décembre 2016