RAM expansion for the VIC-20
The storyThe original VIC-20 only contains 5 KB 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 32K*8 and 8K*8 RAM-ICs available. My design is based on using them both.
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.
TheoryThe schematic 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 Expansion connector we find several signals we can use for selecting external RAM: RAM1..3, BLK1..3 and BLK5. Combing RAM1..3 and BLK1..3 using three 3-input AND-gates (74LS11) results in the needed chip select 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 address lines 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.
ConstructionThe 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:
- It does not allow you to insert another cartridge unless you have an expansion board.
- It is a lot of work to build the cartridge.
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.
You can email me here.