WDC 65C02

Microprocessore ad 8 bit del 1982 prodotto da Western Design Center

Il WDC 65C02 è un microprocessore ad 8 bit prodotto nel 1982[1] da Western Design Center (WDC) come evoluzione in tecnologia CMOS del popolare 6502 di MOS Technology, realizzato in tecnologia NMOS. Il processore, nel corso degli anni, è stato prodotto su licenza anche da National Cash Register (NCR), GTE, Rockwell, Synertek e Sanyo.

WDC W65C02S
Central processing unit
Il microprocessore WDC 65C02
Prodotto1982
Progettato daWestern Design Center
Applicazionihome computer, sistemi embedded
Specifiche tecniche
Frequenza CPUMHz / 14 MHz
Set di istruzioniMOS 6502
Microarchitettura8 bit
PackageDIP40

Il 65C02 fu progettato da Bill Mensch dopo che questi lasciò MOS Technology nel 1976 per fondare WDC (1978). Attualmente il chip continua ad essere prodotto e venduto da WDC.[2]

Informazioni generali

modifica

Il nome completo del processore è W65C02S: la lettera "W" indica il produttore (WDC); la lettera "C" indica che il processore è una versione CMOS del 6502; la lettera "S" indica che il componente ha un core completamente statico, ossia che il clock principale può essere rallentato indefinitamente fino a fermarlo completamente, sia nello stato alto che in quello basso.[3]

Il W65C02S ha un'architettura interna ad 8 bit e può indirizzare fino a 65.536 locazioni di memoria (spazio di indirizzamento a 16 bit). Grazie alla die di dimensioni ridotte ed al set di istruzioni di lunghezza variabile, il processore è indicato per applicazioni di tipo SoC (System on a Chip).[3]

WDC fornisce anche il sorgente Verilog del core del 65C02 per la programmazione di integrati ASIC e FPGA.

Caratteristiche tecniche principali

modifica
* il valore massimo è indicativo, dato che i dati tecnici forniti da WDC indicano che il chip può operare anche a clock superiori (18 MHz a 4,5 V)[3]

Differenze rispetto al 6502

modifica

Istruzioni

modifica

Il 65C02 condivide con il suo predecessore l'architettura ad 8 bit delle istruzioni e l'indirizzamento della memoria a 16 bit aggiungendo però alcune migliorie, tra cui gli opcode per inserire e togliere dallo stack i registri "X" e "Y". Gli opcode non definiti presenti nel set di istruzioni del 6502 sono stati convertiti in operazioni NOP ("NO Operation"), di lunghezza diversa.

Il 65C02 risolve anche il bug sull'istruzione di salto indiretto JMP indirizzo che affligge il 6502: tale istruzione non funziona correttamente se il byte basso dell'indirizzo contiene il valore $FF (quindi con tutti gli indirizzi $xxFF). L'istruzione è stata migliorata ampliandola con il supporto al registro X (JMP (indirizzo,X)) permettendo l'implementazione di una semplice tabella di salti.

Il 65C02 introduce anche istruzioni per la manipolazione dei singoli bit (RMB, SMB, BBR and BBS), la cui assenza nel 6502 ha limitato la diffusione di software quali quelli per la compressione dei dati.

Registro di stato

modifica

Altri problemi del 6502 risolti nella versione CMOS di WDC sono quelli relativi al registro di stato, che contiene 8 singoli flag che possono essere impostati a 1 oppure a 0. Tali impostazioni possono avvenire sia come risultato di un'operazione aritmetica o di manipolazione dei bit sia tramite codice.

Significato dei flag di stato del 6502:
N -- risultato negativo
V -- overflow di un'operazione
1 -- Non definito (sempre impostato a 1)
B -- Flag di "break" (impostato dall'istruzione BRK)
D -- Modalità BCD (aritmetica decimale) attiva
I -- Richiesta di interrupt (IRQ) disabilitata
Z -- Risultato dell'operazione uguale a zero
C -- Flag di resto di un'operazione

In tutte le versioni NMOS del 6502 il flag decimale "D" non è inizializzato correttamente dopo un reset o quando viene eseguito un interrupt, per cui si possono avere comportamenti anomali del software. Il 65C02 sistema questo bug forzando a 0 il flag "D" dopo un reset o al momento dell'inizio del trattamento di un interrupt. Il 6502 ha, inoltre, un altro bug che affligge il flag "N", che non viene influenzato dalle operazioni in modalità BCD: anche in questo caso il 65C02 risolve il problema, al costo di un ciclo di clock aggiuntivo nel tempo di esecuzione del codice.

65SC02 e derivati

modifica

Il 65SC02 è un processore derivato dal 65C02 rispetto al quale si differenzia per alcune istruzioni aggiuntive: non è chiaro chi fu il progettista originale del chip, anche se in commercio era distribuito da GTE. Dal 65SC02 derivano l'Hudson HuC6280, usato nella console TurboGrafx-16, ed il 65CE02, utilizzato nel microcontrollore CSG 4510 del prototipo di computer Commodore 65.[4]

Impieghi

modifica

Home computer

modifica

Console giochi

modifica

Altri prodotti

modifica
  • Scheda acceleratrice "TurboMaster" per il Commodore 64 (65C02 a 4,09 MHz)
  • molti computer dedicati al gioco degli scacchi come "Mephisto MMV", "Novag Super Constellation", "Fidelity Elite" ed altri (da 4 a 20 MHz)
  1. ^ a b c Utilizzi del 65C02, su xtimeline.com. URL consultato il 01/03/2011 (archiviato dall'url originale il 3 novembre 2013).
  2. ^ Dettagli del WDC 65C02, su westerndesigncenter.com, Western Design Center. URL consultato il 28/02/2011.
  3. ^ a b c Documentazione del W65C02S (PDF), Western Design Center, 19/10/2010. URL consultato il 01/03/2011 (archiviato dall'url originale il 7 dicembre 2021).
  4. ^ Michael Steil, Commodore Semiconductor Group CSG65CE02 Technical Reference (TXT), su commodore.ca, 08/01/1999. URL consultato il 06/06/2014.

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
  NODES
design 7