Design challenge: 6502-based EPROM programmer
Design challenge: 6502-based EPROM programmer
I mentioned on Chad’s (sburrow) newbie thread that we more experienced designers should help newbies with a 6502-based EPROM programmer that is cheap, easy to build, and contain no programmable components (not even boot strap EPROM). It is a good way to provide newbie with an EPROM programmer and teach about 6502 hardware/software and components can be reused for other projects. Please provide a link if that already been done and is public domain design. If not, let this be a challenge!
Bill
Bill
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Design challenge: 6502-based EPROM programmer
plasmo wrote:
I mentioned on Chad’s (sburrow) newbie thread that we more experienced designers should help newbies with a 6502-based EPROM programmer that is cheap, easy to build, and contain no programmable components (not even boot strap EPROM).
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: Design challenge: 6502-based EPROM programmer
(Thanks for the new thread!)
- Oneironaut
- Posts: 734
- Joined: 25 May 2015
- Location: Gillies, Ontario, Canada
- Contact:
Re: Design challenge: 6502-based EPROM programmer
I ask this not to sound snarky, but just curious...
Why would anyone out there consider a ROM these days, especially in a 6502 project?
I have done many 6502 systems now, and have never used or will ever us a ROM.
When I first started, I looked at using a ROM and then ran into the same that most do; expensive programmer, slow access time, fiddly to reprogram in a hurry.
So instead, I used a $1.50 AVR and its inexpensive programmer. I have also used PICs, although the AVR32 series cost the same and are fast enough to actually emulate a ROM in a 6502 system directly.
How I do it is by connecting the AVR in parallel to the SRAM running the 6502. Right away, you now have many options for RAM in sizes from 2K to 512K with speeds as good as 10ns and in DIP packages. At 10ns, you can get a 65C02 smokin' along at over 10MHz with ease.
To "Boot", the AVR simply pulls on the BE / RS line of the 65C02, and then dumps it's contents to the SRAM. After that, it tristates all pins and goes to sleep, allowing the 6502 to run fully from the fast SRAM and allow read/write to the entire 64K of space.
To program my code, I use one of the PC based assemblers (Kowalski is my fav), and then include the binary in the AVR program to be uploaded. Now I can code on the PC, and with a few clicks, see the 6502 running my code. This is also all done in circuit - no pulling a ROM for programming.
SO for a fraction of the cost of the ROM method, you get a MUCH faster system, way more memory options, and instant code and load.
And if all of that isn't reason enough to call now and order your ROMless system, get a lod of this...
Any of the 20MHz AVR's are fast enough to directly emulate ROM in a 1MHz 6502 system. So you can bypass the SRAM altogether and connect one AVR to the 6502. Plug in your Atmel-ICE, and you can program your 6502 system in less steps than a friggin Arduino! Code and load!
So I must ask... why bother with ROM at all, unless doing an OEM rebuild on some vintage gear?
Here is one of my many ROMless projects, this one running directly from the AVR. The programmer shown here allows me to code 6502 assembly on the PC, press one button and then see the code running on the 6502. The other ICs on the board support the AVR further, allowing VGA generation, so this is a complete 6502 SBC that can put out color video with only 4 ICs.
Brad
Why would anyone out there consider a ROM these days, especially in a 6502 project?
I have done many 6502 systems now, and have never used or will ever us a ROM.
When I first started, I looked at using a ROM and then ran into the same that most do; expensive programmer, slow access time, fiddly to reprogram in a hurry.
So instead, I used a $1.50 AVR and its inexpensive programmer. I have also used PICs, although the AVR32 series cost the same and are fast enough to actually emulate a ROM in a 6502 system directly.
How I do it is by connecting the AVR in parallel to the SRAM running the 6502. Right away, you now have many options for RAM in sizes from 2K to 512K with speeds as good as 10ns and in DIP packages. At 10ns, you can get a 65C02 smokin' along at over 10MHz with ease.
To "Boot", the AVR simply pulls on the BE / RS line of the 65C02, and then dumps it's contents to the SRAM. After that, it tristates all pins and goes to sleep, allowing the 6502 to run fully from the fast SRAM and allow read/write to the entire 64K of space.
To program my code, I use one of the PC based assemblers (Kowalski is my fav), and then include the binary in the AVR program to be uploaded. Now I can code on the PC, and with a few clicks, see the 6502 running my code. This is also all done in circuit - no pulling a ROM for programming.
SO for a fraction of the cost of the ROM method, you get a MUCH faster system, way more memory options, and instant code and load.
And if all of that isn't reason enough to call now and order your ROMless system, get a lod of this...
Any of the 20MHz AVR's are fast enough to directly emulate ROM in a 1MHz 6502 system. So you can bypass the SRAM altogether and connect one AVR to the 6502. Plug in your Atmel-ICE, and you can program your 6502 system in less steps than a friggin Arduino! Code and load!
So I must ask... why bother with ROM at all, unless doing an OEM rebuild on some vintage gear?
Here is one of my many ROMless projects, this one running directly from the AVR. The programmer shown here allows me to code 6502 assembly on the PC, press one button and then see the code running on the 6502. The other ICs on the board support the AVR further, allowing VGA generation, so this is a complete 6502 SBC that can put out color video with only 4 ICs.
Brad
Last edited by Oneironaut on Tue Oct 26, 2021 7:28 pm, edited 2 times in total.
Re: Design challenge: 6502-based EPROM programmer
You know, that might be a good question for a different thread...
- Oneironaut
- Posts: 734
- Joined: 25 May 2015
- Location: Gillies, Ontario, Canada
- Contact:
Re: Design challenge: 6502-based EPROM programmer
Or if you consider an AVR programmer and its target to be a legitimate ROM as I do, it would fit right into this thread!
Actually, once programmed, the AVR is indeed a ROM, and to build it, one just needs to bend a 6 pin header to fit a breadboard.
Actually, once programmed, the AVR is indeed a ROM, and to build it, one just needs to bend a 6 pin header to fit a breadboard.
BigEd wrote:
You know, that might be a good question for a different thread...
Re: Design challenge: 6502-based EPROM programmer
GARTHWILSON wrote:
or we could just provide the pre-programmed EPROM to run the programmer.
Oneironaut wrote:
Why would anyone out there consider a ROM these days, especially in a 6502 project?
I have done many 6502 systems now, and have never used or will ever us a ROM.
I have done many 6502 systems now, and have never used or will ever us a ROM.
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Design challenge: 6502-based EPROM programmer
plasmo wrote:
GARTHWILSON wrote:
plasmo wrote:
I mentioned on Chad’s (sburrow) newbie thread that we more experienced designers should help newbies with a 6502-based EPROM programmer that is cheap, easy to build, and contain no programmable components (not even boot strap EPROM).
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
- Oneironaut
- Posts: 734
- Joined: 25 May 2015
- Location: Gillies, Ontario, Canada
- Contact:
Re: Design challenge: 6502-based EPROM programmer
The "classical" aspect makes sense. This hobby is often a journey to the past more than anything.
I wonder how many 6502 "newbs" started like me, having plenty of 8 Bit "modern" micro-controller experience (Arduino included), but wanted to take a roll down memory lane? When I initially seen all of the 6502 projects, I was turned off by the ROM / ROM Programmer requirement. Even some of the 65C02 SBC's were ending up reliant on an ebay dinosaur to program horrendously slow (150ns) ROMS.
A modern solution using modern components would be great. The $1.50 microcontroller was the only answer I came up with, so I am throwing it into the ring, since most newbs probably have this hardware on their bench.
The other win is to have in-circuit programming. Learning 6502 assembly, I make more revisions per hour than I take breaths. Imagine having to pull a ROM each time!! Forget it! A modern solution for newbs MUST have in circuit programmability and allow assembling / loading from a PC.
Brad
I wonder how many 6502 "newbs" started like me, having plenty of 8 Bit "modern" micro-controller experience (Arduino included), but wanted to take a roll down memory lane? When I initially seen all of the 6502 projects, I was turned off by the ROM / ROM Programmer requirement. Even some of the 65C02 SBC's were ending up reliant on an ebay dinosaur to program horrendously slow (150ns) ROMS.
A modern solution using modern components would be great. The $1.50 microcontroller was the only answer I came up with, so I am throwing it into the ring, since most newbs probably have this hardware on their bench.
The other win is to have in-circuit programming. Learning 6502 assembly, I make more revisions per hour than I take breaths. Imagine having to pull a ROM each time!! Forget it! A modern solution for newbs MUST have in circuit programmability and allow assembling / loading from a PC.
Brad
plasmo wrote:
I’m with you regarding ROM-less designs, vast majority of my own designs are ROM-less with the help of programmable CPLD; they are smaller and faster but they are more complicated and distract from the study of 6502. Newbies want to see a classical microprocessor design. The proposed EPROM programmer is in fact ROM-less, surely we have the expertises to design a ROM-less (or Arduino-less, or CPLD-less) 6502 SBC?
Re: Design challenge: 6502-based EPROM programmer
I haven't attempted to use an EPROM, but I was using EEPROMs for a bit and it was pretty much trivial to program it with an Arduino. No eBay dinosaurs required.
It felt a bit silly to put a microcontroller in my system that's more powerful than the overall computer, which is why I didn't try a microcontroller to store programs.
It felt a bit silly to put a microcontroller in my system that's more powerful than the overall computer, which is why I didn't try a microcontroller to store programs.
- Oneironaut
- Posts: 734
- Joined: 25 May 2015
- Location: Gillies, Ontario, Canada
- Contact:
Re: Design challenge: 6502-based EPROM programmer
I can agree, and when I am trying to keep to era specific parts it does feel "dirty" to toss any kind of modern uC in the mix.
On a humorous note, all this talk got me looking on digikey for the going rate on 32k EEPROM. Perhaps I should buy a few of these?...
https://www.digikey.ca/en/products/deta ... 883/523530
That's only five bucks per kilobyte! How do they make it so cheap??
Doh!
On a humorous note, all this talk got me looking on digikey for the going rate on 32k EEPROM. Perhaps I should buy a few of these?...
https://www.digikey.ca/en/products/deta ... 883/523530
That's only five bucks per kilobyte! How do they make it so cheap??
Doh!
Agumander wrote:
I haven't attempted to use an EPROM, but I was using EEPROMs for a bit and it was pretty much trivial to program it with an Arduino. No eBay dinosaurs required.
It felt a bit silly to put a microcontroller in my system that's more powerful than the overall computer, which is why I didn't try a microcontroller to store programs.
It felt a bit silly to put a microcontroller in my system that's more powerful than the overall computer, which is why I didn't try a microcontroller to store programs.
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Design challenge: 6502-based EPROM programmer
With a quick look at Mouser, it looks like EEPROM is still quite a bit slower than EPROM.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Design challenge: 6502-based EPROM programmer
Oneironaut wrote:
Why would anyone out there consider a ROM these days, especially in a 6502 project?
Why not? ROMs are simple to interface to 6502 systems and are programmable by myriad devices. The same can't be said about using a microcontroller. Many require that you purchase the manufacturer's programming rig, so what's the difference between that and buying a standard E(E)PROM burner?
As for the time aspect, I've got bunches of AMD 27C256-55 EPROMs that I can erase en masse, so it's not as though I only have one ROM that I have to erase and reprogram before I can test changes. Due to having a ZIF socket plugged into the ROM socket, I can swap ROMs in under a minute.
With that said, I don't make code changes all that quickly—I scrutinize what I've written so I can catch errors. I've never measured my productivity in terms of revisions per minute. This habit came from years of writing 6502 assembly language on systems that took their time about assembling code. So those ROM changes don't happen that often and when they do, it's once I have a strong feeling things are going to work.
So I see no particular advantage in complicating the design with a microcontroller just to avoid using a ROM. Also, we're talking about newbie usage. Do we really want to require a newbie to rig up circuitry that keeps the MPU in the gate until the microcontroller has programmed the SRAM at the ROM's address? BTW, once programmed with the firmware, that SRAM should be write-protected to avoid little contretemps, such as wild writes, that might corrupt the firmware and crash the machine.
x86? We ain't got no x86. We don't NEED no stinking x86!
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Design challenge: 6502-based EPROM programmer
GARTHWILSON wrote:
With a quick look at Mouser, it looks like EEPROM is still quite a bit slower than EPROM.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Design challenge: 6502-based EPROM programmer
BigDumbDinosaur wrote:
So I see no particular advantage in complicating the design with a microcontroller just to avoid using a ROM. Also, we're talking about newbie usage. Do we really want to require a newbie to rig up circuitry that keeps the MPU in the gate until the microcontroller has programmed the SRAM at the ROM's address? BTW, once programmed with the firmware, that SRAM should be write-protected to avoid little contretemps, such as wild writes, that might corrupt the firmware and crash the machine.
Once I make code changes, I can upload to the device and have it completely running in about 10 seconds. I don’t have any EPROMs or a burner and no real urge to get any.
Total cost under $10, including all components and the Pico. Maybe I’m not your average newbie, I dunno.