10

I've been doing a lot of reading about the ways Apple IIc owners expanded their machines in the absence of the IIe's slots, and it's very intriguing stuff. The ones that I'm most curious about are the Z-RAM Ultra series, which expanded the RAM, added real time clocks, and even added CP/M capability a la the Z80 Softcard. My theory at present is that these usurp a vacant slot in the IIc's virtual arrangement, however I don't have a lot to back it up. Comparing the IIc's and IIe's motherboards, it appears that the former doesn't even do IOSEL in the same way as the latter, which I suppose makes sense.

The main reason that I ask is, being a IIc owner myself, I'd like to engineer one myself someday. I'm a bit of a novice with both the II and digital electronics in general, but I think this is a cool learning opportunity.

2 Answers 2

8

All the Apple //c machines from September 1986 onward have an additional 34-pin header on the motherboard designed for memory expansion boards. Apple offered their own expansion board which support up to 1MiB of additional memory internal to the Apple //c. Other manufacturers, such as Applied Engineering offered 3rd party versions of these memory expansion boards, such as the Z-RAM Ultra that you mention. Also, the Laser 128 and later Apple //c Plus supported their own slight variations.

The 34-pin header includes many, but not all of the 65C02 bus signals. The connector is really purpose-built for these memory expansion boards, and there is firmware in the ROM of the Apple //c that allows them to be used as RAM disk devices under DOS, ProDOS, or Pascal. The memory expansion occupies Slot #4, from the viewpoint of the OS or application software, and supports the SmartPort device protocol to look like a disk ("block") device. It is software compatible with RAM disk expansion cards designed for the //e as well. The normal configuration under ProDOS would allow you to access a new volume called "RAM4" as a RAM disk. See this answer for some more info on access to Apple //c "Slinky" memory expansion.

Since this motherboard connector is connected to the 65C02, other peripherals, such as the mentioned real-time clock are certainly possible. Also, since you are adding a circuit board with memory and firmware, adding additional capabilities like a Z80 to run CP/M also become possible. I suspect that for the Z-RAM Ultra, the Z80 "takes over" the expansion memory and uses it as local memory, while also using its interface to the Apple //c bus to access the other peripherals.

The motherboard connector is not physically like a slot on an Apple //e. The signals available are much more limited. So, I think that 3rd party developers got creative with how they added features to these boards and likely developed proprietary software methods for communication between their expansion board and the rest of the Apple system. The connector is documented in the Apple //c Technical Reference manual, but the information is limited to just the basic schematic and pin-out. I think that 3rd party developers began by just reverse-engineering the Apple memory expansion card to some degree, and later added the multi-function enhancements to make their product more competitive with Apple's.

Update: As pointed out in the comments, the Z-RAM Ultra (specifically asked about by OP) bypasses the memory expansion connector and fits into the IC sockets of the CPU/MMU on the Apple //c motherboard. Thus, it would not be nearly as limited on controlling the 65C02 and everything else connected to it, as this makes it more of a "superset" of the signals available from a regular Apple //e slot and not a subset of those signals.

enter image description here

3
  • The Z-Ram cards didn't connect to the Memory Expansion header on the ROM 03 and later IIcs though, it sat between the CPU/MMU and the motherboard. I was more asking about those kinds of expansions. Thanks for the answer, though! Commented Sep 22, 2021 at 18:48
  • The Z-RAM actually does not fit into the memory expansion connector that later IIcs have, but rather directly into the MMU and CPU sockets of the IIc. The memory expansion connector wouldn't work, because it, for example, doesn't provide the RDY signal that would be used to isolate the 6502 from the bus.
    – tofro
    Commented Sep 22, 2021 at 18:49
  • @CadenSnyder You are right and I updated the answer. I'm not sure it matters much if your intention is also to support the Apple/"Slinky" type of memory expansion. If you just want to put novel hardware into a //c, then plugging a custom PCB into the CPU socket is straight-forward and highly flexible. But working with legacy software that expects a certain type of memory expansion behavior is obviously very different.
    – Brian H
    Commented Sep 22, 2021 at 19:06
5

Z-RAM installs into the CPU and MMU sockets of the IIc (the chips have to be removed from the motherboard and placed on the Z-RAM). The memory expansion connector that later IIcs have is not used.

Even if there aren't any physical "slots" in the IIc, its operating system uses "virtual slots" for compatibility with the classic Apple II. (Not much to do with actual hardware, just how the peripherals are presented in the OS)

The IIc is designed to look to applications just like a IIe with a SuperSerial card in slots 1 + 2, an 80-column card in slot 3, a mouse in slot 4 (later ROMs) and a Disk II controller in slot 6.

The Z-RAM places the RAM-disk in slot #3, according to the manual I have (unfortunately, the accompanying card is long lost). There is, however, a utility included that allows you to re-map the RAM disk to any slot number.

The Z-RAM adds a bank select register ($c073), that allows to select which of the max. 16 valid Z-RAM memory banks will be mapped in as "IIc auxiliary RAM" - once this is selected, this Z-RAM memory bank will act just like the "normal" IIc auxiliary RAM (above 64 kBytes), so receives full OS support.

The Real-time clock is not assigned any slot, but rather accessed through memory-mapped registers (OKI 6242B RTC at $C060-$C06F). The Z-RAM apparently came with a specific ProDOS driver to integrate the RTC.

The manual I have doesn't give a lot of details about the CP/M implementation and the Z80B it has on board.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .