“It is fun to reinvent the wheel. If it were not for folks doing this, we would never have built a better mouse trap…” – Some Dude
But when it comes to expansion cartridges (Paks) for the Tandy/Radio Shack TRS-80 Color Computer, what if we never had to reinvent the wheel again?
These days, it is easy to make virtual hardware by the use of FPGAs and other such devices. At a smaller level, there are already examples of expansion cartridges that have the ability to remap themselves into different I/O registers, all through software. This type of programmable hardware would be the basis of the PreciousPak.
Such hardware could, through software control, present itself at various I/O addresses within the CoCo’s memory map. This would allow it to appear at the same memory locations used by the RS-232 Pak, or the Orchestra-90 Pak, or anything else.
Then, the core hardware of the cartridge would be something like a programmable PIC chip or AVR (Arduino) processor, acting as an interface between the CoCo memory map and external hardware via SPI bus, I2C or TTL UART.
This is not intended to be a “one pak to do everything.” Think of it as the hardware equivalent of Jim Brain’s CoCoFLASH product. His smart flash Pak can be reprogrammed with various ROM Pak images, allowing it to act like any of those original ROM Paks. In the case of PreciousPak, it would require loading with custom firmware and adding the proper expansion hardware to it.
Here are some of the things PreciousPak could be easily made to do…
The PreciousPak could have special firmware loaded on it’s processor to emulate the 6551 UART chip found in the the Deluxe RS-232 Program Pak. This code would fix the known bugs, and could implement an internal buffer allowing for better speeds without data loss. An inexpensive TTL-to-RS232 module would be plugged in to provide the standard RS-232 connector.
The PreciousPak could interface with a Digital-to-Analog converter, and map in to the Orchestra-90 I/O address, and become an Orchestra-90 Pak. For advanced use, the firmware might even be made to allow loading up an Orch-90 music file and have it play in the background while the CoCo does other things. (Orch-90+!)
Of course, the PreciousPak could interface with an SD card module or USB flash drive adapter and then have firmware to make it look like a Kenton or other SCS/IDE interface. This would allow it to leverage already-existing OS-9 drivers and builds of RGB-DOS. Depending on the capability of the core PreciousPak hardware, perhaps it could even be made to emulate the Western Digital 1773 floppy drive chipset and act like a true floppy drive, similar to how CoCoSDC currently works. (Though, I expect this would require much more capability than would be needed for most other devices, so why bother…)
Firmware could emulate the 6850 UART, used by various CoCo MIDI Interfaces. A simple TTL-to-MIDI adapter would be plugged in, giving MIDI ports. By making it look like a 6850 in the standard CoCo MIDI Pak address, it would instantly be compatible with all existing MIDI software.
Completely new sound hardware could be added, and the firmware could translate incoming commands as needed. Software written to use the Texas Instruments SN76489 chip (like in the GameMaster Cartridge by John Linville) could work on this sound pak, provided whatever native sound chip it used was similar, and the firmware translated the commands.
Perhaps firmware could exist to allow dynamically switching into different modes, to emulate the types of sound found in Roger Taylor’s CoCo on a Chip FPGA project, or Gary Becker’s CoCoFPGA project. Perhaps it could be made to provide some level of emulation of the Tandy Speech/Sound Pak.
Product or Service?
This common hardware design would allow more folks to come out with custom hardware. With dozens of types of expansion devices based on the same core board, manufacturing costs could be reduced. And, with many expansion add-ons being off-the-shelf parts (like adding .92 cent RS-232 adapter), the overall cost of many items would probably be a fraction of what a custom board would cost.
There are so many off-the-shelf devices available today that could be made into such a Pak… Real time clocks, camera modules, WiFi, etc.
And, for folks on a budget that might now want to buy multiple paks all set up for different devices, they could buy just the core board, and then several of the add-on interfaces. They’d have to swap out firmware and modules before they could use it, of course, but it would be possible.
I find it a very intriguing idea.
But, unless someone with the know-how steps forward to do it, it will remain just a proposal.
About the Name
I was calling it OnePak, but there is a company by that domain name.