MOS 6502

MOS 6502
MOS 6502
Registerbreedte 8 bits
Fabrikant o.a. MOS Technology
Begonnen in 1975
Klokfrequentie 1 tot 3 MHz
Voedingsspanning 5 volt
Aantal pinnen 40
Details
Aantal registers 6[1]
Breedte adresbus 16 bits
Adresruimte 64 kB
Aantal instructies 56
Portaal  Portaalicoon   Informatica

De MOS 6502 is een van de bekendste 8 bit-processoren. De processor werd in 1975 ontworpen door Chuck Peddle bij halfgeleiderfabrikant MOS Technology (na overname door Commodore, Commodore Semiconductor Group geheten). Chuck Peddle had eerder bij Motorola in Silicon Valley gewerkt, waar hij bekend was met de 6800-processor. De gelijkenis met de 6800 is te vinden in de instructieset. De 6502 werd in licentie ook door onder andere Rockwell en Synertek geproduceerd. De 6502 dankte zijn populariteit aan zijn prijs en prestaties: destijds was de processor 6 keer zo goedkoop als concurrerende processoren en hij was vaak nog sneller ook. De 6502 startte een enorme reeks computerprojecten en was samen met de Zilog Z80 de aanzet tot de homecomputerrevolutie in de jaren 80. De eerste computerboards waren de KIM-1 (1976), SYM en AIM65, waarbij op de laatste reeds een ASCII-toetsenbord en papierrolprinter aanwezig waren.

Gegevens instructieset

[bewerken | brontekst bewerken]
Type architectuur: Accumulator
Aantal registers: 3 acht-bits-integer-registers: de accumulator en een X- en Y-register
Adresruimte: 65536 bytes
Geheugenbeheer: Niet aanwezig
Vlaggen: Nul, overdracht, negatief, overflow, decimaal, interrupt
Adresseermodi Onmiddellijk, absoluut, absoluut geïndexeerd (index: X,Y), nulpagina, nulpagina geïndexeerd (index: X), indirect geïndexeerd (index: Y), geïndexeerd indirect (index: X)

De 6502 en varianten daarop zijn toegepast in een groot aantal verschillende computers en andere apparaten:

De 6502-processor is na zijn gouden decennium enigszins in onbruik geraakt. De ondergang van Commodore heeft de processor ook niet geholpen. Toch wordt de 65C02, een 6502-kloon, nog steeds verkocht door Western Design Center en nog steeds in elektronische apparaten verwerkt.

Programmering

[bewerken | brontekst bewerken]

De 6502 is altijd een vervelende processor geweest om een compiler voor te schrijven. Dit komt doordat de stackpointer 8 bits breed is, zodat de stack maximaal 256 bytes lang kan zijn. Veel compilers gebruiken daarom een softstack, waarbij de functie van stackpointer op een andere, minder efficiënte wijze wordt gerealiseerd.

Veel homecomputers gebaseerd op de 6502 hadden een BASIC-interpreter aan boord. Als gevolg hiervan werd er veel in BASIC geprogrammeerd; menig programmeur heeft zijn eerste regels code geschreven in de BASIC van zijn eerste homecomputer, die met de 6502 is uitgerust.

Bijwerkingen van ongeldige instructies

[bewerken | brontekst bewerken]

Niet bij elke opcode-byte is een instructie gedefinieerd. Om de prijs van de processor laag te houden, worden de instructie-bytes door combinatorische logische schakelingen onvolledig gedecodeerd. Als gevolg hiervan levert bijna elke ongeldige instructie-byte een zeker gedrag op, vaak een mengvorm van geldige instructies. De meeste van deze spookinstructies zijn nutteloos vanwege hun bizarre effect; enkele doen de processor crashen.

Varianten van de 6502

[bewerken | brontekst bewerken]

In de loop der jaren zijn er verscheidene varianten van de 6502 verschenen die licht verschilden:

  • 6502A
    • Loopt op 2 MHz klokfrequentie in plaats van de 1 MHz van de standaard 6502
    • Toegepast in de Acorn BBC modellen A (16 KB RAM) en B (32 KB RAM)
  • 65C02
    • 6502-kloon van Western Design Center uitgevoerd in CMOS
    • Extra instructies en adresseermodes
    • Gebruikt in de Apple IIc en ook een tijdje in de IIe
  • 6503, 6505, 6506
    • 12 bit-adresbus (4 KB)
  • 6504, 6507
    • 13 bit-adresbus (8 KB)
  • 6509
    • 20 bit-adresbus (1 MB)
  • 6510
    • 6502 met toegevoegde 8 bit-I/O-Port (6 bits gebruikt)
    • Gebruikt in de Commodore 64
  • 6511
    • Microcontroller met IO-poorten, seriële interface en RAM-geheugen, van Rockwell
  • 65F11
    • Variant op de 6511 met geïntegreerde Forth-interpreter
  • 7501
  • 8500
    • 6510 in CMOS-technologie
  • 8502
    • 6510 die op 2 MHz ingesteld kan worden
    • Gebruikt in de Commodore 128
  • 65816 (65C816)
  • 65802 (65C802)
    • Variant van de 65816 die pincompatibel met de 6502 is
    • Tot 16 MHz
[bewerken | brontekst bewerken]
Zie de categorie 6502 microprocessor van Wikimedia Commons voor mediabestanden over dit onderwerp.