Ten artykuł od 2024-04 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych. Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte. Sprawdź w źródłach:Google Books•Google Scholar•BazHum•BazTech•RCIN• Internet Archive (texts / inlibrary) Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.
Został zaprojektowany przez niewielki zespół pod kierownictwem Chucka Peddle, inżyniera, który brał udział w pracach nad procesorem Motorola 6800. 6502 powstał jako tańsza alternatywa dla procesora Motoroli. W 1975 roku kosztował on 25 USD (podczas gdy np. Intel 8080 kosztował 150 USD a Motorola 6800 blisko 200 USD).
Powstało też wiele wariantów oraz procesory kompatybilne. Przykładem jest MOS 6510 (i jego odmiany) stosowane w późniejszych komputerach 8-bitowych produkowanych przez Commodore. Oprócz zastosowania do budowy komputerów, były (i są) one wykorzystywane w systemach wbudowanych oraz jako mikrokontrolery. Niektóre warianty, jak np. WDC 65C02, są produkowane do dzisiaj (2025).
Nie jest to jednak dużą wadą, ze względu na istnienie specjalnego trybu adresowania pamięci (tzw. adresowanie strony zerowej), w którym początkowe 256 bajty pamięci RAM mogły być wykorzystane prawie jak rejestry wewnętrzne. Reszta pamięci adresowana jest przy użyciu większości z 13 trybów adresowania, zarówno pośrednich (przez adresy na stronie zerowej) jak i absolutnych (w tym indeksowanych).
MOS 6502 w odróżnieniu od swojego konkurenta Z80 nie ma specjalnych rozkazów do obsługi urządzeń wejścia-wyjścia. Obszar stosu zaimplementowano za pomocą 8-bitowego rejestru stosu (SP), odwołującego się wyłącznie do pierwszej strony pamięci (adresy od 0x100 do 0x1ff).
Wersje
Mikroprocesor MOS 6502 był pierwszym modelem "rodziny". Oprócz niego firma MOS Technology zaprojektowała i wprowadziła na rynek inne modele wstecznie zgodne z pierwszym modelem:
6502C „Sally” (nie należy jej mylić z MOS 65C02 a także z również nazwanym 6502C modelem mogącym pracować z częstotliwością 4 MHz) — wersja 6502 różniąca się od oryginału obecnością dodatkowego wyprowadzenia HLT stosowana w 8-bitowych komputerach Atari począwszy od wersji XL (według niektórych źródeł obecna także w ostatnich seriach Atari 400/800). Wyprowadzenie HLT służyło temu, aby układ ANTIC odpowiedzialny za generowanie obrazu mógł wstrzymać pracę procesora w momencie pobierania danych z pamięci obrazu (celem było uniknięcie konfliktów na linii adresowej). Wcześniej za wstrzymywanie pracy procesora odpowiadał zestaw 4 układów scalonych;
MOS 6510, stosowany w komputerach produkowanych przez Commodore, np. w Commodore 64; dodano w nim możliwość przełączania układów wejścia-wyjścia (co umożliwiało m.in. "podwójne" adresowanie, tj. w tym samym obszarze adresowym mogły się znajdować np. 2 blok pamięci: ROM i RAM, a to która była "widziana" przez procesor w czasie odczytu/zapisu mogło zostać programowo wybrane (przez zapis odpowiednich wartości do komórki pamięci pod adresem 0);
MOS 65C02 – wersja CMOS procesora, w której poprawiono parę błędów i dodano kilka nowych rozkazów i trybów adresowania; cechą charakterystyczną tej konstrukcji w przeciwieństwie do 6502, 6502C i 6510 była eliminacja nieudokumentowanych rozkazów (kody rozkazów procesora, które nie były obecne w oficjalnej liście rozkazów, a które powodowały wykonanie jakiegoś działania przez procesor) — podanie takiego kodu odtąd powodowało, że procesor nie podejmował żadnych działań, a w celu minimalizacji błędów działania programów zachowano długość rozkazu (wraz z operandami) oraz czas jego wykonania (tzn. jeśli dany rozkaz nieudokumentowany po swoim kodzie zawierał operand o długości 1 bajta a wykonanie tego rozkazu trwało 5 cykli zegara, to 65C02 po wczytaniu kodu nic nie robił, ale przechodził do wykonania rozkazu po tym operandzie i czekał 5 cykli).
Obliczenia
Mikroprocesor 6502 mógł wykonywać m.in. takie instrukcje jak dodawanie oraz odejmowanie, nie był jednak wyposażony w instrukcje dzielenia i mnożenia.