A new VIC20 Cartridge PCB is now available from TFW8b.com.
The new design came out of two separate points in a conversation that took place before ordering more of the existing boards.
We currently have one PCB which can be either an 8K or a 16K ROM cartridge for the VIC20, and a second PCB which can only be a 32K ROM cartridge.
The request from TFW8b was "could you do a combined 8K+16K+32K board"? I guess so, but there are already too many jumpers on the 8K/16K board, and to switch to 32K mode would need an extra couple of jumpers at least.
The second point raised is these are half size board, only big enough to pass the screw hole and the two supports.
This is not unusual as most of the Commodore game cartridges were that size.
Comment was also made that these were sometimes a little loose, and not as well anchored as the Penultimate Cartridge PCBs, which fill the whole case.
The second point was "Could I make these cartridges full size as well?"
Well I could, but there would be a whole load of space left.
I did consider putting a whole load of jumpers up there to do a combined board, but then I had a silly idea.
Why not put both cartridges on the same board?
That should fit within the outline of the Penultimate cartridge, with some space at the side.
There seemed to be enough space for both boards, wired in parallel to the edge connector, so I had a go.
You wouldn't fit the chip for both types on the same board, just one set.
For an 8K or 16K cartridge, you would use to the top half of the board and ignore the 32K section.
For a 32K cartridge, you would use to the bottom half of the board and ignore the 8K / 16K section.
That was a full size board (as requested) and could do 8K, 16K or 32K (as requested), but rather than having to set lots of jumpers to switch between the cartridge types, you just fit the chips in different places.
I routed all the traces, and then moved a few things around a bit. I remember there was a central reinforcing bar in the lid of the case, but I had forgotten there was a similar thing along the top, exactly where I had placed the top ROM chip.
Plan B was to rotate the ROM chips 90 degrees and place them at the sides of the board.
I was also rather pleased with the way the traces were laid out.
And there you have it, the new cartridge PCB.
ROM chips and ROM blocks
The VIC20's address space is split into 8 8K blocks. Blocks 1,2,3 and 5 are reserved for the cartridge slot, and these cartridge PCBs can place ROMs in any of these blocks. When looking at ROM files, you may see things like 5 or blk5, or A0 or A000 in the filename to determine where the file goes. You sometimes find ROMs as .prg files which are 8K + 2 bytes (8194 bytes), and the extra two bytes are at the start and indicate the address (A000 for example). To use these, first remove those two extra bytes to reduce the file size to exactly 8K (8192 bytes).
Address range
|
Block
|
Use
|
0000-1FFF
|
0
|
5K RAM
|
2000-3FFF
|
1
|
8K ROM Block 1
|
4000-5FFF
|
2
|
8K ROM Block 2
|
6000-7FFF
|
3
|
8K ROM Block 3
|
8000-9FFF
|
4
|
Video and I/O
|
A000-BFFF
|
5
|
8K ROM Block 5
|
C000-DFFF
|
6
|
8K BASIC ROM
|
E000-FFFF
|
7
|
8K KERNAL ROM
|
ROM chips from 27C64 through to 27C512 can be used, as long as the ROM chip is at least as large as the ROM image. If the ROM chip is larger than the image (e.g. 8K ROM in 27C256 EPROM), then it should be placed at the top of the ROM chip (e.g. 0000-5FFF unused, 6000-7FFF 8K ROM image). Note 28C64B can be used, but 28C256 is not suitable as it's A14 pin is in the wrong place.
There is a list of addresses on the back of the PCB, so you can't lose it.
Construction
Construction should be fairly straightforward. There is space to use sockets if you wish, or you can solder the chips direct to the board if you are confident they are programmed correctly. If you fit a chip, you should fit the corresponding 100nF decoupling capacitor, either an axial ceramic through hole capacitor, or there are pads on the back of the PCB to fit a 1206 ceramic surface mount capacitor.
As it says on the board, fit parts only on the 8K/16K side OR the 32K side, do not fit both.
8K Cartridge
To make an 8K cartridge, use the left hand ROM socket and fit the 8K jumper in place of the left hand 74LS08 logic chip. The lower bank jumper is set to 8K mode (there is no lower bank), and the upper bank can be 2, 3 or 5. It is almost always 5, as if a cartridge ROM is detected in block 5, it will automatically start on power on.
The 8K ROM image should be burned to the EPROM at the following addresses.
Address range
|
27C512
|
27C256
|
27C128
|
27C64
|
0000-0FFF
|
-
|
-
|
-
|
8K Block 2/3/5
|
1000-1FFF
|
-
|
-
|
-
|
|
2000-2FFF
|
-
|
-
|
8K Block 2/3/5
|
|
3000-3FFF
|
-
|
-
|
||
4000-4FFF
|
-
|
-
|
||
5000-5FFF
|
-
|
-
|
||
6000-6FFF
|
-
|
8K Block 2/3/5
|
||
7000-7FFF
|
-
|
|||
8000-8FFF
|
-
|
|||
9000-9FFF
|
-
|
|||
A000-AFFF
|
-
|
|||
B000-BFFF
|
-
|
|||
C000-CFFF
|
-
|
|||
D000-DFFF
|
-
|
|||
E000-EFFF
|
8K Block 2/3/5
|
|||
F000-FFFF
|
4K Cartridge
It is also possible to build a 4K cartridge, using the 8K settings above. The 4K ROM image should be at the start of the 8K bank, and the 8K bank should be at the top of the ROM as above.
Address range
|
27C512
|
27C256
|
27C128
|
27C64
|
0000-0FFF
|
-
|
-
|
-
|
4K Block 2/3/5
|
1000-1FFF
|
-
|
-
|
-
|
-
|
2000-2FFF
|
-
|
-
|
4K Block 2/3/5
|
|
3000-3FFF
|
-
|
-
|
-
|
|
4000-4FFF
|
-
|
-
|
||
5000-5FFF
|
-
|
-
|
||
6000-6FFF
|
-
|
4K Block 2/3/5
|
||
7000-7FFF
|
-
|
-
|
||
8000-8FFF
|
-
|
|||
9000-9FFF
|
-
|
|||
A000-AFFF
|
-
|
|||
B000-BFFF
|
-
|
|||
C000-CFFF
|
-
|
|||
D000-DFFF
|
-
|
|||
E000-EFFF
|
4K Block 2/3/5
|
|||
F000-FFFF
|
-
|
16K Cartridge
To make a 16K cartridge, use the left hand ROM chip and the left hand 74LS08 logic chip. The 16K is split into two 8K blocks. The lower bank can be block 1, 2 or 3. The upper bank can be block 2, 3 or 5. Select the upper and lower bank with the jumpers. Most use 1+5 or 3+5 (except Scott Adams text adventures which use 1+2)
The 16K ROM image should be at the top of the ROM chip
Address range
|
27C512
|
27C256
|
27C128
|
0000-0FFF
|
-
|
-
|
8K Block 1/2/3
|
1000-1FFF
|
-
|
-
|
|
2000-2FFF
|
-
|
-
|
8K Block 2/3/5
|
3000-3FFF
|
-
|
-
|
|
4000-4FFF
|
-
|
8K Block 1/2/3
|
|
5000-5FFF
|
-
|
||
6000-6FFF
|
-
|
8K Block 2/3/5
|
|
7000-7FFF
|
-
|
||
8000-8FFF
|
-
|
||
9000-9FFF
|
-
|
||
A000-AFFF
|
-
|
||
B000-BFFF
|
-
|
||
C000-CFFF
|
8K Block 1/2/3
|
||
D000-DFFF
|
|||
E000-EFFF
|
8K Block 2/3/5
|
||
F000-FFFF
|
32K Cartridge
To make a 32K ROM cartridge, use the right hand 74LS08 and right hand ROM chip. There are no jumpers to set, the ROM is always mapped as blocks 1+2+3+5.
The 32K ROM image should be at the top of the ROM chip.
Address range
|
27C512
|
27C256
|
0000-0FFF
|
-
|
8K Block 1
|
1000-1FFF
|
-
|
|
2000-2FFF
|
-
|
8K Block 2
|
3000-3FFF
|
-
|
|
4000-4FFF
|
-
|
8K Block 3
|
5000-5FFF
|
-
|
|
6000-6FFF
|
-
|
8K Block 5
|
7000-7FFF
|
-
|
|
8000-8FFF
|
8K Block 1
|
|
9000-9FFF
|
||
A000-AFFF
|
8K Block 2
|
|
B000-BFFF
|
||
C000-CFFF
|
8K Block 3
|
|
D000-DFFF
|
||
E000-EFFF
|
8K Block 5
|
|
F000-FFFF
|
Cases
These fit snugly in the TFW8b VIC20 cartridge cases. There are two places where a reset button could be installed if you need one and have a hole in the case.
I think they have turned out rather nicely.
Advertisements
The new cartridge PCBs and cartridge cases are available from The Future Was 8 bit:
- https://www.thefuturewas8bit.com/vic-8k16k32k-pcb.html
- https://www.thefuturewas8bit.com/viccartcaseclear-noholes.html
- https://www.thefuturewas8bit.com/viccartcase-black-noholes.html