Commodore‎ > ‎Hardware‎ > ‎

6500 CPUs

Image of MOS 8502 CPU: a 40-pin, dual in-line, ceramic chip A large number of microprocessors are in the 6500 family.  The "base model" is the 6502, used in some older computers and as a controller in Commodore's 1541, 1571, and 1581 floppy disk drives.  The 6510 (used in the C64) adds a 6-line parallel port.  The 8502 (pictured) has a 7-line parallel port and is used in the Commodore 128 computer.  These all have a 16-bit address bus and an 8-bit data bus.  Each of them internally has 3 general-purpose 8-bit registers.  These are known as 8-bit computers, and generally operate between 1 and 2 MHz.  Modern variants include the 65C02 and 65816 which are better somehow (for example: lower power, faster speed, or 16-bit operation).  Other variants have fewer address lines, such as the 6507 (used in Atari 2600) or more lines, such as the 6509.
Below is an image of a 6502 core that I annotated to show the functional parts.  For example, you can see the general purpose A, X, and Y registers; the instruction decode ROM; and more.  I hope you like it!  If you do, then you might enjoy Visual6502, which is a transistor-level simulation of a working microprocessor that runs right in your (modern) browser.  Watch a multitude of transistors flip states as the CPU executes some code.  You can pause, single-step, and even back-step the simulation.
Annotated image of 6502 core.

  Instruction Set  

I wanted to share this table of CPU opcodes that I made for the MOS 6500 processors (used in Commodore products in particular).  It includes undocumented opcodes.  Newer versions of the 6500 family, such as those by Western Design Center or used in Super NES do not have any of the undocumented opcodes and add may have a few special new opcodes.

© H2Obsession, 2011, 2014
8502 chip image © 2014