• Research Center for Advanced Commodore Study

  • by HowlinAl

Making Tomorrows World Better With Yesterdays Technology Today


VIC-20 Ultimate Expander

Using Eslapion's Legendary Memory Expansion Cartridge





Years ago I bought one of Francois Leveille's Ultimate Expander Cartridges for the VIC-20. Recently, Francois (known as Eslapion on the webs) announced that he sold his last Ultimate Exapnder. 

If you've recently purchased an Ultimate Expander you might be bewildered by the switches. VIC's memory map is pretty confusing, to say the least.




Let's take a quick look at how the Ultimate Expander operates so you can get right to work using it.

You'll notice a reset button and a series of switches along the top of the Ultimate Expander. The function of the reset button is obvious, but the switches require a little explanation. Let's take a look:

Every Ultimate Expander includes a Reset Button and a Read-Write/Read Only switch. Depending on the options you ordered, your Expander may or may not include all of the other switches.

The first switch allows you to decide if you want to protect the extra RAM provided by the Expander. With the switch in the left, Read-Write position, your expansion RAM is used just as you would expect-- you can read it and you can save data to it. In the right, Read Only position , the RAM is protected-- you can read it, but you can't save any data to it. This is useful for some copy-protected games or if you want the data in expansion RAM to be preserved when you press the Reset Button. When switched to the Read-Only position, the VIC "boots" with 3583 Bytes Free, just like an unexpanded VIC. Screen/Color Memory and the start of BASIC also remain in the same locations as an unexpanded VIC. At first glance, this switch might not seem very useful but I'll provide some examples later on that show how this feature can come in handy.


Switch 2 and 3: BLK3 and BLK5 ROM/RAM
In the left position, these switches move the BLK3 and BLK5 programs on the Ultimate Expander into the VIC's memory. In the right position, BLK3 and BLK5 will each contain 8K of Expansion RAM.





Switch 4: A/B
With the A/B switch, you can have two sets of programs on your Ultimate Expander for BLK3 and BLK5. If your Expander has this option, the A/B switch will tell your Ultimate Expander which set of programs to move into the VIC's memory.



Let's look at an example of a typical Ultimate Expander configuration. This hypothetical cartridge has 4 switches, with the following programs in BLK3 and BLK5:


BLK3 Programmers' Aid/VICMON BLK3 Leif's Utility Cart
BLK5 BASIC V4 BLK5 Super Expander


How will different switch positions effect what programs the Expander moves into VIC memory? Let's see.

Example 1

The A/B switch is in the "A" position and both BLK3 and BLK5 are in the ROM position. So the VIC will start up with the Programmers' Aid and VICMON in BLK3 and BASIC 4 in BLK5. Simple!

Example 2

Now we switch BLK3 to RAM. We still have BASIC 4 in BLK5, but BLK3 now contains 8K RAM. With the RW/RO switch in the RW position, the VIC will start up with a full 29K of RAM available to BASIC.

Example 3

Now BLK3 and BLK5 are in the RAM position. The VIC still starts with 29K RAM for BASIC, and we also have 8K RAM in BLK5. This is particularly useful for playing cartridge games that have been dumped to disk. Most VIC cartridge games reside in BLK5.

Example 4

Finally, let's take a look at the A/B switch. All the examples above hold true with the A/B switch in the "B" position, but now we are using Leif's Utility Cart in BLK3 and the Super Expander in BLK5.

Using the Read-Write/Read Only Switch

The most common use of this switch is to 'unexpand' the VIC. In the Read Only position, we have 3583 Bytes Free and our VIC behaves just like there was no RAM expansion present at all.

Let's use a Scott Adams Adventure game as an example of another way the RW/RO switch can be used. Scott Adams text adventures require RAM in BLK2 and BLK3, but these games will crash if we simply move the BLK3 switch to the RAM position. The reason for this is that the Scott Adams games expect Screen/Color Memory to be in the same locations as they would be on an unexpanded VIC. What we need is for the VIC to have only 3583 bytes available to BASIC and have RAM in BLK2 and BLK3. Here's where the RW/RO switch comes in handy. Move the BLK3 switch to RAM and the RW/RO switch to Read Only. Power up the VIC and notice that we have 3583 Bytes Free. Now move the RW/RO switch to the Read-Write position and load the game. Voila! Our additional RAM in BLK2 and BLK3 is available for our game but Screen/Color Memory pointers remain where they were. LOAD the game, SYS 32592 and enjoy.

Let's explore one more use for the RW/RO switch. Some cartridge games, in an attempt to prevent the game from being copied to disk and played, would try to write a few bytes of code into the area of memory where the game resides. Obviously, with a real cartridge this write would fail. Game manufacturers used this method as a simple way to detect if the game was being loaded from a real cartridge. The Ultimate Expander can bypass this form of copy protection with the RW/RO switch. Simply LOAD your cartridge game with the switch in the RW position. After the game loads, move the switch to the RO position and press the Reset Button. Your game is loaded into the appropriate BLKs of RAM and the memory is protected just like it would be in a real cartridge.

32K Ultimate Expander created and sold by Francois Leveille

Leave a Comment

You must be signed-in to post comments.