The MC-10 has been around for a few decades now, and although it has a decent expansion port, not much has been done with it.
The only thing released by officially for it was a 16K RAM expansion. There have been a couple of items released by Darren Atkinson, the MCX-128 as well as a floppy-drive/joystick interface called the MCX32-FDJ.
One thing that has not ever been done is a game cartridge for the expansion port. I thought this would be a neat project, so I set about designing one.
I decided to go pretty basic on this one, with 16K of ROM for the software and 32K of SRAM (since the 4K the machine has internally is just so small).
Due to the way the expansion bus is designed to work on this machine, it’s not quite as simple as simply wiring up a ROM chip to the bus as it is with some other machines, like the CoCo1/2/3. Some logic is required to suppress a response from the internal circuitry when responding to an address read or write.
I decided on a CPLD for this task, a 9572XL in the 64pin VQFP package.
Initially, I designed the PCB with a few jumpers to allow for different configuration options. During development of the CPLD code, I realized these are not necessary, and removed them on the final version of the board.
The circuit consists of the mentioned Xilinx 9572XL CPLD, a 32K SRAM from Alliance Memory, a socket for a 27C128 or similar EPROM, and a voltage regulator circuit supplying +3.3v.
The way the MC-10 expansion bus basically works is that an external device on the port decodes for the addresses it will respond to, and then suppresses any other response by driving the !SEL line low. It’s a very simple, yet effective and flexible system, provided you supply all the necessary logic.
On the final version of the CPLD programming, the 32K of added RAM is mapped to $3000-$3FFF (usable by ML programs), and $5000-$BFFE (usable by BASIC also).
16K of ROM is mapped to $C000-$FFFF. There is a provision for a toggle, accessed at $2FFF, that switches the last 8K ($E000-$FFFF) between internal and external memory. This allows for the internal BASIC ROM to be either replaced with external ROM, or left intact. This way we can also run the cart as a RAM expansion using BASIC, as well as use it as a game cart.
I decided to use a couple of games that have been ported to the MC-10 by Darren Atkinson as the software for this first cartridge. Flagon Bird, a Flappy Bird clone originally written by Steve Bamford for the Dragon, and Space Assault (a Color Computer game).
I wrote a little menu and some loader code to tie it all together, including an “Exit to BASIC” option to make the cart useful as a RAM upgrade.
These were also designed to fit cases developed by John Strong to fit the latest revision of Darren’s MCX-128, so that there would be a case available for this project.
I designed a label and had a few printed, and there you have it… The world’s first game cart for the Radio Shack Micro Color Computer…