MOS 6502

**MOS 6502** on MOS Technologyn suunnittelema ja valmistama 8-bittinen mikrosuoritin, joka tuli markkinoille vuonna 1975. Se oli ilmestymishetkellään markkinoiden edullisin mikroprosessori ja saavutti siksi suuren suosion.

6502:aa ja sen sukulaispiirejä käyttivät 8-bittisissä malleissaan sellaiset tunnetut tietokone- ja pelikonsolivalmistajat kuin Apple, Atari, Commodore ja Nintendo (NES).

6502 on saanut vaikutteita Motorolan 8-bittisestä 6800-suorittimesta, jota vastaan se myös kilpaili. Kummallekin yhteistä on muun muassa yksinkertainen rakenne ja rekisterien vähäinen määrä.

Suorittimen suunnitteli Chuck Peddle halvemmaksi kilpailijaksi Motorola 6800:lle.
MOS 6502 oli nopeampi, halvempi (kymmenesosa Motorola 6800:n ja Intel 8080:n hinnasta) ja valmistusprosessi tuotti kymmenenkertaisesti toimivia mikropiirejä. Tämän seurauksena myös muiden valmistajien oli laskettava hintoja, mikä auttoi henkilökohtaisten tietokoneiden ”vallankumouksessa”.
MOS 6502 oli käytössä lukuisissa mikrotietokoneissa kuten Apple I, Apple II, BBC Micro ja Commodore PET. Vuonna 1977 julkaistun Atari 2600:n suosion johdosta Atari oli yksi suurimmista asiakkaista.

Toinen merkittävä 6502-yhteensopivien suorittimien valmistaja on Western Design Center, joka valmistaa joitakin malleja vieläkin käyttöön sulautetuissa järjestelmissä: valmistusmäärät ovat satoja miljoonia vuosittain ja toimitusten kokonaismäärän arvioidaan oleva viiden ja kymmenen miljardin välillä.

## Ominaisuudet
### Rekisterit
6502:ssa on akkumulaattorirekisteri (A), kaksi indeksirekisteriä (X ja Y), prosessorin tilarekisteri (P), pino-osoitin (SP) ja ohjelmalaskuri (PC). Ohjelmalaskuri on 16-bittinen ja muut 8-bittisiä.

6510-suorittimeen (esim. Commodore 64:ssä käytetty) on lisätty kaksi rekisteriä. Nämä näkyvät muistipaikoissa $00 ja $01, joita ei voi käyttää RAM-muistina.

### Muuta
6502-suorittimessa on myös pino. Se on sijoitettu muistiosoitteisiin $0100–$01FF. Suoritin käyttää pinoa omaan toimintaansa, esimerkiksi aliohjelmakutsuihin JSR- (jump to subroutine) ja RTS-käskyillä.

6502:n käskyt ovat 1–3 tavua pitkiä ja niiden suorittaminen kestää 2–7 kellojaksoa.

Suorittimen erikoisuus on ns. nollasivu eli muistin ensimmäiset 256 tavua. Monet konekielikäskyt ovat lyhyempiä ja nopeampia, kun niiden operandi on nollasivulla. Esimerkiksi muistin käsittely onnistuu yhden tavun mittaisella osoitteella 16-bittisen sijaan.

Suorittimen reset-, IRQ- ja NMI-vektorit sijaitsevat muistiavaruuden lopussa.
Käynnistyessään ja uudelleenkäynnistyessään suoritin lukee ohjelmalaskurin arvon osoitteista $FFFC ja $FFFD ja suoritus alkaa tästä osoitteesta.

### Bugit ja erikoiset ominaisuudet
MOS 6502 NMOS -prosessoreiden eräs tunnetuimmista bugeista liittyy käskyyn `jmp&nbsp;($xxFF)`. Sitä suoritettaessa prosessori lataa ensin vähemmän merkitsevän tavun osoitteesta $xxFF, mutta enemmän merkitsevä tavu ladataankin osoitteesta $xx00 osoitteen $xxFF+1 sijaan.

## Muunnokset ja johdannaiset
Suorittimesta on valmistettu useita muunnoksia ja johdannaisia sekä samaa suoritinta ovat valmistaneet lisenssillä useat muut yritykset.

MOS valmisti useita 6502-yhteensopivia suorittimia, kuten 6501, 6507, 6510, 6512, 7501, 8501, 8502 ja 8510. Näiden ajama konekieli on suurelta osin identtistä jopa dokumentoimattomien käskyjen ja bugien osalta. Esimerkiksi 6510:n merkittäviä eroja ovat kaksisuuntainen I/O-väylä ja mahdollisuus asettaa osoiteväylä korkeaimpedanssiseen tilaan.

Western Design Centerin (WDC) valmistamiin 6502-malleihin kuuluvat muun muassa 65C02 ja 65816.

WDC 65816 on 16-bittinen 6502-yhteensopiva suoritin, jota käytetään muun muassa viimeisissä Apple II:n malleissa, Super Nintendo Entertainment System -pelikonsolissa sekä joissakin Commodore 64:n ja 128:n turbokorteissa (SuperCPU).

Muita versioita suorittimesta:
* Hudson Soft HuC6280 (PC Engine)
* Ricoh 2A03 (NES)
* Ricoh 5A22 (SNES)

## Lähteet

## Kirjallisuutta
* 
* 

## Aiheesta muualla

* www.6502.org – 6502-aiheista materiaalia
* 6502 Instruction Set