MOS 6502

Uit Wikipedia, de vrije encyclopedie
(Doorverwezen vanaf 6502A)
Ga naar: navigatie, zoeken
MOS 6502
MOS 6502AD 4585 top.jpg
Registerbreedte 8-bits
Fabrikant o.a. MOS Technology
Begonnen in 1975
Klokfrequentie 1 tot 2 MHz
Voedingsspanning 5 volt
Aantal pinnen 40
Details
Aantal registers 6[1]
Breedte adresbus 16 bits
Adresruimte 64 kB
Aantal instructies 55
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 Rockwel 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 (1978), SYM en AIM65, waarbij op de laatste reeds een ASCII-toetsenbord en paperrolprinter aanwezig waren.

Gegevens instructieset[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)

Toepassingen[bewerken]

De 6502 is toegepast in een aantal verschillende computers:

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]

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]

De 6502-processor is berucht geworden om zijn vermeende ongedocumenteerde instructies. 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]

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

Externe links[bewerken]

Bronnen, noten en/of referenties
  1. Een accumulator, twee indexregister (X en Y), een statusregister, een stackpointer en een program counter