Sunday, 13 July 2025

VIC20 Penultimate +3 DCR Cartridge

Available now from TFW8b.com is the new VIC20 Penultimate +3 DCR Cartridge.

Just in case anyone doesn't know what it is, here is a quick overview.

  • RAM expansion, Menu selectable 0-35K, in 8 banks, giving a total of 280K
  • ROM expansion, 271 assorted programs and utilities, ancient and modern including all TFW8b VIC20 titles and many exclusives
  • Full size SD card disk drive with integrated file browser, turbo loader and DOS wedge

It is called "DCR" as a nod to the Commodore 128 DCR, where they also took what was a mainboard and a separate disk drive and combined them into a single board.

It now has a full size SD card slot, and the IEC drive cable is detachable, should you not wish to use it.

Menu

When you switch on, you are presented with a menu that can be navigated using arrow keys or a joystick.

You can change that if you wish, using the settings menu, and have it power on to a selection of different options. With any of these, you can press the menu button to get back here.

Games

There are lots of games on the cartridge to test your VIC20 to it's limits.

These are normally presented in an A-Z list you can scroll through, or press SHIFT+letter to jump to the page starting with that letter, i.e. SHIFT+E if you want to go straight to the list starting with "Emu's Massive Hunt".

The cartridge contains some games that only work on PAL or NTSC machines, so those are normally filtered out if they won't run properly on your system. This is usually because the game appears off the side of the screen.

Some games like Frogger in the list above have the "K" symbol meaning the screen can be adjusted in the games using keys (usually arrow keys, sometimes function keys). Some will show "J" and can be adjusted using the joystick on the title page.

You can view the other games by pressing "P" to show PAL games, "N" to show NTSC games, or "A" to show all games.

Games that cannot be adjusted and so will not work properly on your system as shown with an X (and are normally hidden on the games menu).

For example, Alien Blitz has no adjustment, so is off screen on PAL, but there are actually two versions on the cartridge, PAL and NTSC, so you normally only see the one that will suit your system.

Games by Category

The list of games can also be filtered by category.

So you can see all the maze games, or all the Centipede style games etc.

You can also see all the games from Misft or Hewco, or the full list of TFW8b titles.

This includes all the TFW8b VIC20 games from the 499 range.

And some exclusives, such as the amazing and criminally underrated VIC20 version of Tut-Tut.

Seriously though, if you haven't tried it, give it a go now, I think it's the best version of a great game.

(although I may be a little biased on that one).

You will also find a couple of special categories with games that are not included in the main list.

Paddle games are not included in the main list, as most of you probably don't have a set of VIC20 paddles.

Adventure and board games are also listed separately as they don't really fit in with the rest.

New Games

There are a few new games on this release, although adding these tipped the A-Z list of games right up to 255, and for a 8-bit machine, that is as high as it goes.

These are all multi-part cassette game conversions of old games dug up by TFW8b.

Android Attack is a sort of Space Invaders meets Blitz.

Diamond Hunt is a sort of Boulder Dash without the boulders with a hint of Centipede.

Mission Mercury is a sort of Jupiter Lander meets Frogger.

All quite nice little games, with a look.

RAM Cartridge

As well as all the built in games, the Penultimate cartridge is also a menu configurable RAM cartridge. You can select between 0K and 35K of expansion RAM to add to the VIC20.

Function keys F1-F6 can be used as shortcuts to exit to BASIC with the amount of memory displayed (e.g. F2 to exit to BASIC with 3K of expansion RAM).

The VIC20 memory map is a little confusing, as it changes depending on the amount of expansion RAM currently present. Because of this, games designed for an unexpanded VIC20 may not run correctly if you have 35K of RAM present, likewise games that require 35K of expansion RAM will not work if you have less than that.

Games fall into three categories.

Unexpanded VIC20

These need the VIC with only the internal 4K + 1K RAM present. $0000-$03FF and $1000-$1FFF. The lower 1K is shown in red. That is used for system stuff like zero page, stack, cassette buffer etc.

The screen is shown in blue, and is at the end of the 4K block, $1E00-$1FFF.

BASIC uses $1000-$1DFF, shown in green. The first byte is always 0, so BASIC programs start at $1001, which leaves 3583 bytes available to the programmer.

3K Expansion

There is a 3K gap between the 1K and the 4K, which can be filled from the expansion port. It sort of makes sense as RAM was expensive in 1981, so you might have only be able to afford 3K of RAM. But maybe you could splash out and get an 8K cart, but they didn't want to force you have have to buy a 3K one first, so things move around to accommodate what you have.

The 3K expansion takes the available RAM to 8K ($0000-$1FFF). The screen is still at the end, so BASIC now uses $0401-$1DFF, 6655 bytes available.

8K or More

The final category covers everything from a single 8K expansion upwards. Things are rearranged again, to accommodate the 1K + 4K + 8K, so the 3K gap is skipped over. The screen is moved down to $1000 so BASIC can grow upwards into whatever RAM you have installed.

With 8K, that makes the user area $1201 to $3FFF, 11775 bytes available.

You can install RAM in the 3K gap (shown in yellow), but BASIC will not look there if it has detected 8K or more. It can still be used for data or machine code programs.

BASIC can grow into expansion RAM up to $7FFF. There is more system stuff from $8000-$97FF (character ROM, colour RAM, IO), and the ROMs from $C000-$FFFF.

The maximum BASIC will ever see is 24K expansion RAM, $1201-$7FFF, 28159 bytes free.

The is space for another 8K at $A000-$BFFF but BASIC needs a contiguous block of RAM, so it will not change the total either.

You can add back in the 3K as well to make the full 35K expansion RAM.

Both those extra regions can be used machine code programs for storage or extra code.

Unless you have a game the was designed for 0K or 3K expansion, you should just go for the maximum of 3K + 8K + 8K + 8K + 8K. This adds to the internal 1K + 4K, giving a full run of 32K from $0000-$7FFF.

Turbo Wedge

There is a gap between $9800 and $9FFF, which is a 2K gap, reserved for IO devices on the cartridge port (shown in purple). This has been repurposed to provide the 2K ROM used by the Turbo Wedge.

When you exit to BASIC (press "X" or "F1"-"F6"), this will be automatically started (unless you pressed "T" to disable it first).

That is a covered in a lot of detail in last week's post, but it allows you to send commands to a disk drive without having to use OPEN 1,8,15 style commands

Get directory listings without overwriting your programs, etc.

See the previous post for all the details:

Banked RAM

That expansion is optionally banked, so you can select between 8 different banks of 35K expansion RAM, giving a total of 280K

The internal 1K and 4K in the VIC20 remain fixed, but all 35K of expansion RAM can be switched between the 8 different banks.

When you press "E" or cycle through the RAM options with "R", you will get to "280K".

When that is enabled, you can use a POKE command from BASIC to switch bank.

It always starts in bank 0, but if you enter POKE 38918,1 then it will switch to bank 1. (the Turbo wedge is active on all banks).

You need to do that from code which is located in the fixed portion or thinks will get confused as the rug is pulled out from under your feet.

POKE 38918,n can be used to select any of the 8 banks with n from 0 to 7.

A simple test program pokes "0" into bank 0, "1" into bank 1 etc. printing the values read back each time.

It then goes back to bank 0 and reads what is there. If paging is working, you would see 01234567.

If paging is not working, you would just see the last value poked in, and all pages would read "7".

Online Help

The help pages have been split out from the menu.

I wrote a separate post about that:

You can find a quick reference to the Wedge and the POKEs required for the banked RAM in the online help.

This has now been expanded to 4 pages.

File Browser

To make best use of your new built in SD card disk drive, there is a file browser built into the menu, so no need to load a separate browser from disk.

When you select a file, it will be checked to see how much memory it will require. The load address of the file should be $1001 for games that need an unexpanded VIC.

$0401 for games that need a 3K expansion.

Games that need 8K or more have a load address of $1201. These are run with the full 35K of RAM.

Many thanks to David Murray (8-bit Guy) for permission to include the VIC 20 version of PETSCII Robots on the SD card.

You can force the amount of memory used by pressing "R" to cycle through the options. It is normally set to "AUTO" to select based on the load address in the file.

Games are loaded with the built in Turbo loader to make loading considerably faster (seconds vs minutes).

You can disable that if you wish (press "T" to toggle Turbo loader), and load things normally, and slowly. (Turbo loader supports SD2IEC and 1541 drives, you may need to disable it if you have something different)

I suppose it gives you time to go and make a cup of tea.

If you create a folder called "PU" on the SD card, you can put some of your favourite games there and go straight to that by pressing "F".

Utilities and Development Tools

In one of the later versions of the Penultimate +2, I split the utilities menu into two parts, Utilities and Development tools.

That left room to add some notes about the SYS commands needed to start the various tools, so you always have those for reference.

It also left room for more things to be added, and there are two new ones on the Utilities menu this time.

I have covered most of the things on there in previous posts, I will just add one thing as it can sometimes cause confusion.

If you want to test your VIC20, then use the Dead Test+

That can also be started by holding down the right hand button (illuminated red and marked RESET) when you turn the power on.

The Self test is a test of the cartridge. Not the VIC20.

The self test results are also only valid if the VIC20 is actually working. So it can be a good indicator of a faulty VIC20, but is more useful as a production test tool.

This latest version tests the logic for the banked RAM switching each cycle, but also performs the RAM tests on each of the 8 banks in turn, so you should really run it for 8 cycles and maybe a 9th just to be sure.

Or more if you wish. It's a good system stability test, but again remember any fails are likely to be the VIC20 rather than the cartridge.

Colour Bars

This is a new simple test program I wrote because I needed one.

It displays some colour bars on the screen, to help with video adjustments.

You can press any key to cycles through 8 screens of a single colour.

Then a black and white grid for convergence.

Then the full character set is printed twice (well, almost twice).

I wanted some colour text to check how that would look, so I just reused the colour bars.

I don't think I have seen that done before, seems to do the job anyway.

It will continue to cycle through the screens in turn every time you press the any key.

1541 Performance Test

This is adapted from a program on the 1541 demo disk. It is a disk drive test program that is handy to have around in a cartridge (since you can't load it from disk if your disk drive isn't working properly).

It needs a blank disk to test with, so please make sure you have a good disk in there which has nothing important on as it will be erased.

I know you are going to try to run it on the internal SD2IEC. Don't do that, it will fail (it does not support the first command which is format), but if you really want to, mount a D64 image file first, but again, be aware it will be emptied of any files.

It goes through various tests, and finally gives you the result

Congratulations, your 1541 is working.

Credits

I think that is everything. Time to roll the credits.


Adverts

The Penultimate +3 DCR is shipping from from TFW8b.


Tindie

Your reward for reading all of that is notice that there is 15% of everything in my Tindie store throughout July.


Patreon

You can support me via Patreon, and get access to advance previews of development logs on new projects and behind the scenes updates. This also includes access to my Patreon only Discord server for even more regular updates.