• Please review our updated Terms and Rules here

Commodore 64 ram replacement

giobbi

Veteran Member
Joined
Dec 23, 2012
Messages
987
Location
São Paulo country, Brazil
Hello my friends,
I'm wondering if it's possible to replace the 8 x 4164 RAM ICs (8k x 8 ram) with 2 x 62256 (32k x 8 sram). I found no DIY solutions for C=64 ram replacement, and since I have a lot of these ICs, I loved to make a PCB that fit onto the 8 RAM sockets, using two modern ram ICs in DIL package...

Any idea, any schematics?

P.S. Just in case: if you have any other schematics for a C=64 RAM replacement, even using other RAM ICs, it would be awesome if you can share them.
 
Last edited:
Isn't the 4164 a 64k x 1 bit? Not 8 bits. I am sure this can be done, but it won't be simple.
 
Yep. I'm trying to find a way to replace the original old RAM with some more affordable and modern, but I didn't find any tutorial/guide on-line, only commercial products...
I looked at my toolbox and I found many 62256 ICs so I asked here because there are cleaver guys that usually come with a solution ;-)
 
You basically need some circuitry that latches the RAS and CAS at the right times to generate the appropriate linear address (and chip select if you e.g. use 2 32KB SRAM chips). This isn't particularly difficult. The biggest challenge will be laying out the PCB so that you can hit all 8 sockets correctly.
 
I'm wondering if it's possible to replace the 8 x 4164 RAM ICs (8k x 8 ram)

Ugh, it makes my teeth hurt when people call 4164's "8k RAMs". Per @tradde , yes, the geometry of these DRAMs is 64Kbits arranged as 64Kx1bit, not 8Kx8.

So the short version is, sure, anything's possible, but the question is how much damage you're willing to do to the PCB of your computer to make it happen and/or how much additional circuitry are you willing to hang off the DRAM sockets. The main problem here is that DRAM chips like those in the C64 have multiplexed address busses, unlike the SRAM chips you found, and turning a multiplexed address into a non-multiplexed one requires moving parts.

Looking at the schematics for an "8 RAM chip" C64 (later ones used two 64Kx4bit chips instead; FWIW, that doesn't simplify the problem at all) one approach you could take if you really wanted to go hog wild cutting up and destroying your computer is you could remove the two 74LS257 multiplexers at U13 and U25 and run the address lines A0-A15 from their sockets directly to a daughterboard that holds your 62256 chips. That should solve the multiplexing problem since you'll be getting the non-multiplexed version of the address from upstream of the multiplexers that mix it up for the DRAM chips. Then you rip out all the sockets for the original RAM chips run a jumper wire between pins 14 and 2 on the sockets, and run a wire from those bridges to your daughterboard; these are your data lines D0-7. Then you're going to need a couple more things: you'll need circuitry to adapt the RAS/CAS/WE lines used by the DRAM into the correct control signals for the SRAM, and you'll also need some circuitry to watch one of the address lines (A15 is the "right" one, but strictly speaking it doesn't matter) to split the 64K address space in two so half of it can be supplied by each 62256. It won't be that complicated but I'd need a couple minutes to write it all down and work out the equations for this; if you don't mind programmable it should be trivially easy to fit it all into a single GAL, but if you prefer discrete circuitry I think it still might be be doable in a single package.

(* Actually, after looking at the design linked below I think we can get away with no circuitry to adapt the control signals, but we still need to do some chip select magic.)

If you'd rather not destroy your C64 mainboard and go with a daughterboard that plugs into the DRAM sockets then you're going to need a circuit to de-multiplex the address bus in addition to adapting the control signals. How hard this is depends on the exact CAS/RAS waveforms of the target system; doing a little googling I found This Github repo for a C64 SRAM converter and it verifies that a pretty trivial circuit works for the demultiplexing in a C64. Two chips in addition to the SRAM are enough for this design; it has a 74573 buffer and a 74F32 OR gate. The issue for you, though, is that this design uses a 128K SRAM (wasting half of it) instead of a pair of 32K chips. You're going to have to add the same circuitry as we need above to do chip select. It's not going to be a lot, but it's a consideration I guess. (Again, a GAL would make it trivial, but I think the worse case with discrete circuitry only adds one more chip.)

So... yeah, you can do it. Looks like people on Etsy are selling premade adapters with the RAMs already installed for less than $30, but if you want the satisfaction of DIY-ing it go for it. Assuming you don't want to go with the "rip out the multiplexers" option just copy the c64-sram design except lay it out for 8 sockets instead of two, and add some chip select circuitry. The original design turns on CS1 for its only RAM chip when both CAS and RAS are low; FWIW, I kind of doubt CAS is ever low by itself in the C64, if I'm right about that you could use two OR gates, one for each chip, that combine CAS with either the plain or inverted version of one of the address lines; I'd probably use the output side of one of the ones latched by the 74573.(*)

(Or if I'm wrong about CAS never being low without RAS just use a third OR gate, there's four of them in a 7432, to combine CAS and RAS and feed that *combined* signal into the ORs that gate on the address line. For the inverted/plain versions of the address line if you can surface-mount solder there are tiny single-gate versions of the 7404 inverter, but if you're stuck on through hole it's not the end of the world to use a whole one.)
 
Ugh, it makes my teeth hurt when people call 4164's "8k RAMs". Per @tradde , yes, the geometry of these DRAMs is 64Kbits arranged as 64Kx1bit, not 8Kx8.
Sorry for that, my fault.

Yes, I've found it too but it's for the latest rev., the C=64 I wish to replace the RAM is an older rev. with 8 ram ICs. All the chips are on socket (it's a Sixty Clone, actually).

Thank for the great explanation; I'm not sure I've the knowledge to understand 100% of it, but it cleared some doubts I have, at least. Of course I haven't the knowledge to transform your explanation in a project, unfortunately :-(
 
All the chips are on socket (it's a Sixty Clone, actually).

To tell the truth, I can’t help but remain perpetually baffled by the popularity of those “exact clone” replacement C64 PCBs. Is the fiberglass PCB really a common point of failure compared to, well, all the custom chips that need to be pulled from original C64s to populate them?

It seems like at the very least it would make sense to design these boards to use as many currently-available parts as possible? You can still buy DIP package SRAMs, for instance, you could trivially tweak the design to use a single 128K chip instead of the DRAMs and eliminate the need for the address multiplexer chips in the process.
 
Thank for the great explanation; I'm not sure I've the knowledge to understand 100% of it, but it cleared some doubts I have, at least. Of course I haven't the knowledge to transform your explanation in a project, unfortunately :-(

I could draw a schematic based on the C64-sram to add an address decoder if that helps (but no guarantees, obviously), but laying out the PCB and all that will still be a big ol‘ hassle. Like I said, if you Google around you’ll find sellers of these boards formatted to fit the 8-chip boards as well, it might make sense to just buy one. The cut-price PCB mills offer deals like five or ten copies of a small board for just $5 or whatever, but they tack $20+ shipping and handling on that, so DIY won’t really save you money. (Unless you really need five or ten of them.)
 
To tell the truth, I can’t help but remain perpetually baffled by the popularity of those “exact clone” replacement C64 PCBs. Is the fiberglass PCB really a common point of failure compared to, well, all the custom chips that need to be pulled from original C64s to populate them?
I got a very damaged board, so it was really useful; and it was funny to build :)
I could draw a schematic based on the C64-sram to add an address decoder if that helps (but no guarantees, obviously), but laying out the PCB and all that will still be a big ol‘ hassle. Like I said, if you Google around you’ll find sellers of these boards formatted to fit the 8-chip boards as well, it might make sense to just buy one. The cut-price PCB mills offer deals like five or ten copies of a small board for just $5 or whatever, but they tack $20+ shipping and handling on that, so DIY won’t really save you money. (Unless you really need five or ten of them.)
That's not something I really need; I haven't a RAM issue, actually and I still have some spare 4164, just in case. What I was trying to do is to "convert" someway my Sixty Clone in a "modern" setup that doesn't depend on old ICs. Just for fun, no need to do that, actually. I already build a replacement for PLA, SID, 6510, all the ROM...
I really appreciate your offer, and I wish to say a big thank you for that; but what I thought it was an easy task is becoming something I can't manage, or at least something that could take a lot of time. I have to find some other project (I didn't find any open project for the 8 ram chips board, unfortunately)

Honestly in the future I could need some replacement board (I have some original C=64 too in many flavors) but I hope that I'm far from that.
Thank you so much for your help!
 
Back
Top