6502 – CPU 8 bit compatibile MOS 6502, base di molte piattaforme home computer e console
Definizione
Il 6502 è una CPU 8 bit compatibile con la famiglia MOS 6502, realizzata come “second source” (fornitore alternativo) rispetto al chip originario MOS. La tecnologia del 6502 venne progettata nel 1975 da MOS Technology e divenne rapidamente uno degli ecosistemi più importanti della microinformatica per rapporto prestazioni/costo e semplicità di integrazione.
In termini pratici, il 6502 fornisce: set di istruzioni, registri principali e interfaccia bus orientata a sistemi con memoria e I/O esterni su bus parallelo, tipica delle architetture anni 70–80.

Contesto storico: perché il 6502 “ha fatto scuola”
Il 6502 è ricordato come la CPU che ha contribuito in modo decisivo al decollo dei primi microcomputer “consumer” e di molte piattaforme di massa. Nel caso Apple, l’adozione del 6502 rese possibile l’impostazione di Apple I e soprattutto Apple II: un’architettura relativamente lineare, con toolchain e firmware costruibili intorno a una CPU efficiente e accessibile.
Parallelamente, la “filiera” 6502 (originale e second source) si diffuse in ampiezza su home computer e console, generando un bacino enorme di software, know-how e componentistica.
Architettura logica: registri essenziali e programmazione diretta
Il modello 6502 è caratterizzato da un set di registri minimale ma molto sfruttabile:
Accumulatore A (operazioni aritmetiche/logiche e trasferimenti).
Registri indice X e Y (indicizzazione e addressing mode).
SP (stack pointer) con stack su pagina dedicata.
PC (program counter) e registro di stato P (flag).
L’impostazione è molto “diretta”: l’efficienza dipende fortemente da addressing mode (zero page, indicizzati, indiretti) e dall’uso disciplinato della memoria “vicina” (zero page) per ottenere prestazioni elevate con codice compatto.
Bus e integrazione di sistema: memoria e periferiche esterne
Il 6502 è pensato per sistemi con:
Bus indirizzi a 16 bit (spazio tipico fino a 64 KB).
Bus dati a 8 bit.
I/O memory-mapped o tramite logiche dedicate di interfaccia, a seconda della piattaforma.
Questo implica che ROM, RAM e periferiche vengono selezionate tramite decoding degli indirizzi. Il progetto tipico ruota attorno a: mappa memoria, chip select, timing di lettura/scrittura e gestione interrupt/reset.
Impieghi noti: Apple, home computer e console
Il “mondo 6502” include:
Apple: Apple I e Apple II basati su 6502.
Commodore: diverse macchine usano 6502 o derivati stretti (ad esempio 6510/8502 in alcune piattaforme).
Nintendo Nintendo Entertainment System: CPU derivata dal 6502 (core compatibile a livello di famiglia, con differenze funzionali secondo implementazione).
PC Engine: CPU compatibile 6502 di classe 65C02/derivati, con estensioni specifiche di piattaforma.
Atari Lynx: CPU della famiglia 65xx (compatibilità 6502) integrata nella logica di sistema.
Dal punto di vista pratico, il punto non è solo “quale chip esatto”, ma l’ecosistema: moltissime piattaforme adottano core compatibili 6502 con variazioni (istruzioni, I/O integrato, audio, timing), mantenendo però un forte grado di continuità concettuale e di toolchain.
Schizzo dei collegamenti più importanti
bus indirizzi (A0..A15) + segnali di controllo ┌──────────────────────────────────────────────────────┐ │ glue logic / address decode │ │ chip select RAM/ROM/I-O + eventuali wait/timing │ └───────────────────────────┬──────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 6502 │ │ CPU 8 bit │ │ A0..A15 D0..D7 │ │ R/W, clock, IRQ/NMI, │ │ RESET, ecc. │ └───────────┬─────────────┘ │ ├────────► ROM (firmware/monitor/BASIC) ├────────► RAM (stack, variabili, buffer) └────────► I/O memory-mapped (video, audio, input)
Tabella 1 – Dati di identificazione e specifiche
| Caratteristica | Valore indicativo |
|---|---|
| Dispositivo | 6502 |
| Classe | CPU 8 bit (second source compatibile MOS 6502) |
| Anno progetto tecnologia 6502 | 1975 (MOS Technology) |
| Modello di indirizzamento | Spazio tipico 64 KB (bus indirizzi 16 bit) |
| Bus dati | 8 bit |
| Registri principali | A, X, Y, SP, PC, P |
| Stile di I/O | Tipicamente memory-mapped tramite decoding esterno |
| Mercati tipici | Home computer, embedded, piattaforme consumer anni 70–80 |
Tabella 2 – Aspetti operativi e progettuali
| Aspetto | Significato pratico |
|---|---|
| Ecosistema 6502 | Ampia disponibilità storica di software, toolchain e know-how |
| Registri essenziali | Codice compatto ed efficiente se si sfruttano bene addressing mode e zero page |
| Decoding esterno | La piattaforma dipende dalla mappa memoria e dalla qualità della glue logic |
| Compatibilità “di famiglia” | Molte macchine usano core derivati: compatibilità elevata ma non sempre identità perfetta |
| Progettazione I/O | Periferiche spesso memory-mapped: semplicità di programmazione, attenzione a timing e contesa bus |
| Robustezza del sistema | Reset/IRQ/NMI e firmware in ROM sono centrali per avvio e gestione eventi |
Caratteristiche :
- N-channel, silicon gate, depletion load technology
- 8 bit parallel processing
- 56 instructions
- Decimal and binary arithmetic
- Thirteen addressing modes
- True indexing capability
- Programmable stack pointer
- Variable lenght stack
- Interrupt request
- Non-maskable interrupt
- Use with any type of speed memory
- 8-bit directional data bus
- Addressable memory range of up 64K bytes
- "Ready" input
- DMA capability
- Bus compatible with M6800
- 1 MHz, 2 MHz, 3 MHz
- Choice of external or on-chip clocks
- On-chip clock option : External single clock input - Crystal time base input
- Pipeline architecture
- Single +5v supply