Back to Projects

BLocK Memory  

The Vic-20 had space for 4 blocks of 8K memory: BLKs 1-3, a total of 24K, were contiguous, and could be used for BASIC Programs. BLK 5 was most often used for auto-starting cartridges -- usually games -- that took complete control of the machine.

I used three 8K sections of a single 32Kx8 Static RAM (62256) to fill BLKs 1-3. The remaining 8K of that SRAM I put "under" the Kernal (That's how Commodore spelled it!) Operating System ROM. Again, that RAM was always WRiteable, as in the C64. I could use this RAM to hold an altered Operating System or just for storage. NAND gates 'c' and 'd' Translate address bits CA13-14 to select the correct 8K out of 32K. When Configuration bit RR7=0, as upon power up, the ROM is visible. Making that bit 1 switches in RAM. I used 74HCxx chips so that they and the RAM could be powered by Vbb -- two alkaline AAs diode OR'ed with +5V for battery back-up. (This is solely to preserve the contents of BLK7 RAM. Recovering a Basic Program in BLKs 1,2,3 would be difficult, if not impossible.) /RESET on one input of NAND gate 'b' keeps /CS high to prevent garbage from being written to RAM during power-up. As in the case of the 3K memory, I again used switches to enable/disable the BLKs. I dispensed with the notion of Write Protect.

PREVIOUS


In BLK5 I placed another 32K SRAM chip. This too is battery-backed. /RESET on input B of the 2nd half 'HC139 keeps the SRAM de-selected during power-up. Two cnfg bits (5A, 5B) select one of four 8K banks. Note the switch wired between bits IX5i and IX5o from the Config Register. When /RESET goes high, if the switch is open, the /BLK5 enable is steered to the expansion connector and any cartridge plugged into the back is visible, end of story. If, however, the switch is closed, IX5o=0 on power up and the enable is steered to the RAM. I could put my own auto-starting code in Bank0 of BLK5, which would transfer some code elsewhere, jump to it, set IX5o=1, switching out the RAM, and check for the presence of an autostart cartridge. I could then present a menu, letting the cartridge take over or not. Or I could use some keypress combination to decide. Pretty neat, huh? Too bad I never got around to trying it.

Two bits of the Configuration Register remain unused. I could use them for Address bits A15-16 of a 128Kx8 Static RAM, giving BLK5 SIXTEEN 8K Banks. That's why I used a 32pin socket for that RAM chip.

All this was on a board that plugged into the Basic ROM socket, in a manner similar to the Character RAM/ROM board described earlier. To get an empty socket, I piggy-backed the Basic ROM to the soldered-in Kernal ROM.

PHOTOS!
(opens in new window)

(The word 'MODEST' in the schematic comes from correspondence I had with a Canadian Commodorian. That guy -- that maniac -- would build designs of mine that I hadn't tried -- and they worked! What I decided to build for myself really was 'modest' compared to those un-tested by me designs.)

Grand total: 32K + 32K + 8K -1/2K + 5K (built-in) = 76.5K, with the possibility of more. Add to this several new I/O enables, and several pins on the expansion connector no longer needed for their original functions, and many new as yet unimagined things should be possible on this lowly, obsolete 8-bit computer.

Back to Projects