This cartridge was originally developed to speed up the manufacturing diagnostic of our GRAM and GLINK232 products. Having to load the diagnostic for every board is pretty tedious and time consuming. The UNICART/D allows to have a custom ROM for both C64 and C128 while allowing to still plug in an additional cartridge.
The board uses one standard PLCC32 flash ROM up to 4Mbit. In C64 mode 8K, 16K and 16K Ultimax cartridge modes are supported. In C128 mode both 16K and 32K cartridges are supported. A version without pass-through is available here
The schematics is very simple. The flash ROM is directly connected to the CPU bus. The most significant bits of the address are connected to dip switch P1 which selects the bank within the flash ROM.
Dip switch P2 selects the cartridge mode and size. Refer to the tables below for dip switch configuration. For C64 only configurations a 4 position dip switch can be used on P2-1 to P1-4. For C128 only configurations a 3 position dip switch on P2-4 to P2-6 is sufficient.
Diodes D1 and D3 form a wired AND to generate the ROM chip enable. D2, D4 and D5 are not strictly necessary but they protect the system bus in case of incorrect dip switch configuration. D6 is to be able to write the flash ROM in system. This feature is unfortunately not tested as we didn't have the time to write the software.
Resistors R1-R6 are used to replace P2 in fixed configurations.
DIP | Name | C64 8K | C64 16K | C64 Ultimax | C128 16K | C128 32K | Notes |
---|---|---|---|---|---|---|---|
P2-1 | EXROM | ON | ON | OFF | OFF | OFF | Not used for C128 |
P2-2 | GAME | OFF | ON | ON | OFF | OFF | Not used for C128 |
P2-3 | ROML13 | OFF | ON | ON | OFF | OFF | Not Used for C128 |
P2-4 | ROMH | OFF | ON | ON | OFF | ON | |
P2-5 | ROML14 | OFF | OFF | OFF | OFF | ON | Not used for C64 |
P2-6 | A13 | OFF | OFF | OFF | ON | ON | Not used for C64 |
P1-6 | EA13 | RA13 | OFF | OFF | OFF | OFF | |
P1-5 | EA14 | RA14 | RA14 | RA14 | RA14 | OFF | |
P1-4 | EA15 | RA15 | RA15 | RA15 | RA15 | RA15 | Only used on 512Kbit (64KB) or larger ROMs |
P1-3 | EA16 | RA16 | RA16 | RA16 | RA16 | RA16 | Only used on 1Mbit (128KB) or larger ROMs |
P1-2 | EA17 | RA17 | RA17 | RA17 | RA17 | RA17 | Only used on 2Mbit (256KB) or larger ROMs |
P1-1 | EA18 | RA18 | RA18 | RA18 | RA18 | RA18 | Only used on 4Mbit (512KB) ROMs |
Creating a ROM image
The ROM can contain a mix of both C64 and C128 cartridge images of any size. The only limitation is that each ROM image must be aligned at boundaries equal to its size. I.e. 8K images can be placed at any address multiple of 8K, 16K images can be only placed at addresses multiple of 16K and so on. With this scheme the absolute maximum for wasted space is 24K (one 16K and one 8K slot). In many cases the wasted space can be reduced to zero.
The ROM images must be in bin format. To convert crt files the utility cartconv from the VICE emulator can be used.
cartconv -i image.crt -o image.bin
to combine the images in linux:
cat image_1.bin image_2.bin image_n.bin > combined.bin
or in windows:
type image_1.bin image_2.bin image_n.bin > combined.bin
Credits
This cartridge combines all the wiring diagrams for the C64 and C128 cartridges from world of Jani into a single universal design. See the links below.