Shopping list for 6502 experiments

Building your first 6502-based project? We'll help you get started here.
nrrd
Posts: 13
Joined: 15 Jan 2026

Shopping list for 6502 experiments

Post by nrrd »

Hello all.
I'd like to experiment with a 6502 system, initially building it on breadboards, before getting a PCB made.
I'm aiming for something like an Apple IIc+, but with better VGA graphics and sound. I'll use an Arduino Nano R4 for that, as I know the Arduino world well, and nothing about FPGAs.

I've come up with the following shopping list of parts. I'd like build iteratively and then experiment with address decoding logic and RAM banking.
I've put a bunch of oscillators in there, but I'll use a Arduino Nano (8 bit) to step the clock to start with.
Is this a good list to start with? Is there anything missing that you would add?

Thanks!

Code: Select all

Mfr. No	          Manufacturer 	                                        Description 
W65C22S6TPG-14      Western Design Center (WDC)	I/O Controller Interface IC Versatile Interface Adapter
W65C02S6TPG-14      Western Design Center (WDC)	Microprocessors - MPU 8-bit Microprocessor
ACH-4.000MHZ-EK     ABRACON			 	 	      Standard Clock Oscillators Crystal Oscillator 8-DIP, 4 Leads (Half Size, Metal Can) 4MHz   30ppm -20  C   70  C CMOS 5V
ACH-8.000MHZ-EK     ABRACON			 	 	      Standard Clock Oscillators Crystal Oscillator 8-DIP, 4 Leads (Half Size, Metal Can) 8MHz   30ppm -20  C   70  C CMOS 5V
ACH-12.000MHZ-EK    ABRACON			 	 	      Standard Clock Oscillators Crystal Oscillator 8-DIP, 4 Leads (Half Size, Metal Can) 12MHz   30ppm -20  C   70  C CMOS 5V
ACH-16.000MHZ-EK    ABRACON			 	 	      Standard Clock Oscillators Crystal Oscillator 8-DIP, 4 Leads (Half Size, Metal Can) 16MHz   30ppm -20  C   70  C CMOS 5V
SST39SF010A-70-4C-PHE   Microchip			 	    NOR Flash 128K X 8 70ns
AS6C1008-55PIN      Alliance Memory               SRAM LP SRAM, 1Mb, 128K x 8, 2.7 - 5.5V, 32pin PDIP, 55ns, Industrial Temp - Tube
SN74AHCT00NE4       Texas Instruments             Logic Gates Quadruple 2-input Po sitive-NAND gates A ALT 595-SN74AHCT00N
SN74AHCT02N         Texas Instruments             Logic Gates Quad 2-Input A 595-S N74AHC02N A 595-SN74AHC02N
SN74AHCT04N         Texas Instruments             Inverters Hex A 595-SN74AHC04N A 595-SN74AHC04N
SN74AHCT32N         Texas Instruments             Logic Gates Quad 2-Input Pos A 5 95-SN74AHC32N A 595-SN74AHC32N
SN74AHCT138N        Texas Instruments             Encoders, Decoders, Multiplexers & Demultiplexers Line Decoder
SN74AHCT273N        Texas Instruments             Flip-Flops Octal
SN74HC20N           Texas Instruments             Logic Gates Dual 4-Input
Edit: formatting.
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Shopping list for 6502 experiments

Post by BigDumbDinosaur »

nrrd wrote:
Hello all.
I'd like to experiment with a 6502 system, initially building it on breadboards, before getting a PCB made...I've come up with the following shopping list of parts.
Do you have a schematic for your planned machine?  Shopping for parts before developing a schematic is a little premature, in my opinion.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
Michael
Posts: 633
Joined: 13 Feb 2013
Location: Michigan, USA

Re: Shopping list for 6502 experiments

Post by Michael »

You might defer the $16-$17 investment for crystal oscillators and use your Arduino Nano R3 for manually or slow stepping the CPU clock or for generating a 1, 2, 4, or 8 MHz clock during your initial breadboard experiments.

Code: Select all

  /******************************************************************************
   *  the CPU clock background task                                             *
   *                                                                            */
   void beginClock(byte mhz)          // operand 1, 2, 4, or 8                  *
   { DDRB |= 1<<PORTB3;               // set OC2A (D11/PB3) to 'output'         *
  /*                                                                            *
   *  TCCR2A settings for 'normal' or 'CTC' (non-PWM) mode                      *
   *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              *
   *  COM2A1:COM2A0 '01' - Toggle OC2A on Compare Match                         *
   *  WGM22:WGM20  '010' - CTC mode (clear timer on compare match)              *
   *                       (WGM22 bit is in TCCR2B register)                    *
   *  COM2A1:COM2A0 '00' - CTC 'off', normal pin I/O operation                  *
   *                                                                            */
     TCCR2A = (1 << WGM21) | (1 << COM2A0);
     TCCR2B = (1 << CS20);            // prescale = 1:1 (WGM22 = 0)             *
     TIMSK2 = 0;                      // no interrupts                          *
     OCR2A = (8/mhz-1);               // match value (0/1/3/7 --> 8/4/2/1 MHz)  *
   }                                  // ****************************************
PCB Gerbers for the ZIF-32 socket breadboard adapter pictured below can be found in this thread.
BE6502-RE on BB ZIF.png
The same design (above) laid out on a PCB (below).
easyeda build #1.jpg
nrrd
Posts: 13
Joined: 15 Jan 2026

Re: Shopping list for 6502 experiments

Post by nrrd »

BigDumbDinosaur wrote:
nrrd wrote:
Hello all.
I'd like to experiment with a 6502 system, initially building it on breadboards, before getting a PCB made...I've come up with the following shopping list of parts.
Do you have a schematic for your planned machine?  Shopping for parts before developing a schematic is a little premature, in my opinion.
Thanks for your reply.
I'd like to work on it iteratively. First I'll follow the 6502 primer and build a basic machine on breadboard with 32KB RAM and 32KB ROM, using just the first 32KB of both the 128KB RAM and 128KB ROM chips. Then I'll add the 65c22 VIA and modify the addressing logic so it uses either the top of the RAM, or bottom of the ROM, and add a keyboard. This will be the "minimum viable product (MVP)". Monitoring will be via the Arduino.
Then I'll start looking at RAM and/or ROM banking with probably a 32KB base RAM / 16KB banked RAM / 16KB ROM split (with the VIA being at the top of the base RAM.

So, I know I'll need a 65c02, 65c22, ROM chip and RAM chip, plus some logic chips. I guess the question is really "what are the most useful logic chips to experiment with address decoding logic and RAM banking?".

I'm trying to order a lot of parts at once as I have to order from Mouser to get the WDC chips, and I get free postage spending over £33.00. I'm in the UK, and I believe Mouser actually send stuff from the EU or the US.
Michael wrote:
You might defer the $16-$17 investment for crystal oscillators and use your Arduino Nano R3 for manually or slow stepping the CPU clock or for generating a 1, 2, 4, or 8 MHz clock during your initial breadboard experiments.
That's a good point. It also occurred to me that I could use a single oscillator and a clock divider plus multiplexor to select a clock speed. This would also allow software selectable speed, which could be fun / useful if porting old code or communicating with slow peripherals.
User avatar
Michael
Posts: 633
Joined: 13 Feb 2013
Location: Michigan, USA

Re: Shopping list for 6502 experiments

Post by Michael »

The ATF16V8B and ATF22V10 GAL devices seem to be popular choices for address decoders and 'glue' logic. Would a CD74HC688E "8-bit Magnitude Comparator" or CD74HCT688E be worth adding to your list?
temp1.png
BE6502-RE Notes #2.png
Paganini BB2_ROM_Emu.png
Last edited by Michael on Sun Feb 01, 2026 8:21 am, edited 1 time in total.
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Shopping list for 6502 experiments

Post by BigDumbDinosaur »

nrrd wrote:
Michael wrote:
You might defer the $16-$17 investment for crystal oscillators and use your Arduino Nano R3 for manually or slow stepping the CPU clock or for generating a 1, 2, 4, or 8 MHz clock during your initial breadboard experiments.
That's a good point.  It also occurred to me that I could use a single oscillator and a clock divider plus multiplexor to select a clock speed.  This would also allow software selectable speed, which could be fun / useful if porting old code or communicating with slow peripherals.
Assuming you don’t intend to exceed an 8 MHz Ø2 rate, you could use a 16 MHz oscillator and feed it through a chain of flip-flops to produce the submultiples.  Two 74AC74s would give you an 8,4,2,1 set of clocks.

Aside from an inexpensive solution, the flops will take care of cleaning up the oscillator’s signal.  I should note that WDC specifies that the Ø2 clock’s rise/fall time not exceed 5 ns, a requirement that some HCMOS oscillators—and possibly the Nano R3—won’t meet.  There is some wiggle room with that spec, but grossly violating it may result in some anomalous behavior on the 65C02’s part.

Speaking of anomalous behavior, the WDC 65C02 does not have TTL-compatible inputs—the approximate transition point is around 52 percent of VCC.  Just about all SRAMs and ROMs have TTL-level outputs.  In the vast majority of cases, this will not pose an operational problem, assuming light loading.  The unpredictable variable is parasitic capacitance, which constitutes a not-insignificant load to chip outputs, especially with low-to-high transitions.  Good construction techniques should help in mitigating this problem.

Regarding use of breadboard, the longish wiring typical of that type of construction tends to muck up signal quality and timing.  The problems with breadboard layouts come not from the Ø2 rate, but from the extremely fast edges generated by modern hardware.  In particular, WDC MPUs exhibit output edges that are in the 1-2 ns range (the S6 version of the 65C816 switches so fast I can’t see the rise/fall on my 275 MHz scope using a high-quality, compensated probe).  Those fast edges represent effective frequencies going into the hundreds of megahertz range, which can cause major trouble even on a well-designed PCB.

On a breadboard, the wiring can introduce too much inductance, which will round edges, produce ground bounce, and in general, potentially confuse devices.  Also, breadboard units are infamous for unreliable connections.  If you are going to use a breadboard, your best chance of success will come with use of a high-quality part (which, in my opinion, rules out almost all “Made in China” units), coupled with careful layout to minimize lead length.  Approaching the layout as though you are doing a PCB might help.

Last but definitely not least, don’t be stingy with bypass capacitors.  :D
x86?  We ain't got no x86.  We don't NEED no stinking x86!
nrrd
Posts: 13
Joined: 15 Jan 2026

Re: Shopping list for 6502 experiments

Post by nrrd »

@BigDumbDinosaur Thanks for the detailed reply.
It might be my naivety but what would be the advantage of using a chain of flip flops, rather than a clock divider like the 74HC4020?

(I should say that I know the CD4000 series of chips pretty well from my dabblings with synthesizers and guitar pedals. Translating these to the equivalent 7400 chips, and knowing about the more modern and extended chips is the tricky bit).
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Shopping list for 6502 experiments

Post by BigDumbDinosaur »

nrrd wrote:
@BigDumbDinosaur Thanks for the detailed reply.
It might be my naivety but what would be the advantage of using a chain of flip flops, rather than a clock divider like the 74HC4020?
Recall what I said about WDC’s Ø2 rise/fall time requirement (<= 5ns) and then look up the tt output transition time spec for the 74HC4020 (page 8 in the Nexperia data sheet I have).  That should answer your question.
Quote:
(I should say that I know the CD4000 series of chips pretty well from my dabblings with synthesizers and guitar pedals. Translating these to the equivalent 7400 chips, and knowing about the more modern and extended chips is the tricky bit).
In computer circuits, I usually recommend 74HC logic up to around 10 MHz, depending on the number of logic levels involved.  If address decoding is very granular, 74HC probably won’t be reliable above 8 MHz.

Beyond that, your best bet is 74AHC, which has the single-digit prop time of 74AC, combined with the less-aggressive edges of 74HC.  The one exception is any device that produces the Ø2 clock.  For that I exclusively use 74AC with suppression to control ringing, e.g., Thevenin termination or Schottky clamp diodes combined with series resistance.  Some ringing is tolerable, but if excessive, may result in double-clocking, which will drive the 65C02 (and you) bonkers.

CD4xxx logic is unsuitable for most computer applications—the prop time is much too long.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Shopping list for 6502 experiments

Post by barnacle »

If you are considering avoiding breadboards (personally, I hate them with a passion) here's a PCB equivalent that accommodates both SOIC and DIP packages up to 20 pins, DIP 0.6", distributes power, has spaces for SM smoothing capacitors, and in the latest iteration has space for a couple of SM oscillator packages.

viewtopic.php?f=4&t=7910

If you're interested, I'll send you the Gerbers so you can get some made at JLCPCB or similar.

Neil
Paganini
Posts: 516
Joined: 18 Mar 2022

Re: Shopping list for 6502 experiments

Post by Paganini »

Basically all breadboards are made in China. But there's a big difference between the $00.50 ones on Ali Express compared with ones from a real electronics company, such as Twin Industries. I particularly like their "high heat" line of breadboards, not because my projects run particularly hot, but because I like the round holes! :) They are usually even slightly cheaper than the BusBoard brand breadboards that Ben Eater uses - those are decent enough, but I find the jaws of their spring clips wear out and get loose too quickly.

Radical Brad seems to have left the scene, and unfortunately his website with breadboarding tips has been taken down. However, the tips are still here on 6502.org in their original thread, if you're willing to do a little sifting through this ridiculous 60+ page topic: viewtopic.php?f=4&t=3329 One of the most useful takeaways from that thread is to use untwisted solid-core copper wire from Cat5 ethernet cable instead of breadboard jumpers or dupont wires.

Edit in: Here's the actual post where Brad talks about his method: viewtopic.php?f=4&t=3329&start=390#p43573

Unless you're planning to use old TTL devices in your project you probably don't need any 'T' series logic. I personally am a big fan of AHC logic for my hobby projects. Almost as quiet as HC, and almost as fast as AC.

If I were making your IC shopping list, I'd included 74x14 - Schmitt Trigger inverters are always handy to have around. I'm also a big fan of the 74x139 2 to 4 line decoder. You can do all kinds of useful things with those. Also, 74x74 (dual D-flip flops) and 74x163 (loadable 4-bit counter) are indispensable for clock management, and oh so much more... :D

Edit: to note crosspost with BDD!
"The key is not to let the hardware sense any fear." - Radical Brad
nrrd
Posts: 13
Joined: 15 Jan 2026

Re: Shopping list for 6502 experiments

Post by nrrd »

Thanks for all the information today from @BigDumbDinosaur, @barnacle and @Paganini
I'm going to digest it, read some more, watch some more Youtube, study BigDumbDinosaur POC v1.3, and then try to come up with a schematic.

I should say that the breadboards will be used only for discovery and learning. I have a K & H products AD12, which was relatively expensive and has worked well on the analogue and Arduino circuits I've prototyped on it. It says "for Electronic or Computer circuits" on it, so it must work fine. :D

When I have a viable prototype I'll get a PCB made. I use KiCAD, and get Aisler.net to do the PCBs. They're in Germany, and are a little more expensive than JLCPCB, but still affordable. They are more local and will have to adhere to greater standards of environmental protection and worker's protections and rights, which are two things I care about a lot.
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Shopping list for 6502 experiments

Post by BigDumbDinosaur »

Paganini wrote:
Radical Brad seems to have left the scene...However, the tips are still here...One of the most useful takeaways from that thread is to use untwisted solid-core copper wire from Cat5 ethernet cable instead of breadboard jumpers or dupont wires.
I will mention one thing Brad said about use of CAT5 cable:
Quote:
Cat-5 has 8 wires; 4 white, and 1 red, 1, green 1 blue, 1 brown.
That is slightly incorrect.  The four “white” wires in CAT5 UTP (also CAT3 and CAT6) are supposed to be white with color stripes that match with the solid colors to which they are paired.

While on the subject of scavenging hookup wire from cable, there are plenty of sources for CAT3 UTP, which is the stuff commonly used for land-line telephone connections in subscribers’ premises.  A box of that stuff is going to be less expensive than CAT5 or CAT6, assuming you are forced to purchase a full box.  In breadboard work, the source of your wires doesn’t matter—all three cable types use 24 AWG solid copper wire.

Way back when I used to breadboard things, I used the wire out of ordinary station-D phone cable (once widely used in North America for premises wiring—contains black, red, green and yellow).  Main thing was to use a wire gauge that is sufficient to produce a reliable breadboard connection.

Speaking of colored wires, yours truly has a form of color-blindness called tritanomaly, which makes it essentially impossible for me to distinguish pure blue from pure green, or to see green on a white or yellow background.  As a lot of my past work involved wiring up businesses for networks, I was forced to invest in a rather costly piece of test gear to catch errors when I mixed up the blue and green pairs.  :twisted:  I also can’t read a color schematic, and point-of-sale terminals in retail stores occasionally give me grief.

barnacle wrote:
If you are considering avoiding breadboards (personally, I hate them with a passion) here’s a PCB equivalent that accommodates both SOIC and DIP packages up to 20 pins, DIP 0.6", distributes power, has spaces for SM smoothing capacitors, and in the latest iteration has space for a couple of SM oscillator packages.
That’s the path I would follow if I were going to breadboard something.  PCB production has gotten sufficiently cost-effective to justify doing what Neil is suggesting.  I haven’t breadboarded anything in years, and haven’t done any point-to-point work on perf board for some 10 years.  If I want to test a concept, I whip up a PCB design and send the Gerbers off to JLCPCB.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Shopping list for 6502 experiments

Post by barnacle »

Thirty years in the BBC left me with a deep appreciation of the PSN-series multipair cables; solid core, standard telephony colours with tracers in pairs. Offcuts were very handy for providing short lengths suitable for wiring links. It was used to carry audio signals from microphone level and higher between studios and termination frames.

Sadly I no longer have access to offcuts, and no longer need to remember the bog-brown-slate colour code. :shock:

I've used Aislers and been happy with the results.

Neil
User avatar
gilhad
Posts: 85
Joined: 26 Jan 2024
Location: Prague; Czech Republic; Europe; Earth
Contact:

Re: Shopping list for 6502 experiments

Post by gilhad »

I do not know about Arduino Nano R4, but original Arduino (atmega328) can configure one pin as system clock (16MHz) and using timers it can use some other pins to automatically send any integer division* of that frequency (which is done in HW, not need to eat clock cycles from program code) (* 1/2, 1/3, 1/4, 1/5 ....).

If the rise/fall time requirement (<= 5ns) would not be met by Arduino itself, you may simply send that by nearly ANY gate with proper time values :)
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Shopping list for 6502 experiments

Post by barnacle »

BigDumbDinosaur wrote:
Quote:
Cat-5 has 8 wires; 4 white, and 1 red, 1, green 1 blue, 1 brown.
That is slightly incorrect.  The four “white” wires in CAT5 UTP (also CAT3 and CAT6) are supposed to be white with color stripes that match with the solid colors to which they are paired.
To clarify the clarification; the 'red' mentioned above is actually orange.

This dates back to the early days of telephony, and the bog-browslate I mentioned above. The twisted pairs are
  • Blue/blue white
  • Orange/orange white
  • Green/green white
  • Brown/brown white
and the fifth pair (in a larger cable) is Slate/slate white. Hence BOGBrownSlate, which is still used today, in the UK.

To keep things moderately simple, the 1-5 colours are repeated through the cable; the trace colours change with each group of five: white, red, black yellow violet. If the cable is more than fifty pairs, it starts again at the beginning; 100 pair cables were common. Which means you have to keep an eye on which colour lives with each group; I once had to rewire an entire studio (in Kiev!) where the original wireman had not realised that.

Neil
Post Reply