Table of Contents
When Commodore's engineers designed the VIC-20, they faced a tough call. The VIC chip can address 16K of memory, but to hit the target price point, the machine shipped with just 5K of RAM — and only 1K of that dedicated to color. The missing lower 3K block at $0400–$0FFF was left out on the motherboard. A cost compromise that would haunt the platform's graphics capability for its entire lifetime.
The standard workaround has always been a 3K RAM expansion on the cartridge port. Problem is, RAM hanging off the expansion bus is invisible to the VIC chip. The VIC can only see memory on its own internal bus. So while the CPU happily uses all 8K, the VIC chip still only has access to the upper 5K for screen memory and character data. You're stuck with the same limited graphics memory map as a stock machine.
Willy Wonka changes that.
Willy Wonka is a small internal board that populates the missing 3K right where it was always meant to be — on the VIC chip's local bus. The VIC can now see and use the full first 8K of RAM. That opens up the entire $0000–$1FFF range for screen memory, custom character sets, and bitmap data. No bus contention, no bank switching tricks, just a complete memory map the way it should have been from day one.
But Willy Wonka doesn't stop at 3K of main RAM. It also expands color RAM from the stock 1K to 16 switchable pages of 1K each. With 16 color pages available, you can set up each rasterline with its own color attributes. Combine that with the full 8K graphics range and you have the foundation for proper high-resolution color graphics — something the stock VIC-20 was never quite able to pull off.
It's a small modification that fixes what was arguably the VIC-20's biggest architectural compromise.
GreenPAK ... again
Also this design uses a GreenPAK. This time the tiny SLG46533V. It controlls all of the 8k SRAM, the banking of 16 pages of 1k color RAM, and all the hidden configuration registers.
This spin is the final one and has eberything in place and the configuration is working.
