Jeff Mazur & the CDrive / CKeeper

Jeff Mazur was the creator of two exceptional third party products planned for the Apple IIc that, sadly, never became available. Applied Ingenuity was going to produce and sell them, but went out of business before this could happen. One of the products was the CDrive, an internal hard drive for the IIc. The other was the CKeeper, a multifunction card that offered extra memory to the IIc, as well as a clock and calendar chip, and a RAM saver feature, which maintained power to the RAM in the computer in case of a power failure. These cards were mentioned in brief in Chapter 7.

In June 2010, a discussion thread on Applefritter took place discussing a CDrive recently sold on eBay. Jeff ultimately contributed to the conversation, and he has given me permission to reproduce his comments and photos here. You can read the full conversation here.

Here is the original … photo of the very first CDrive prototype. It was designed to plug directly into the CPU socket (after moving the chip onto the CDrive board). This was similar to how I designed the Proclock //c and Superclock //c boards (they actually went in upside-down). When the //c+ came out, with its memory card that plugged in and bridged over the CPU, we had to use a DIP plug and ribbon cable instead to attach to the CDrive board.

I … have the original disk that came with the CDrive which has the formatting and head parking programs (yes, you had to manually park the drive head before shutting down to avoid damaging the useful area of the platter).

The CDrive used an IDE (aka XT) drive such as the Seagate ST325X.

CDrive prototype - Photo credit: Jeff Mazur
CDrive, in place in an Apple IIc - Photo credit: Jeff Mazur

Jeff also discussed the CKeeper:

As for a “holy grail” of //c addons, the CKeeper was pretty close (even though it never went into production). It had battery backed RAM, clock, dozens of built-in commands for screen printing, program interruption and resume, etc. all directly accessed with the Reset key. Integration with the //c ROM was one of my finest achievements. The pièce de résistance was its ability to act like a modern day laptop or iPad in sleep mode; you could just turn off the //c at any time, or even pull out the power cord, and when it came back on you would be exactly where you were when it went off.

It was compatible with everything (including the CDrive) with only one unfortunate exception: the ZipChips. Here is a photo of the one and only CKeeper (aka Tiger Tail Plus, after Apple’s code name for their //c+ memory card):

CKeeper prototype - Photo credit: Jeff Mazur

He discussed the CKeeper further:

I was quite active in the Apple II days from the very beginning. I tried to sell some of my designs to Apple, then started a side business, and eventually was ordered (along with others) to stop using product names that included the word Apple. I still have my rejection letter with notes from Woz and Jobs as well as the cease and desist letter from their lawyers!

It was a different time back then. In fact, many people were copying other’s work (including the Apple II itself) almost with impunity. If imitation is indeed the sincerest form of flattery, then I suppose I was quite flattered. For example, it is a little known fact that Applied Engineering got its start by ripping off other people’s designs. Their first clock card was a complete clone of my hardware, firmware, and software. Even the manual was virtually a copy of my own.

As for the CKeeper … I can describe some of the unique features of this product. One of these was an innovative use of the reset button on the //c. Due to a fortunate design on Apple’s part, I was able to detect when this button was pressed by simply monitoring the Reset line at the CPU socket. The normal operation of the //c used a pull-up resistor on the Reset line as expected. The Reset button when pressed connected this line to the Control key, which was also pulled up and switched to ground when pressed. Thus a ctrl-reset was necessary to actually reset the computer. By adding a small load (high value resistor) and voltage comparator on the CKeeper card, it was possible to detect the difference between one and two pull-ups, and thus make the normally meaningless press of the Reset button alone become a useful initiator of the CKeeper’s extended functions.

The real coup however was being able to add my own clock, interrupt, and extended feature routines to hooks in the //c ROM. This required a number of oft-used tricks such as using the second byte of one instruction to be the opcode for a different entry point. I think Woz started this trend with his serial card, probably just to save a single byte. The //c ROM however contained many such entry points that needed to be preserved as well as other code segments freely mixed between “slots.”

Unfortunately, I needed some entry points and “slot identifier bytes” (e.g. to read the clock) which conflicted with Apple’s code. I almost gave up until I realized that I could actually make this work by using the Sync signal of the CPU. I may be the only person who ever used this signal on an Apple II, and unfortunately it was the one thing that eventually would make it incompatible with the Zip Chip CPU’s. Essentially, the sync signal allowed me to place two different bytes of information at a single memory address. One byte would only be used when the CPU was starting a new instruction; the other byte was presented when the CPU was expecting data. This was the key to having two different bytes of information at the same address. It also meant that if you tried to use the //c’s disassembler to read out the contents of my firmware, you got meaningless jibberish. It looked like the code could not possibly work – yet the 6502 was perfectly happy with what it saw!

The extended features of this card allowed any program to be interrupted – at any time – at which point you could print all manner of screen dumps (great for documenting that all time high score of a game) or go into the //c monitor program. I often used this to change memory locations, for example the byte which stored the current number of “lives” left in a game. Thus, I could give myself unlimited men in certain games (and thus reach those all time high scores!).

The battery-backed memory and save/resume feature was quite amazing to see. I would often show the computer running some game and then pretend to accidentally pull out the power cord. After a few minutes, I would plug it back in and watch the faces as the computer immediately resumed right in the middle of the game where it left off. This technology was even ported to the early Macs. I designed similar boards for the Mac II, Mac SE, and SE30. Unfortunately, as I tried to get others to manufacture these products, I followed one company after another (Practical Peripherals, Checkmate Technology, MDIdeas, and Applied Ingenuity) as they faded out of existence.

Fortunately, I never quit my day job (as a broadcast engineer). Of course, it might also be that because of this I never had the passion (or fear) that was needed to really make something happen. Nevertheless, I look back on those days as some of my best work.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.