Ruud's Commodore Site Home  Email

RAM expansion for the VIC-20




The story

The original VIC-20 only contains 5KB of normal RAM plus 1024*4 bit of colour-RAM. This is not very much. A question one can ask is: "Why 5 KB, and not 4 or 8?" I don't know. But it gave me also some headaches when I wanted to expand my VIC-20 in the early days. But some things have changed since then. One of those things is that nowadays there are 32*8KB and 8*8KB RAM-ICs available. My design is based on using one of them each.
32 and 8 make 40, what about the missing 5 KB? I simply don't use them. Theoretically I could dream up a design which only used the needed 35 KB but then I would end up with a lots of ICs. Now I only need five.


Theory

The schematics will reveal that we only need 5 parts and some wires. U2, the 32KB RAM, covers the first 27 KB, U3, the 8KB RAM, covers the area $A000-$BFFF.

How are the RAMs selected? At the Expansionconnector we find several signals one can use for selecting external RAM: RAM1..3, BLK1..3 and BLK5. Combing RAM1..3 and BLK1..3 using two 4-input AND-gates (74LS21) results in the needed ChipSelect signal for U2. All we need to select U3 is BLK5.

One day someone asked me to change my first design so it could be used as a cartridge as well. I first was puzzled by this question until that person pointed out to me that the bus of the VIC-20 lacks the addresslines A14 and A15. It turned out that my design only needed some rewiring. The idea is to generate A14 out of the signals RAM1..3 and BLK1. When one of these signals is (L), A14 of the 6502 must become (L) as well. In all other cases A14 leading to U2 must become (H). This covers the fact that when BLK2 or BLK3 are (L), A14 must be (H). In all other cases, like addressing the stack ($01xx), A14 at U2 will be (H) as well but in those case no RAM-select signal is active (L) ie. U2 is not selected and therefore not of any importance.


Construction

The next question one can ask is: "Where do we place the ICs?" An obvious answer is to build a cartridge. But that has two disadvantages: Reading item 2 you probably already guessed there is an easier solution. But some people will consider this as "quick and dirty". The method is nothing else then piggy-backing the needed IC on top of the existing ones. The choice is up to you.





Having questions or comment? You want more Info?
You can email me here.