Cartridges#
Introduction#
The P2000T exposes two cartridge ports, simply called PORT1 and PORT2. The PORT1 slot exposes the address and data bus of the P2000T as well as some relevant other signal lines. Most importantly, this SLOT1 is used to insert ROM cartridges which can be used, upon booting the P2000T, to launch the programs embedded on these ROMs. Perhaps the most well-known cartridge is the BASIC cartridge, which was shipped with every P2000T, allowing the user two write BASIC programs and store/retrieve such programs from the cassette drive.
The other cartridge port is SLOT2, which exposes the I/O port of the P2000T. This slot can be used for a multitude of things, but will always require the right software to interface with any device hooked up to this port. SLOT2 cartridges cannot exist by themselves and always require a compatible companion SLOT1 cartridge. In the simplest case this can be the BASIC cartridge with the right BASIC routines, but dedicated cartridges also exist. Perhaps the most well-known SLOT2 cartridge was the Viditel cartridge that acted as a modem.
Multirom cartridge#
My most popular SLOT1 cartridge is the multirom cartridge. A multirom cartridge is basically a cartridge that hosts a relatively large ROM chip, much larger than the conventional 16 KiB capacity of the old cartridges. The multirom cartridges that I have developed come in two flavors: a closed variant and a ZIF variant. The closed variant is the most neat design. It hosts a 512 KiB ROM chip allowing for 32x16KiB cartridge slots. Its only downside is that writing new programs to the cartridge requires one to open up the cartridges, take out the chip, and reprogram it.
This is where the ZIF cartridge comes into play. The ZIF cartridge exposes a ZIF socket at its back by which one can mount a DIP variant of the SST39SF0x0 series of chips. This facilitates easy programming.
SD-CARD cartridge#
Perhaps the most advanced cartridge that I have developed is a SLOT2 SD-CARD cartridge. This cartridge allows the P2000T to interface with modern SD-cards, as long as these cards are at least formatted using a FAT32 file system. Not only does this allow one to launch cassette BASIC-type programs from the SD-card cartridge, it also allows the user to make copies of cassette tapes and store these on the card for backup purposes and transfer of these files to a modern computer.
Cartridge list#
Over the years, I have designed a large set of different types of cartridges for the P2000T. Below, an overview is given.
Perhaps the most elegant solution for loading CAS files into your P2000T is via a cartridge that hosts an SD-card slot. Even the smallest SD-cards have enough capacity to store the complete P2000T tape archive. Reading from such an SD-card is non-trivial and requires both a hardware solution to interface the I/O port of the P2000T as well as a software solution to navigate through the files hosted on a FAT32 partition. This page explains both parts in more detail.
The biggest drawback of the basic cartridge is that it only exposes 16kb of memory of the ROM. Most parallel ROM chips have at least a capacity of 128kb and one would like to make good use of this. The multicartridge offers a simple ROM selection circuit to allow the user to select which 16kb ROM bank they want to expose to the P2000T, allowing one to bundle multiple applications on a single cartridge. Furthermore, some applications can make use of a so-called “soft-reset” feature. The multicartridge uses a 74HC123 multivibrator to give a well-defined soft-reset signal.
The multicartridge has a single parallel ROM chip fixed to the PCB, but this does not offer easy access when one wants to change the content of this chip. Especially in the scenario that one is developing new software for the P2000T and want to test the program on the original hardware, one would like some means of easy access. The ZIF cartridge is very much identical to the multicartridge, but has a ZIF socket on its back side for easy swapping of ROMS.
This project is a cost-reduced version of the multicartridge, meant for hobbyist who would like to build their own cartridge and are comfortable using a soldering iron. The cartridge is designed such that the majority of the components can already be assembled by the PCB manufacturer (e.g. using a so-called assembly service). The user only needs to solder in three more through-hole components and the cartridge is ready to use.
The datacartridge is a SLOT2 cartridge to quickly load BASIC programs from. It works via a modified BASICNL cartridge in SLOT1. This latter cartridge has the standard BASIC environment including a few minimalistic routines to load data from the data cartridge into the memory of the P2000T. In a modified boot procedure, a custom launcher application is loaded which interfaces with the SLOT2 cartridge. In this launcher application, the user can select a BASIC program which is inserted into memory while the launcher application is simultaneously removed from the memory upon which the BASIC program is executed.
The simple cartridge is the most simple design and a great place to start to learn how cartridge interfacing on the P2000T works. The basic cartridge exposes 16kb of ROM to the P2000T. It is explained how to design such a cartridge, how it interfaces with the P2000T and how a simple program is executed from the cartridge.