ADVENT #22 — rom cartridge

I wanted this series to be just like a real advent calendar your grandma might have sent you. A little morsel behind each door but overall maybe a little more milk chocolate than you want as an adult.
Today we have an entire class of devices – removable ROM cartridges for fonts, games, boring business applications.
Cartridges are maybe the most incompatible media — designed that way in part to ensure that things that fit in the slot work on the machine. Maybe this wasn’t such a bad system. Probaby bigger motivations were the obvious ones — they were more difficult to copy than tapes or floppy discs, but mostly cartridges were their own reader. The list price for a Commodore 1541 floppy drive was $400, easily more than the retail price of all the disk-based software that might ever be loaded in system over its life.
Cartridges were mostly straight extensions of the bus of whatever the microprocessor was in the system. This sometimes meant that the cartridge could be any type of peripheral compatible with the system. The Nintendo 64 game console had a modem available as a cartridge. The IBM PCjr — one of only handful of PC compatish systems to have cartridge slots — had a battery-backed real-time clock as a cartridge option.
You may not remember this, but early DOS systems used to ask you for the date and time when they booted, as if they had just arrived from the future and needed to be certain about when exactly they were and how horribly wrong the whole thing had gone.
Anyway, the point of this post was for me to tell you about the cartridges for the Canon TypeStar 7 typewriter from the mid ‘80s and how the unusual dual-row cartridge connector directly presaged the PCMCIA connector. Then I was going to tell you a whole thing about the cartridge slots on the HP LaserJet II and how Postscript made it to the PC printer market one cartridge at a time. Instead, I’m stuck on the PCjr and what a weird machine it was.
While the whole computer world was struggling to create the perfect 100% IBM PC compatible machine, IBM decided to make a machine that used 80% of the same components but which was compatible with 20% of the software. It sounds like a ridiculous machine until you look at the sibling IBM JX and see that IBM tried several times to converge the US and Japanese markets. This was a very ‘80s thing to want to do.
The thing about the PCjr that sticks with me is that it had a read-only interface with its cartridge ports but managed to have a clock cartridge available whose time could be set from the PC. Read-only is a mere abstraction. Addresses are data and read is write when there is logic on both the host side and the media side. Here’s a perfect example.
Even when the media is punch cards or paper tape, read can still write if a host system can burnish the media under program control (repeated read, execute, seek, etc).