home   |   the links mine   |   6502 primer   |   large math look-up tables   |   65c02 assembly structure macros   |   simple multitask   |   6502 interrupts   |   zero-overhead Forth interrupts   |   RS-232 primer   |   assembly relevant today   |   CMOS-NMOS 6502 difs   |   6502 stacks treatise   |   workbench computers   |   self-modifying code   |   65816 misunderstandings

Differences between NMOS 6502 and CMOS 65c02

On this page:

On certain forums, and in a recent web search, I have found that some 6502 enthusiasts are apparently still unaware of the CMOS 6502 (65c02) which was out in the early 1980's and of the benefits it offers over the original NMOS 6502.  On one forum, someone said something about the BRA (Branch Relative Always) instruction, and another said, "The 6502 doesn't have a BRA instruction, but I think I know what you mean," thinking the first one was confusing it with a different processor.  I've seen enthusiasts' web pages saying the 6502 was offered in 1MHz and 2MHz versions, the writers being unaware that all the them being made since the mid-1990's are guaranteed to meet the timing specifications at 14MHz or better, and that the fastest ones are put at the heart of custom ICs and are running over 200MHz.

Hardware differences

Software differences


None of the NMOS parts have been made in many years (decades?) but NOS (new old stock) can sometimes be found, and some distributors like Jameco have "pulls," ie, ones that have been pulled out of circuit boards, mostly used.  Some of the CMOS parts are also discontinued, the ones that come to mind being the GTE/CMD 65C03, '04, '05, '06, 07, '12, '13, '14, '15, '102, '103, '104, '105, '106, '107, '112, '115, '150, and '151, the Rockwell '19, and the WDC 65C802.  WDC plans to continue making the CMOS 65C02, '816, '134 µC, '265 µC, and I/O ICs indefinitely, at least in DIP and PLCC and some also in PQFP, and there are many distributors selling them.  We try to keep the forum sticky topic "65xx parts sources" up to date, so please refer there.

For further reading

65c02 advantages (forum topic)
A taken branch delays interrupt handling by one instruction (forum topic)  There seems to be a difference between NMOS and CMOS in this area as well.
A 65C02 bug? (it was a bug in the documentation, not the processor)  (forum topic)  See Jeff's post on cycle timing differences between NMOS & CMOS in R-M-W instructions.
Least Obvious Incompatibility (forum topic)
65c02 data sheet (.pdf) from WDC
65816 data sheet (.pdf) from WDC
"Programming the 65816-Including the 6502, 65C02 and 65802," the outstanding programming manual by David Eyes and Ron Liechty.  By far the best.
I came across this CPU World page in Feb 2018 giving more details on the variants like 6504, 6505, 6506, 6507, etc. (not so much the NMOS-CMOS differences).

links from my links page, under "65-family processors", at http://wilsonminesco.com/links.html#65fam :
6502 origins
65816 origins, 6516, 65032, 65832
65CE02 improvements over the 65c02
6516 (Synertek) 16-bit pseudo-6502 for Atari 400/800 computers, never made it to market
65020 double-wide 6502 proposal
HuC6280, a PC Engine using a special version of the 65c02 (with all the modern CMOS instructions minus STP and WAI), with a memory management unit (MMU).  Of special interest are the instructions directly involved with memory mapping and moving, and a T flag, which when set (using SET), causes the accumulator instructions AND, EOR, OR, and ADC to operate on the ZP address pointed to by X instead, without affecting A.  In a way, it makes it like having 257 accumulators, for those instructions.
6502EX (6502 extended to 32 bits)
65Org32 developments of ideas for an all-32-bit 65816 extension (forum topic)

If you know of additional differences I should add, or see errors, please email me.

last updated May 6, 2024         Garth Wilson   email wilsonminesBdslextremeBcom (replacing the B's with @ and .)