8

It's possible to extend the Commodore 64 expansion port bus with boards like the [Aprospand-64]:

Aprospand-64

This example dates from 1986, but there appear to have been a number of contemporary expanders, and the idea predates the Commodore 64 itself. (I don't have a date for the VIC-1010 slot expander, but a schematic for the VIC-1020 expansion chassis is dated 1982-04-20, half a year before the release of the C64.)

Thus it was physically possible to have more than one cartridge connected at once, though whether these would actually operate together rather than getting into a "bus fight" depended on the particular cartridges.

What cartridges, if any, were typically used together at the same time by regular "end users" (as opposed to people with a good understanding of electronics who could make modifications to the cartridges and/or bus extenders)?

9

extend [...] with boards like this one

It might be notable, that the mentioned X-pander-3 is a rather new and comfortable solution.

Many extenders, as they were called back then, were much less capable, often barely a switch to enable power to either cartridge.

Typical examples are

all the way down to straight plug multipliers with no switching functionality at all, like their

What cartridges were typically used together on Commodore 64 systems?

Typically: None. The C64 expansion port was only designed with a single module in mind.

The default purpose is to no have to plug them all the time when switching between cartridges, but just press a button (or two). This is a principle shared by many cartridge switchers - all the way back to the VCS)

Thus it was physically possible to have more than one cartridge connected at once,

Usually not. Most expanders offer a way to enable only one of them. Some could be configured to have more than one attached at the same time, but uses are rather rare, as the expansion bus only provides a limited set of non managed resource identifiers and requirement signaling. Namely

  • IO1 (page $DE)
  • IO2 (page $DF)
  • ROML ($8000..$9FFF)
  • ROMH ($A000..$BFFF)
  • EXROM
  • GAME

(*2)

though whether these would actually operate together rather than getting into a "bus fight" depended on the particular cartridges.

Usually all expected to be sole 'owners' of the bus. Thus not being able to cooperate at all. Exemptions are combinations of pure interfaces (using IO*) and a single ROM cartridge.

What cartridges, if any, were typically used together at the same time?

If at all, only interfaces using (only) one of the IO* selects - and only if being configurable to either/or an expansion interface allowing configuration, like the mentioned X-pander-3. In addition a ROM cartridge can be used. Then again, such interfaces, more often than not, also contained already ROM.

A different situation might have been with the comparably small user base of DIY hackers, building their own interfaces. But their creations were anything but a standard to be asked for (Note *1 as well).


Magic Voice has been mentioned by bodgit. Unlike as it may seam at first sight, the Magic Voice isn't a (one slot) extender offering to have (an) additional cartridge, but a combination of speech hardware with its own ROM.

The ROM can be disabled, allowing access to a ROM from a plugged cartridge. To do so all management signals (see above) are routed thru the controlling gate array and/or the 6525 TPI. The hardware is (unchangeable) tied to IO2 (See the reworked schematics).

When booting up the C64 detects EXROM pulled and hands control to the ROM. After that the Magic Voice ROM installs its routines in RAM (below BASIC and KERNAL ROM as well as at $C000) and disables its own ROM. Next a check for a ROM cartridge plugged in its slot is performed (reading EXROM/GAME via the TPI). If not, it hooks BASIC and continues in KERNAL (skipping its vector initialization), ending up in regular BASIC startup.

If a (game) cartridge is detected, it gets mapped in according to its GAME/EXROM (and optional CBM80 signature) setting and started. If the cartridge is voice enabled, it will check $C000 for a signature and use the loaded software as provided. If not, it'll just use the C64 as is - rendering the preloaded speech software random data :) (*3)

Bottom line: Stand alone it's speech cartridge with BASIC extension, with a speech enabled cartridges it's an expansion hardware (*4). In neither mode it's an extender.


*1 - Rex Datentechnik GmbH modules are an interesting exception to all of this, as that company not only offered the usual extender types, but mainly a huge palette of modules. Many of them for data acquisition and alike. Most of them configurable to coexist with others of the series on a single bus. So by buying only of their series many different boards could be used at the same time.

*2 - The mentioned X-pander 3 is a great example of a good solution, short of using active components, as it allows to switch all of these plus power. Though, adding two LED to show the state of GAME and EXROM (for the selected one) would be nice as well.

*3 - Thus using Magic Voice with a non enabled cartridge always adds a (rather short) start delay.

*4 - One may think of it as of some SNES enhancement chips. Except here the user buys it separate, lowering the cost for follow up game cartridges while at the same time earning additional money.

  • 3
    Umm....so can your answer summarized as "regular users never used more than one cartridge"? – Curt J. Sampson Sep 29 at 15:27
  • @CurtJ.Sampson Jup. Or more exact: "Regular users never used more than one cardridge at one time". Extenders (as they were called at the time) did sell well as 'simple' cartridge switchers. – Raffzahn Sep 29 at 17:11
7

Although not an extender in the true sense as it only had one cartridge port, the Magic Voice expansion allowed game cartridges plugged into it to take advantage of its abilities to provide speech in games. This ended up only being used by the Wizard of Wor and Gorf titles. However, it is technically two cartridges working simultaneously that an "end user" might have used back in the day.

Magic Voice

All other uses I've seen are using cartridges that have only come into existence in recent years such as combining one of the various NIC cartridge implementations with the Ultimate II/II+ emulated-1541-in-a-cartridge.

  • This is exactly the kind of information I was looking for! Do you have any technical details on how this worked, particularly how it avoided bus fights with other cartridges? (If not, that's ok; I can research this.) – Curt J. Sampson Sep 30 at 10:46
  • I do remember reading how it worked a while ago, particular as the guts of it made it into one of the "264" prototypes. I thought it was on zimmers.net somewhere but I can't find anything of detail now. – bodgit Sep 30 at 10:56
  • 1
  • BTW you can edit your answer to include that information so that people can find it more easily. – Curt J. Sampson Sep 30 at 11:30
  • @bodgit It isn't really two cartridges in parallel, but the MagicVoice intercepting and handling signals for the other. All access to the plugged cartridge is controlled via the gate array. Which itself is controlled via IO2. – Raffzahn Oct 4 at 20:01
5

The most common usage for an expansion bus extender was to simply eliminate the wear-and-tear on the computer's expansion connector from frequently swapping cartridges in and out. Instead, the expander offered a more "sacrificial" connector for this purpose, and could more easily be replaced if the connectors wore out.

The most common case I know of for sharing the expansion slot was the addition of RS-232 cartridges for communication with higher speed modems. User port RS-232 was notoriously slow before software workarounds for that were eventually found. So, many users opted for a 6551 UART (ACIA) based solution that connected to the expansion port and could be used with the standard serial connectors on higher speed external modems (usually 2400 bps and up). IF the user wanted to combine this UART expansion cartridge with something like a Fast Loader cartridge or a RAM expansion cartridge, they could co-exist without conflicts. The UART cartridges usually only needed either /IO1 or /IO2 for data transfer, and the IRQ line for synchronization. These lines were not needed for ROM cartridges and for most RAM expanders, thus allowing them to coexist with the UART cart.

1

The CARDBOARD/5 was an expansion unit released no later than 1985. Appendix A of its manual discusses enabling more than one cartridge at once. They mention 80-column display interfaces and IEEE-488 bus interfaces (for connecting to PET peripherals) as usable simultaneously with other cartridges. They provide a detailed description of handling the situation where you want to use the IEEE interface to save data from a cartridge-based word processing program.

While it's a discussion from 2016, the Cartridge expanders topic on the lemon64.com forums provides some examples that apply to cartridges available in the 1980s. The most common pairing appears to be an REU (Ram Expansion Unit, released 1985) with a utility or fast-loader cartridge. Other (1980s) cartridges people mention pairing with the REU are a MIDI interfaces and the SwiftLink RS-232 interface.

Though a decade after the 80s, Commodore World Issue 7 from 1995 has a Hardware in Review article that discusses the EX3 expansion board, which had facilities for swapping I/O1 and I/O2 on one cartridge to allow two cartridges both using I/O1 (or both using I/O2) to be used together. The examples given include all of the above, as well as the HART and SID Symphony cartridges.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.