Thursday, 19 November 2015

VIC20 - The Penultimate Cartridge - Part 1

This is a quick preview of an upcoming project, in response to a video by GadgetUK164 on the VIC20, where he kindly mentioned my blog. I hope I haven't broken the internet with a circular reference.
This is a VIC20 cartridge I'm working on at the moment. In this version, it can provide the following features:
  • Selectable RAM upgrade, to to 32K
  • Selectable Read only for RAM blocks 3 and 5
  • Selectable ROM image, one of 8 - 8K ROM images only
  • Externally accessible configuration and reset switches
The memory can currently occupy the 3K expansion in block 0 (RAM1/2/3) and blocks 1,2,3 and 5. Block 5 is not counted by BASIC in the total, but can be used to load ROM images. This and block 3 can be made read only of cartridges that require that. I may remove the 3K option in future versions, unless anything specifically requires it. The selectable ROM images mean this can act as a real cartridge so you can have a selection of you favourite carts available at the flick of a switch (well, a couple of switches and a press of the reset button).
This fits into a standard cartridge case, with the DIP switch for configuration and a reset button sticking out. Most Commodore cartridge cases have the slot there, so I thought I'd use it to add the external switches, so no drilling or cutting of the case is required.
Inside, there is a 32K RAM chip and currently, a 512K EPROM, although I'll be putting a large ROM in later versions. The smaller chip is a GAL which handles the address decoding.
There is a lot of space left on the board, deliberately. This space will be used to add the following features:
  • Selectable ROM image, one of 32 up to 16K ROM images
  • Integrated IEEE-488 adapter
  • Integrated IEEE-488 SD card disk drive (a version of PET microSD)
This should result in a self contained cartridge with just the configuration switches, reset button, activity LEDs and microSD card sticking out. No additional wires for power or the IEC port, it will all be contained within the cartridge. The parallel IEEE-488 bus is also a lot faster than the serial IEC bus, so there should be a speed improvement as well. I have previously tested that the PET microSD on a VIC20, and it works well.
More revision of that to come, on the way to 'the Penultimate Cartridge'. I've decided to call it that as every time there is a Final or Ultimate cartridges there seem to be quite a lot of versions that follow it. So I thought I'd be honest with the name on this one.

Update:
There is now a V2 board, with the additional option of 3K + 8K + 8K + 8K + 8K to give 35K which only seems to be used by the VIC20 port of DOOM. The V2 boards can also support up to 32 x 16K cartridges, see the article on the VIC20 Penultimate Cartridge V2 for more info.


On a slightly related note, the issues in GadgetUK164's video with Rockwell chips, I can't say I've had any problems. I've tested this on a VIC20 with a Rockwell R6522P, and they are fine, as expected. Also tested with the original CPU (a standard MOS 6502) and a Rockwell R6502P. I've used this to load Dig Dug from an SD2IEC into my Penultimate Cartridge, and that seems to run fine with no need for the diode mod. Maybe he had a duff chip, or a fault elsewhere on that particular VIC20.
As far as I know, it's only the WDC W65C22S chips which changed the IRQ pin (to improve speed). They also produce a W65C22N version, which is compatible with the older NMOS devices (like the R6522P and the MOS 6522), and that also works fine in the VIC20.
It's good to know you can buy modern replacement parts without having to risk 'new old stock' from China.  I've used these in VIC20s, PETs, BBC etc. I also use a lot of W65C21N (again the N suffix is important for NMOS compatibility). This is a replacement for 6520, 6521, 6821 etc. and I've used those in PETs, Dragon32's, Atari 800XL etc.
So I had no problems loading or running Dig Dug with Rockwell chips or WDC chips (or Synertek for that matter).

Update: As requested, I've also checked the Rockwell R6522AP, which is just their version of the MOS 6522A, which is a faster speed graded version of the MOS 6522.