Sunday 3 February 2019

8K or 16K ROM Cartridge PCBs for Commodore VIC20

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

Yellow is the new green.
At least as far as VIC20 Cartridge PCBs go. These are the new 8K or 16K ROM cartridges from The Future Was 8 bit.
There are instructions on the back, but I'll go through the options in a bit more detail. First a quick refresher on the VIC20 memory map. The 6502 can address 64K (without paging), and on the VIC20, this is split into eight blocks. four (and a half) of which are assigned to the cartridge port.

Block
Address Range
Use
0
0000 - 1FFF
Internal 5K RAM + Cartridge RAM1/RAM2/RAM3
1
2000 - 3FFF
Cartridge BLK1
2
4000 - 5FFF
Cartridge BLK2
3
6000 - 7FFF
Cartridge BLK3
4
8000 - 9FFF
Video / IO space
5
A000 - BFFF
Cartridge BLK5 (autostart)
6
C000 - DFFF
BASIC ROM
7
E000 - FFFF
KERNAL ROM

Block 0 contains the internal RAM, and can be expanded with an additional 3K from the cartridge port (although not with this cartridge). Block 4 is video RAM and I/O space, and blocks 6 and 7 contain the system ROMs. That leaves blocks 1,2,3 and 5 for ROM cartridges. Block 5 is special in that it is checked on system startup to see if it contains a bootable ROM, if it does, that will be started instead of the normal BASIC. These cartridge PCBs can be used to provide a single block (8K mode), or two blocks (16K mode). I did look at adding 4 block (32K mode), but as far as I know, Cheese and Onion is the only 32K cartridge out there, so you should just buy one of those instead.
The locations of the cartridge ROM in memory is selected by means of two four-way jumper blocks. A second set of jumpers also allow multiple images to be fitted into larger EPROMs, and selected via jumpers.
The selections are different depending on the size of the ROM image used.

8K Mode

When using an 8K (or smaller) ROM image, the 8K/16K jumper should be set to 8K. The right hand block jumpers are used to select the block the ROM image will be located at. In almost all cases, this will be block 5, but the options are there for the other 3. In 8K mode, the 74LS00 chip is not used, so does not need to be fitted. Cross jumpers like that need a link making between the centre pin and the selected block. The offcuts from the legs of the capacitors are ideal for this.
In 8K mode, ROM chips from 27C64 to 27C512 can be used to provide between one and eight 8K ROM images that can be selected via jumper, or hard wired. Settings for some common EPROM types are shown below.

A15
A14
A13
27C64
28C64
27C128
27C256
28C256
27C512
0V
0V
0V
-
-
-
-
-
ROM 1
0V
0V
5V
-
-
-
-
-
ROM 2
0V
5V
0V
-
ROM 1
-
-
ROM 1
ROM 3
0V
5V
5V
-
ROM 1
-
-
ROM 2
ROM 4
5V
0V
0V
-
-
-
ROM 1
-
ROM 5
5V
0V
5V
-
-
-
ROM 2
-
ROM 6
5V
5V
0V
ROM 1
ROM 1
ROM 1
ROM 3
ROM 3
ROM 7
5V
5V
5V
ROM 1
ROM 1
ROM 2
ROM 4
ROM 4
ROM 8

In most cases, the easiest option is to set all three to 5V and place the image in the top 8K of whichever ROM chip is being used.

16K mode

In 16K mode, the 74LS00 needs to be fitted (as does it's associated decoupling capacitor). The 8K/16K link is set to 16K mode, and two blocks need to be selected. The left hand block of jumpers selects the block for the lower 8K of the 16K ROM image. The right hand block selects the upper block. The upper block is normally 5, but the lower varies between software houses. This shows blocks 1 and 5 selected (this time using jumpers rather than wire links) and the 74LS00 fitted.
27C64 and 28C64B EPROMs are not supported in 16K mode, so one to four 16K images can be fitted in a 27C128 - 27C512 EPROM. The A13 link needs to be set to 16K now, and the other two are used to select the 16K ROM image within a larger EPROM.

A15
A14
A13
27C128
27C256
28C256
27C512
0V
0V
16K
-
-
-
ROM 1
0V
5V
16K
-
-
ROM 1
ROM 2
5V
0V
16K
-
ROM 1
-
ROM 3
5V
5V
16K
ROM 1
ROM 2
ROM 2
ROM 4

Here I've fitted jumpers, but wire links can be used as before.

Installation

The cartridge PCBs can be fitted directly into a VIC20, the notches on the top edge provide a sort of handle to help remove the cartridge. It goes without saying, but I'll say it anyway for legal reasons, don't install or remove this with the power on.
They can also be fitted into original cartridge cases (to replace faulty cartridge boards for example), or into new The Future Was 8 bit cartridge cases.
I also like to fit things like this to the lower half of the case only, so the jumpers can be changed without opening the lid.

2022 Update: More recent versions of the VIC 20 cartridge PCBS are available from  The Future Was 8 bit Yellow didn't last long, they are blue now.