6502 by dbhqGitHub

The 6502 family

Everything that ran on a 6502 or one of its descendants, and which of them use a CPU that the core in this repository implements. Which machines are built is tracked in machines/registry.json, not here.

MOS Technology launched the 6502 in September 1975 at $25. Motorola’s 6800 cost $175 at the time, and the 6502 sold for less than a sixth of the price of it or Intel’s 8080. That price is why it ended up in most of the machines that started home computing, and in the consoles that followed.

Who made it

A team led by Chuck Peddle at MOS Technology in Pennsylvania. Peddle had worked on Motorola’s 6800 and proposed a cheaper microprocessor; Motorola’s management were not interested and told him to stop. On 19 August 1974 seven of them left Motorola for MOS: Peddle, Bill Mensch, Rod Orgill, Wil Mathys, Harry Bawcom, Ray Hirt and Terry Holdt.

Peddle, Orgill and Mathys designed the architecture. Mensch, who had designed Motorola’s 6820 interface chip, worked on the instruction decoder, the arithmetic unit and the registers. Bawcom, Mike Janes and Sydney-Anne Holt did the layout. The first chips had no rotate-right instruction, ROR; a later revision added it.

Commodore bought MOS Technology in 1976. Peddle was the main designer of the KIM-1 and of its successor, the Commodore PET. Mensch founded the Western Design Center in 1978, and its first product was the 65C02, the CMOS 6502 that WDC still makes. The core’s Wdc65C02 variant is that chip.

Years are first release. Where a machine launched in different years in different regions, the earliest is given.

What the last column means

MarkMeaning
CoreUses a CPU the core implements, as the NMOS 6502
Core, no decimalUses a CPU the core implements, as the NES’s 2A03, with decimal mode removed
65C02Uses a CPU the core implements, as one of its three 65C02 variants: WDC, Rockwell or Synertek. Each is proven against its own set of Tom Harte’s SingleStepTests, the same way as the NMOS chip
OtherA different CPU on 6502 foundations. Out of scope

The chips

NMOS: the original 6502 and its cut-down versions

ChipYearWhat is differentUsed inCore
65021975The originalMost of this documentCore
6501Fits a 6800 socket. Withdrawn after Motorola suedLittleCore
6503, 6504, 6505, 650628-pin packages with less address space, some interrupt or ready pins removedEmbedded designsCore
650728-pin, 8 KB address space, no interruptsAtari 2600, Atari 810 and 1050 disk drivesCore
6508Built-in 8-bit I/O port and 256 bytes of RAMEmbedded designsCore
6509Addresses 1 MB as 16 banks of 64 KBCommodore CBM-IICore
65101982Built-in 6-bit I/O portCommodore 64Core
6512, 6513, 6514, 6515Take an external two-phase clockBBC Micro B+ (6512)Core
6502C “Sally”Adds a HALT line so the video chip can take the bus for DMAAtari 8-bit computers, Atari 5200, Atari 7800Core
7501, 850119846510 variants with 7 I/O pins and no NMICommodore 16, 116, Plus/4Core
85001985The 6510 in HMOSLater Commodore 64sCore
85021985Runs at twice the 6510’s clockCommodore 128Core
Ricoh 2A03, 2A071983Decimal mode removed, sound unit built in. 2A03 for NTSC, 2A07 for PALNES, FamicomCore, no decimal
6591, 6592A whole Atari 2600 system on one chipAtari 2600 designsCore
CM630Eastern Bloc 1 MHz clonePravetz 8A and 8C, Apple II clonesCore

CMOS: the 65C02 and its relatives

ChipYearWhat is differentUsed inCore
65C02 (WDC), R65C02 (Rockwell), Synertek, GTE G65SC02CMOS, lower power, faster, new instructions, NMOS quirks fixedApple IIc, enhanced Apple IIe, Laser 12865C02
G65SC12A 65C02 without the bit-manipulation instructionsBBC Master65C02
G65SC1024 MHz, different pinoutBBC Master Turbo co-processor65C02
VL65NC0265C02 core inside Atari’s Mikey chipAtari Lynx65C02
KS536065C02 system chipWatara Supervision65C02
HuC62801987Hudson’s 65C02 with extra instructions, 7.16 MHzPC Engine, TurboGrafx-16Other
Rockwell R6500/11, /12, /15, R6511QOne-chip computers: bit instructions, on-chip RAM, a UARTIndustrial controlOther
Rockwell R65F11, R65F121983As above, with a Forth kernel in ROMIndustrial controlOther
Rockwell R65C00, R65C21, R65C29Two 6502s on one chipIndustrial controlOther
WDC W65C02SThe 65C02 still in production todayIndustrial and embedded kit, and the modern machines below65C02

Beyond 8 bits and beyond the instruction set

ChipYearWhat is differentUsed inCore
65CE02A third index register, Z, and a 16-bit stackCommodore Semiconductor Group designsOther
45101991A 65CE02 with memory mapping and I/O on the chipCommodore 65 prototypeOther
45GS0265CE02 descendant with a 32-bit Q register, 40 MHz, built in an FPGAMEGA65Other
65C81616-bit, with a 6502 emulation modeApple IIGS, SNES (as Ricoh’s 5A22)Other
65C802A 65C816 in a 6502’s 40-pin socketLittleOther

Computers

Single-board computers and kits

MachineYearCPUCore
KIM-119766502, 1 MHzCore
Synertek SYM-1 (first sold as the VIM-1)19786502Core
Rockwell AIM-6519786502Core
Acorn System 119796502Core
Elektor Junior Computer19806502Core

The KIM-1 was MOS Technology’s own board, sold to show engineers the 6502: 1 KB of RAM, two 6530 chips (each a ROM, a little RAM, two I/O ports and a timer), a 24-key keypad and six seven-segment LED digits, for $245. Microchess by Peter Jennings, sold for it, is probably the first game for a microcomputer to be sold commercially. It is the first machine this project builds.

Apple

MachineYearCPUCore
Apple I19766502Core
Apple II19776502Core
Apple II Plus19796502Core
Apple III19806502ACore
Apple IIe19836502Core
Apple IIc198465C0265C02
Apple IIe, enhanced198565C0265C02
Apple IIGS198665C816Other
Apple IIc Plus198865C02, 4 MHz65C02

Apple II clones: the Franklin Ace (6502, Core), the Laser 128 (65C02), and Bulgaria’s Pravetz 8A and 8C (CM630, Core).

Commodore

MachineYearCPUCore
PET19776502Core
VIC-2019806502Core
Commodore 6419826510, later 8500Core
MAX Machine (Japan only)19826510Core
CBM-II19826509Core
Commodore 16, 116, Plus/419847501, 8501Core
Commodore 12819858502, with a Z80 alongsideCore
Commodore 65 (prototype, never sold)19914510Other

The Salora Manager was a VIC-20 sold under a Finnish brand. Every Commodore floppy drive for the 8-bit line is a 6502 computer in its own right, the 1541 included, and the 8-inch drives for the PET had two.

Atari 8-bit

MachineYearCPUCore
Atari 400, 80019796502C “Sally”Core
XL series19836502C “Sally”Core
XE series19856502C “Sally”Core
XE Game System19876502C “Sally”Core

Acorn

MachineYearCPUCore
Atom19806502Core
BBC Micro19816502, 2 MHzCore
Electron19836502Core
BBC Micro B+19856512Core
BBC Master1986G65SC1265C02

The BBC Micro’s 6502 second processor, attached through Acorn’s Tube interface, is a 65C02 at 3 MHz. The BBC Micro Model B is the second machine this project builds.

Others

MachineYearCPUCore
Ohio Scientific Challenger range19776502Core
Compukit UK10119796502Core
Tangerine Microtan 6519796502Core
Oric-119836502ACore
Oric Atmos19846502ACore

Consoles and handhelds

MachineYearCPUCore
Atari 260019776507Core
Atari 520019826502C “Sally”Core
NES, Famicom1983Ricoh 2A03 (NTSC), 2A07 (PAL)Core, no decimal
Atari 780019866502C “Sally”Core
PC Engine, TurboGrafx-161987HuC6280Other
Atari Lynx1989VL65NC0265C02
SNES, Super Famicom1990Ricoh 5A22 (65C816)Other
Watara Supervision1992KS5360 (65C02)65C02

Famicom clones, such as the Dendy that was widely sold in Russia from 1992, and the NES-on-a-chip plug-and-play TV games carry 2A03-compatible CPUs. The NES is the third machine this project builds.

Arcade

Most arcade games of the time ran on a Z80. Atari was the 6502’s great exception in the arcade.

GameYearNotes
Lunar Lander1979Atari’s first vector game, on its 6502 vector hardware
Asteroids19796502 with Atari’s vector generator. The sound is hand-built circuitry, not a sound chip
Asteroids Deluxe1980Same hardware family
Battlezone19806502 at 1.5 MHz, plus a bit-slice “math box” for the 3D transforms and POKEY chips for sound
Missile Command19806502 and a POKEY
Centipede19816502
Tempest19816502 at 1.5 MHz, two POKEYs, Atari’s vector generator

Later arcade boards kept a 6502 for smaller jobs: Paperboy uses one to run the sound and the coin slots. Atari’s original source code for many of these games was published on GitHub in October 2021.

Peripherals and other hardware

  • Disk drives. Commodore’s 8-bit drives (6502), and Atari’s 810 and 1050 (6507).
  • Accelerators and co-processors. The TurboMaster for the Commodore 64 (65C02 at 4.09 MHz); the BBC Micro’s 6502 second processor (65C02 at 3 MHz).
  • Chess computers. Many dedicated chess computers ran 65C02s at 4 to 20 MHz.

Built today

The 6502 never stopped. WDC still makes the W65C02S, and people still design new machines around it.

MachineCPUNotes
Commander X16 (2023)WDC 65C02S, 8 MHzCommodore-style KERNAL, video in an FPGA because nobody makes a suitable video chip any more
Olimex Neo6502W65C02, 6.25 MHzAn RP2040 alongside handles memory, HDMI video and sprites
Ben Eater’s 6502 kitW65C02 and W65C22A breadboard computer built along with his video series
Replica 165C02A modern replica of the Apple I
MEGA6545GS02 in an FPGA, 40 MHzCompatible with the Commodore 65, which Commodore never released

On screen

  • The Terminator (1984). Some shots from the T-800’s point of view scroll 6502 assembly down the left of the screen. It is Apple II code: a type-in program from Nibble magazine, and part of the Apple II DOS 3.3 RAM disk driver.
  • Futurama (1999). In “Fry and the Slurm Factory”, an X-ray of Bender’s head shows a chip labelled “6502”. Executive producer David X. Cohen had programmed games on an Apple II Plus at school.

What this means for this project

  • The three machines planned, the KIM-1, the BBC Micro Model B and the NES, all use a CPU the core implements, the NES with decimal mode removed. Which are built is tracked in machines/registry.json.
  • Nearly every 6502 machine from 1976 to 1985 uses one too.
  • The core also covers the 65C02, which opens the BBC Master, the later Apple IIs, the Atari Lynx, the Watara Supervision and every modern machine above except the MEGA65, whose 45GS02 is a different CPU.
  • The 65C816, the HuC6280 and the 4510 family are different CPUs, and out of scope.

Sources

This site uses Google Analytics to count how many people read these pages. No cookie is set unless you accept, and every page works exactly the same either way.