Replace your 6502 computer's RAM or ROM in seconds with this! (ROMulator)
Vložit
- čas přidán 24. 06. 2024
- We've had ROM/RAM replacements for the Commodore PET for a little while now, but they don't hold a candle to what this can do for all 6502 based computers. Let me demonstrate the awesome capabilities of this on my first computer, a Commodore VIC-20.
--- Video Links
You can buy an assembled ROMulator here:
bitfixer.com/
Schematics, source code and instructions here:
github.com/bitfixer/bf-romulator
Using the ROMulator to repair a PET 2001-N:
• Fixing Jeff's Commodor...
Adrian's Digital Basement ][ (Second Channel)
/ @adriansdigitalbasement2
Support the channel on Patreon:
/ adriansdigitalbasement
-- Tools
Deoxit D5:
amzn.to/2VvOKy1
store.caig.com/s.nl/it.A/id.16...
O-Ring Pick Set: (I use these to lift chips off boards)
amzn.to/3a9x54J
Elenco Electronics LP-560 Logic Probe:
amzn.to/2VrT5lW
Hakko FR301 Desoldering Iron:
amzn.to/2ye6xC0
Rigol DS1054Z Four Channel Oscilloscope:
www.rigolna.com/products/digi...
Head Worn Magnifying Goggles / Dual Lens Flip-In Head Magnifier:
amzn.to/3adRbuy
TL866II Plus Chip Tester and EPROM programmer: (The MiniPro)
amzn.to/2wG4tlP
www.aliexpress.com/item/33000...
TS100 Soldering Iron:
amzn.to/2K36dJ5
www.ebay.com/itm/TS100-65W-MI...
EEVBlog 121GW Multimeter:
www.eevblog.com/product/121gw/
DSLogic Basic Logic Analyzer:
amzn.to/2RDSDQw
www.ebay.com/itm/USB-Logic-DS...
Magnetic Screw Holder:
amzn.to/3b8LOhG
www.harborfreight.com/4-inch-...
Universal ZIP sockets: (clones, used on my ZIF-64 test machine)
www.ebay.com/itm/14-16-18-20-...
RetroTink 2X Upconverter: (to hook up something like a C64 to HDMI)
www.retrotink.com/
Plato (Clone) Side Cutters: (order five)
www.ebay.com/itm/1-2-5-10PCS-...
Heat Sinks:
www.aliexpress.com/item/32537...
Little squeezy bottles: (available elsewhere too)
amzn.to/3b8LOOI
--- Links
My GitHub repository:
github.com/misterblack1?tab=r...
Commodore Computer Club / Vancouver, WA - Portland, OR - PDX Commodore Users Group
www.commodorecomputerclub.com/
--- Instructional videos
My video on damage-free chip removal:
• How to remove chips wi...
--- Music
Intro music and other tracks by:
Nathan Divino
@itsnathandivino - Věda a technologie
after 40 years we got the VIC-20 Dev Kit.
I am enjoying wondering what is the cross-section of people who know both what DIP sockets are, and what anti-corrosion sacrificial anodes are.
*Slowly raises right hand*
@@heskrthmatt Me too!
Everyone who owns a boiler should know what a sacrificial anode is.
Yup. Live on the coast and I like computing.
*Raises hand*
Your LIST at 25:01 should be showing '10 PRINT "BAD KITTY!!!"' but it's actually showing '21324'. Yet the program still runs correctly. That's a really fascinating symptom.
This thing is what's called an In-Circuit Emulator. They used to be really popular for software development in general (if you could afford the high prices they had back in the day). They fell out of favor in systems that got faster because the old way of doing it, with less individually capable chips, usually required a ribbon cable to connect the CPU socket to an external box of electronics into which the CPU would be plugged. As clock speeds got faster, this started having problems with latency, timing, and signal integrity and fell out of use for things like PCs, but are still very useful for embedded systems (which are generally running at much slower clock speeds because they don't need or benefit from using a blazing fast 64-bit CPU over using an 8-bit CPU running at a couple of MHz). With virtualization on modern CPUs, you can produce a lot of the same debugging capabilities in software as ICE hardware once provided.
Do it again! But with a Pi Zero W. Solder your own pinheader cable from the Pi. Power the Pi from inside the computer. Close up the computer. Now you have WiFi access. There should be a way to use a transistor to pull the CPU reset or power to the other state for a "soft" restart when it hangs. You could also try a transistor to toggle the CLK on/off for the CPU. Stop the clock, load new RAM data, start the clock. Maybe prevent the hang in the first place?
This is all speculative. You have the hardware.
Pi Pico more than enough, an it small
You can't stop the clock on a 6502. The datasheet shows that the minimum clock cycle time is 40uS (25kHz). Anything less than that and the CPU will not work properly.
My God Father was the hardware engineer behind the C64, "Freeze Machine". This awesome device is the modern equivalent of how the Freeze Machine worked. I remember him remarking, "I couldn't believe no one had thought of it before!" The royalties earned him the deposit on his first house.
What a fantastic tool, I can already tell we will see this come out again.
good prediction, adrian just announced that he'll use it to fix up a PET 4016
@@mariusberger3297 I was literally watching the video when you made this comment! Hysterical.
Please demo this on other 6502 machines in your collection...! It's awesome for the VIC already, but I'd love to see what it's like on the Apple ][, for example...
Nice. Can't wait to see one of these in action on a BBC Micro at some point. Thanks for the video, Adrian.
The BBC has the ability to page the memory between 0x8000 to 0xBFFF.
Supporting up to 16 banks of 16k,
Described as "Sideways ROM" though later models, such as the B+ and Master, used the address space for RAM.
How amazing is this! Thank you Adrian for showing all the features (or at least A LOT OF THEM)!
This thing is FREAKIN' AWESOME!!!
Great technical video, as always, Adrian!!!
If only I had one of these "back in the day"!!! :)
I have one of the beta test units of the romulator and used it to work on early Atari arcade games.. It was great for trouble shooting . (Night Driver and Football) It currently lives in my Pet 2001-8. Bitfixer also makes a nice sd card drive emulator that also supports wifi loading from a webserver.
That's awesome -- I was simply amazed at how useful it is
Wow, what a project! Thanks to the author and to Adrian for spending time with it.
Wow!
And not cost prohibitive.
Amazing!
Take my Canadian Pesos, please!
Shipping to Canada is only $13us, so total cost for one shipped is $43us.
If I didn't learn anything here, the tip of using a sacrificial socket for shipping, that was worth my time!
Neat. Can imagine this dangling from the back of my pi400. Great package. Thanks for the video as ever Adrian!
What a genuinely fantastic device and tool. At a great price too - I absolutely must get one of these assuming there hasn't already been a run on them. Apart from all the excellent features Adrian has demonstrated with this being a fully programable device there are so, so, many other potential applications.
I hope the designer sells a great many of these; both as a reward for his hard work and generosity and for a community to develop around it.
Thanks again for showing us another bit of interesting kit, with such enthusiasm :)
This is absolutely awesome. Thank you for sharing this sir. So much fun watching this.
I've never owned a 6502 computer and probably never will but I still find these videos intriguing.
Good episode, ordered one to try and rehab my Commodore LCD.
This is awesome. By 'this' I mean the joy you get by checking this out. Never change!
wow, a really great product it seems!. I just wanted to say thank you for going to all that effort to expand on what can be done with it etc. I really appreciate your effort. Cheers! 👍
WOW, that Romulator is so cool. Really good video. Thank you
With a bit of fiddling, that'd be a great way to export BASIC programs as well
You have a great avatar.
Adrian, I couldn’t think of a better birthday surprise than seeing you posted a video!
That's so clever.
Kind of ironic how you working on old tech inspires great new ideas. Well done to the creator and thanks for the explanation Adrian. 👍
Classic case of does twice as much for half the cost. This thing is quite amazing.
Un video stupendo,realizzato in modo esemplare,grande il VIC 20.ben fatto adrian
This device is amazing, had my smiling all the way through. As always Adrian, thanks for sharing.
I was chuckling along with Adrian the whole time he was editing the ROM, made my day.
Excellent demonstration of a very cool tool. It would be very interesting to see how people use this in creative ways.
Agreed. The possibilities, using this brilliant device, are just about limitless. Anyone that still plays around with the 6502 processor hardware could really push their project to the limits with one of these units. This device reminds me of way back in a previous life I had. I used to employ "In Circuit Debuggers" ICP/ISP dongles, for programming/reprogramming Altera and Xilinx FPGA configurations, for modifying the mapping of first generation Color LCD panels for the private aircraft industry. Really cool to see this in action today. Took me back 25 years... just like that! Thanks a lot for the great video Adrian. I really enjoy geeking out vicariously, through your awesome CZcams channel. Fred
That is really a nice gadget to have. Thanks for reviewing. I hope there will be 6510 version.
This is genius!! I love it. Great video, thanks.
Yo, Adrian. Great video on an interesting tool.
I'm over in the east bay. Nice to see a Bay Area shout out!
Adrian,
I see this as a nice way of modding the 1541's as well.
have multiple versions of the 1541 ROM's and JiffyDOS in it as well as the memory map so you could give the 1541's extra RAM for running stuff on the drive and custom backup utilities.
Nice video Adrian! Considering VIC-20, next step could be to have a VIC chip emulator on raspberry pi to use it as video and audio pass through, according to SPI bandwidth.
Genius idea! I'm constantly flabbergasted at the uses people are coming up with for the Pi! That Amiga HDMI hack was awesome of course, but the potential of this implementation for changing your Commodores ... well the sky's the limit! Complete custom Rom, Different language to basic! C64 Forth :D
I hope there comes a solution to help with the VIC Screen Memory DMA though.
Thanks for another great video! Very inspiring!
That is truly impressive!!! Tempted to get this for my 2nd Vic-20, just because... If I do, might look at replacing the dip switches with a header so I can bring the switches outside the case for easier access... Also, 9 dislikes? Probably Z80 fans.... ;-)
Z80 version is under development!
@@bitfixer6502 Don't encourage them! :-)
Too Bad Jokes about dislimes can't be Made anymore due to CZcams being pissed about the amount of dislikes on Last years rewind.
That's a very interesting device! I put it on my to do list. But I do have one complaint. When you started reading the letter I was hoping you would read using Casey Kasem's voice, "and here's a letter dated from 1973..." 😂
Love the Tandy floppy sleeve to your left. 😀
I read about a ZX Spectrum developer back in the day used a TRS-80 III or IV with special custom hardware to dump the contents down to the ZX and do all the development on the TRS-80 a great way to speed up development and similar to the capabilities this Romulator provides today with the RPi. I ordered one so thank you for pointing them out!
Most devs from '85 onwards used Amstrad CPC128s for the same purpose.
This is awesome, bagged one. :)
Romulans and Romulator´s the two of the best friends. Anway great video as always. Must say the ROMulator seams to be damn nice thing to own.
Wow, what an excellent tool and video! Amazing! Would like to see how this works on your Apple II
To me, what's so exciting about this product is its the first time I have seen bare metal and a Raspberry PI working in concert to produce a result. It's great to see us moving beyond emulation and just makes the original hardware that much more viable.
Really good I remember building something similar in college in the 80's and just one memory chip cost as much as that board and mine had 4 chips on two Euro cards100mm x 160mm. I worked on my old vic20 as at home had a C128 at home. This brings memories back as still have it but never used since leaving college probably easier to buy this product instead of getting my old one working again as wire wrapped and probably some of the wires damaged.
Great episode.
It seems to me that this could be very useful in designing a new 6502 based computer, especially when writing the ROM code.
Yep, this is a modern implementation of a classical debugging tool called an In-Circuit Emulator. They fell out of use due to signal problems on PCs as they got faster, but embedded systems, with their usually slower and simpler CPUs still have them as a major tool.
David murray would love this tool, i hope hes aware of this.
He's one of Mr Black's top fans so he will be soon if he's not already got one.
I'm so amazed that I'm speechless!
This is like save-states for hardware. So freaking cool for you people smart enough to use it.
That's a cool project!
I am actually amazed how many great open source projects are out there for the Commodore-Amiga series computers. I wish it were like that for the Sinclair. There are amazing designs for it too, almost in the same amount, but unfortunately 95% of them are commercial and a tad expensive compared to Commodore projects.
I knew FPGA’s were flexible but this is a whole other level. No need for custom silicon or burning ROM’s. just feed the FPGA the right instructions and it does all that for you.
This is the kind of thing that to this day is a programmers dream. Real time debugging on real world hardware. Being able to halt, resume, and step through as you please.
Modern hardware is really bringing out the best of the 8 bit era
This is so cool!
I would buy this if I had a vic20. Amazing stuff!
Great video. I would really like a device like the ROMulator in my Acorn Electron.
I've just come here from the future... and, yes, indeed... it is very cool and very exciting! ;)
In the olden days, we used a lot of CP/M machines and they would load their basic from disc to RAM.... so the game of altering error messages and basic prompts is well known to me. We would spend ages trying to work out obscene versions of error messages that had the same number of characters as the "clean" originals.
Such an incredible project!!
Open Source FTW
Couple decades back I made a project called the EPROM emulator. This device had SRAM and logic to load the contents by copying binary file to LPT1 port with a computer having a parallel port and a compiler for the target. That thing was so nice when coding and testing code. Mostly used it with Intel MCS-51 family MCUs, but it is universally usable with any system with similar memory. This thing looks like a modern replacement of what that Elektor magazine design was.
Oh this is a nifty device for sure.
I could see this device being used in not just the VIC-20, but the 1541 drives to give them more RAM as well for backup programs for larger buffers.
It would be nifty if there was a Motorola 6809E version of this. For things like the Vetrix or Color Computer systems.
This is really wild!
There definitely needs to be a 6510 version.
This will come in handy even for save states!
This might be insanely useful for game development. With the RPi sitting between a workstation and a real target system, it could be used to push a build to real hardware. No disks, SD cards, or special cartridges required. Just map it to wherever it's supposed to load into RAM from disk, and maybe hack an interrupt or KERNAL vector to auto-run. A spare I/O pin on the Rpi could also be rigged to the cartridge port to do a soft reset, side-stepping any CPU freeze problems.
I had to buy that thing. Thanks for showing this marvelous tool. A real bargain for €40.49 via PayPal with shipping to Germany.
oh my this is such a cool solution...
Love your MECC shirt.
Awesome kit
Awesome tool. It's like Action Replay!
Wow, looks great! I usually use a bus pirate or TUMPA, with so many goofy commands to make something work. Ah, the TUMPA is the Tiao Usb Multi Protocol adapter.
But even I'm looking at FPGA for the future, heck you can get them able to capture at ghz speeds! Hoping for an affordable device for snagging lcd i/o signals. So someone could make an rgb/hdmi type of thing, only for lcd screens. Like a plug & play portable screen kit.
I can see this being a basis for a modern version of something like a Fluke 9010a. No need for the 9010 itself or the processor pods when you have a raspI for control. I wonder if it could be configured to test ram, roms, and the vic. Would be cool if it could be reconfigured for other processors too. Handy for arcade collectors for troubleshooting boards.
The ROMulatot is really cool! One more advancement would be the possibility to emulate the 6502 CPU itself.
When I saw the thing, I thought it was a device that allows you to use 6502 for 6510. If only there was such a thing.
The DIP socket isn't to protect the pins during shipping.
You have to leave it on as otherwise the long pins on the Romulator damage the DIP socket on the motherboard.
A great demo and explanation of a nice device. Purely for myself I've designed a 6502 circuit board and the romulator will be a useful device for finding the inevitable bugs in my layout and assembler code. I've made my board expandable so if I do design any expansions the romulator will help me debug them too.
BTW thanks for all your content! I usually watch your videos while I'm cooking our evening meal, so depending on what I've chosen to cook I might watch your content in 2, 3 or even 4 episodes across as many evenings. They usually slice up quite nicely
Used on an Atari 8-bit, the ROMulator becomes a tool like the Pro Action Replay cartridge such as for the PlayStation and with a utility you'll have to write, can hack games.
Wow. Another cool feature with the Ram Passthrough. A memory test! You could literally determine the failed BIT after a few runs just cycle what the CPU writes to ram and then read the board ram and compare to the FPGA's ram. That is cool.
I'd be curious to see what you could do with that in a 1541 and the right fpga programming... IE Rasp Pi connected could auto-download any disk inserted. An auto-image maker. Or a bit level disk copy.
I'm impressed!
And actually as I think about it, you could build a near infinite ram space.
IE grab a chunk, 0x9000-0x9FFF, lose the first four bytes to use as banking addresses. So if you poke 0000, the chip switches in the next bank of ram.
An REU of sorts.
You could swap it faster than the cpu can request it. Man. That is a really cool gadget!
This one is fascinating , very good- seen all sorts coming out now but I am in the arcade world and I got boards that have Motorola M6809 on them instead of 6502, so yet to see projects like this but not mention of the cpu that I often see. Is there any projects your aware of to plug-in and so I could debug arcade boards ?
"Well hello" - Adrian, the Leslie Philips of the retro world. ;-)
FWLIW: As this board is FPGA based and is already capable of 'wright-through' a small update to the code should allow for full 'save state' functionality.
Dear Adrian and Basement community , how are you'all . I have discovered a Quantum effect in comparing circa 1980s computer motherboards and the post 2021 era motherboards . The effect is : those old motherboards had components which are difficult to desolder but easy to resolder ( if you do not have a desolderring station , which again requires high tech vacuum pumps and specialist equipment ) . Then post 2021 we have components which are easy to desolder ( because now we have the desolderring stations ) , but which have tiny little contacts which are difficult to resolder .
The romulator could replace hardware no longer available or port it to different devices. From the description it should be able to provide a floppy drive with something like dolphin dos including the extra RAM. I think parallel cable sockets are still available. Or even give a SFD1001 (Commodore 1MB 4133 Blocks free floppy drive) which already has a parallel bus extra RAM and the ability to store a whole track. Probably the necessary code to read, decode and send the track could be extracted and adapted from dolphindos or one of the other conversions for the 1541.
Amazing. Hopefully somebody makes something like this for Z-80 too.
Z80 version in development! The fpga board will be reusable from the 6502 version, so you would only need to replace the interface board which is pretty cheap.
wish i had that thing 30 years ago. Like to see c64 on the bench with that
Bitfixer i good guy just got a sdpet max and love it
I was actually thinking of making something similar for the C64, only a cartridge solution. Mainly for game development and testing though. The product you showed here is nice but it lacks software tools. The ability to load/save only a part of the memory would be handy, along with a monitor to break, step and change memory on the fly.
Cheers,
It is open source. Do it. There is easy access to 6502 monitor tools online. Use/patch that for more features. I’d made something similar for z80 cpu with an arduino board. Not hard to do.
When I made ZX spectrum in CPLD and independant Z80 with SRAM, there was simmilar effect. The video subsystem can crash or you can reset it while program is running. And game still runs. Even I reconfigured CPLD while running without crash. The only thing was important- cmos CPU with static clock available.
Might get a bit tricky as far as memory configs go when you set registers to change where screen memory is located and if you reprogram the character set.
What about 65C02 (Atari XL/XE, has a new HALT pin) , 6510 (C64, has extra I/O pins), etc?
Hi Richard,
Got a new version of the board out now which *should* support the 65C02 as well as 6502, but need to test it a bit more before making that claim fully!
@@bitfixer6502 Maybe you meant “65C02 as well as 6510*” ?
I think you mean 6502C, which is the Atari XL/XE specific version of the NMOS 6502. The 65C02 is a CMOS version of the NMOS 6502 which uses less power and has a number of improvements.
@@jeroensmaal You are correct sir! The thing about MOS' labeling was that it was as clear as mud. Yes, the Atari Sally chip was a 6502C. D'OH!
Pretty amazing. I'd also like to know if this works on the BBC micro.
this is just for microcomputers? being able to use this on an NES as a real time, real hardware debugger would be amazing for homebrew development on actual hardware instead of emulators
I don't see any reason it wouldn't work but debugging on hardware I think it would be just as possible and less invasive to make a man-in-the-middle cartridge like the game genie and id be surprised if no one had done this.
I was thinking of the same thing, shouldn't be too hard to implement an adapter board that leaves the APU and other functions intact. Super curious and tempted to find out.
@@jwrush Should be able to do it with a Pro Action Replay, but those are difficult to come across and a lot more pricey. Still something interesting to look in to either way.
While the NES does run 6502 instructions, the CPU is only based on a 6502, so it's not pin-compatible. You could modify the romulator schematic to be compatible, but you're not going to get complete functionality because the NES's CPU includes the audio processor which means a small chunk of the memory map is inaccessible outside the CPU.
@@StarkRG The NES chip uses a core whose layout was copied directly from the 6502, except with the patented BCD arithmetic section disabled, so I'd describe it as being more than "based upon" the 6502, but the key point remains that the build-in audio and DMA subsystem will complicate things.
man I love your name, "Adrian Black", sounds like a villain from resident evil:
WAIT, I GOT IT!;
Adrian Black;
Villian for Umbrella Corp,
has been building traps for Umbrella Corp to stop STARS and BSAA since the company first launched, never looked older due to being accepted by Uroboros, always happy, is disguised by his youtube channel Adrian's Digital Basement.
Upgrading the BASIC on a ViC-20 would be one of the first things I'd want to do with this. Not sure whether V7 would work on it, though.
Userful, something this is useful for users.
I think that Adrian has motified a new word
Adrian, do you have a VIC20 config available for download ? or a Pi3 SDcard image maybe ?
35:27 - "It's the motherboard under the hood! It's going zeroes!" - Firesign Theater "Give Me Immortality or Give Me Death" (1998)
For regular troubleshooting, I'd add a ZIF socket for the 6502.
I order this now. I am 6502 fun
What an amazing device! Value for $$ for sure!
Just noticed the program listing at 25:02 doesn't look quite right. I wonder what happened there?
isn't the command "print" represented by a one or two byte token, and line numbers stored as hex but list as decimal equivalent. something like that. so when you go to the basic program space, you need to decode it like the basic rom does. oh, the plain text parts are shown verbatim.
@@fumthings I'm not sure, I'll have to do some checking.
I just noticed that when Adrian typed "LIST" after reloading the RAM via the Raspberry Pi console, the program wasn't the same.
@@michaelcarey sorry, i misunderstood. i think someone else suggested corruption of the bytes, the program still worked as before but line 10 is no longer visible (i think there was a commodore trick that does this) the next line number appears as a five digit number with no command following it , then line 20 appears as normal. maybe the fpga or Rpi didnt work properly, also the power cycling of the vic20 may have left some random data. Adrian said that when you power cycle it clears the program listing, i think maybe it only erases the first few bytes so the program listing is empty but the ram may still contain random data if it is power cycled quickly. whatever the cause, i suspect if Adrian performed that step again (maybe with a proper power cycle) it would perform properly and the weirdness would disappear. As it appears he didnt notice and didnt re video this part, the little weirdness slipped through.