RamFactor LC

I have devised a way to replace the Slinky firmware in the Apple //e Card for Macintosh LC with the Applied Engineering RamFactor firmware.

Doing so gives all the partitioning features of the RamFactor. Unfortunately since it's not persistent it can't be recovered after exiting/restarting the IIe Startup application.

Download

Installation

  1. Download RamFactor LC to your Macintosh.
  2. Decode the Macbinary file. The resulting file will look like an application, but it is not and clicking it will do nothing.
  3. Open RF LC and a copy of IIe Startup in ResEdit.
  4. For each resource type:
    1. C8xx:
      1. Open C8xx in RF LC, select all resource IDs and copy.
      2. Open C8xx in the copy of IIe Startup.
      3. Paste the copied resources, and choose to overwrite the existing ones.
    2. CNxx:
      1. Open CNxx in RF LC, select all resource IDs and copy.
      2. Open CNxx in the copy of IIe Startup.
      3. Paste the copied resources, and choose to overwrite the existing ones.
    3. Monx:
      1. Open Monx in RF LC, select all resource IDs and copy.
      2. Open Monx in the copy of IIe Startup.
      3. Paste the copied resources. There should be no existing resources with the same IDs if this is your first time copying them to this particular copy of IIe Startup.
  5. Quit ResEdit, save the copy of IIe Startup on your way out.

At this point launching IIe Startup and configuring the RAM Card will give you all of the functionality of the the Applied Engineering RamFactor card with firmware version 1.4.

The manual can be found here, more info here.

Technical

This serves as a proof of concept for modifications to the software/“firmware” of the //e Card. In particular this demonstration does the following:

  • Replaces slot code in the slot-specific Cnxx-space.
  • Replaces slot code in the shared C8xx-space.
  • Adds additional firmware in both aux firmware banks.

The steps it took to do this:

  1. Analysis of the ''IIe Startup'' application.
    1. Decoding the simple obfuscation used in the main firmware.
    2. Determining the header format of the main firmware.
  2. Disassembly of the RamFactor firmware.
  3. Modification of the RamFactor firmware to account for no C8xx bank switching.
  4. Modification of the RamFactor firmware to know where to find the partition manager and diagnostics in the //e Card aux firmware banks.