Re: VIC-20 "all games in one" cartridge update

From: Marko Mäkelä (
Date: 2001-04-21 09:45:27

On Fri, 20 Apr 2001, john/lori wrote:

> > Yes.  The 32k RAM can be mapped to all memory blocks ($0400-$0fff,
> > $2000-$7fff and $a000-$bfff).  There are no mechanic switches, but if you
> > hold down stop, 3 or 8 during reset (or press one of these keys in the
> > menu program), the computer will enter BASIC with 0, 3 or 24 kilobytes of
> > expansion memory.
> 32K isn't enough to fill the memory space, so I assume you can't map
> all empty spots at once, ie the map must be change able?

They can all be mapped in at once.  The firmware on the cartridge takes
care of initializing the KERNAL pointers (which are normally set in the
RESET routine).  That was my original plan, which would have made the
schematic diagram simpler when using discrete 74xx logic chips.  Now that
we have chosen a programmable logic chip, individual memory blocks can be
disabled and enabled by flipping some bits in some registers implemented
with the logic chip.

Since I don't know of any program that would use a 3k and an 8k+ expansion
at the same time, I think it's quite safe to map the 3k expansion (RAM1
through RAM3) to the same memory space on the external RAM chip as the
first 8k block (BLK1).

> Will this allow the cartridge to be used where an internal expansion
> has been performed?

Good question.  It depends on the internal expansion, I think.  There must
be a way to disable internal RAM at BLK5 ($a000-$bfff); otherwise it will
interfere with the Flash ROM access.

> Where does the PROM appear and how does it get mapped (I believe you
> said the unpacker needs RAM at A000-BFFF)?

The unpacker needs RAM at $00fx-$02xx.  The Flash ROM is mapped at
$a000-$bfff.  The unpacker code (copied to RAM) takes care of bank
switching.  When a game is started, the ROM is disabled altogether (and
won't be enabled until RESET).

> If there are games that check to see if they're runninng out of ROM or
> RAM, perhaps it would be useful to make (part of) the mappped RAM read
> only (under program control)

I've "RAM fixed" all games in my collection.  But these "write protect"
bits fit well inside the programmable logic chip.


This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.