I always thought than in a memory-expanded Apple IIc fitted with firmware version 3 or 4 and an Apple-built memory expansion, the extra memory above and beyond the first 128K is connected in a way that's indentical to the way the so called "Slinky" Apple IIe memory expansion card for a II+/IIe works. I.e. there is no direct CPU access to the memory on the card; rather it uses DMA to transfer data between the 128K main/aux memory and the up to 1M expansion card memory.

However another question on this site stated that the Apple IIc uses the register $C073 for switching between several aux memory banks, like the Applied Engineering RamWorks.

So which is right - is Expansion Memory in a memory expanded IIc, using only Apple-Supplied hardware, addressed by the CPU like a "Slinky" card (write stuff to registers, wait for DMA to finish, see data from the card magically appear in main memory) or like a AE Ramworks (write stuff to register, instantly see aux memory go away and stuff from the card appear in its place)?


Per Apple IIc ROM Versions:

Memory Expansion IIc (ROM version 3)

... The new motherboard added a 34-pin socket for plugging in memory cards irectly, which allowed for the addressing of up to 1 megabyte of memory using Slinky-type memory cards. ...

So you're correct that the expansion cards are Slinky-style.

Following up on that, I also found a collection of Apple IIc Technical Notes which includes #5: Memory Expansion on the Apple IIc:

Beginning with the third Apple IIc, which was announced in September 1986, all new IIc models differ significantly from their predecessors. The most notable of these differences is the addition of a memory expansion capability. The memory expansion card for the IIc is functionally identical to the card for the IIe ...

Looking further around, I discovered documentation on a IIc firmware bug in Slinky memory size detection which conveniently has a partial disassembly, showing Slinky-esque address and data registers.

So I think your initial belief was correct and the auxiliary memory cards being references in the other answer are a distinct type of memory expansion.


The official way to access either RAM is due the so called 'Protocol Converter'. A call convention, introduced with the IIc disk port. The IIc disk port was the first enabled to hanabled to handle multiple peripherals over one bus. Protocol Converter interface is much like Prodos' MLI and allows to access block or character devices in an abstract way.

At that time RAM cards/expansions were as well fitted with Protocol Converter drivers in ROM. Examples are Apple's The Apple II Memory Expansion or AE's RAMfactor and of course, as first implementation, with the Apple IIc ROM3 board. Here the memory driver replaced the (never really used) Apple Talk support and operated from a virtual slot 4.

  • 2
    thank you for your answer. However what I really wanted to know was how it is handled in hardware, i.e. how you would talk to the card directly, without going through ROM. Also what do you mean by "multiple peripherals over one bus". Do you mean "multiple peripherals in one (virtual or real) slot"? Because older Apples do already handle multiple peripheral cards connected to the one system bus... – TeaRex Jan 24 '20 at 12:37
  • No, its about a single card/Interface, or more correct a single API. With the ROM-0 upgrade the Aplle IIc disk port was enhanced to support 'smart' drives like the newly introduced UniDisk which had their own CPU and controller. While the ROM only supported up to 4 drives, the bus structure could handle way more. The term Smartport was used for the port itself, as well as for the 'protocoll Converter' API. Apple II could be retrofitted with an "UniDisk 3.5 Controller" card - not to be confudes with the "3.5 Disk Controller" or Superdrive Card able to add a 1.44 MB PC style drive. – Raffzahn Jan 24 '20 at 13:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.