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 ($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
-------

1. ↑  Chuck Peddle *computinghistory.org.uk*. Viitattu 20.12.2019. (englanniksi)
2. 1 2 3  Brian Santo: 25 Microchips That Shook the World *spectrum.ieee.org*. Viitattu 21.12.2019. (englanniksi)
3. ↑  Tekla S. Perry & Paul Wallich: Inventing the Atari 2600 *spectrum.ieee.org*.  1.3.1983. Viitattu 4.9.2022. (englanniksi)
4. ↑  Western Design Center (WDC) Home of 65xx Microprocessor Technology *westerndesigncenter.com*. Viitattu 21.12.2019. (englanniksi)
5. ↑
6. 1 2 3  Ensimmäinen Skrolleri - Commodore 64:n Assembler; Skrolli, 2020 numero 1, ss. 79–
7. ↑  C=lehti 1/88, Käyttäjärjestelmän salat, s. 26
8. ↑  MOS Technology 6502 microprocessor family *cpu-world.com*. Viitattu 19.1.2020. (englanniksi)
9. ↑

Kirjallisuutta
--------------

* Leventhal, Lance A: *6502 Assembly Language Programming*. McGraw-Hill, 1979. ISBN 0-931988-27-6. Teoksen verkkoversio. (englanniksi)

Aiheesta muualla
----------------

CommonsCommons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta **MOS 6502**.
* www.6502.org – 6502-aiheista materiaalia
* 6502 Instruction Set (englanniksi)