13

I am in the process of repairing a Macintosh II and trying to understand the design rationale behind Apple's MMU replacement part installed in this machine.

As you can see in the picture, there is a socket for a Motorola 68851 MMU. In its place, Apple shipped the pictured chip. I am guessing it is some sort of custom discrete logic chip that provides limited MMU-like functionality.

enter image description here

What was accomplished with this design, and how do I use this chip if I want to "max out" the system RAM in the Macintosh II? Also, is there any possibility or point to swapping in an actual 68851?

15

Your Mac II “HMMU” chip implements the address functionality shown in this image, from Guide to the Macintosh Family Hardware, 2nd edition: Mac II 24-to-32-bit address mapping

The chip has two modes of operation. In 24-bit mode, the addresses are mapped as shown and the top 8 bits of the address bus are ignored. In 32-bit mode the address is buffered unchanged.

Early versions of the Mac system software store information in the top 8 bits of pointers (addresses). The original 68000 had only a 24-bit addressing capability, and so on 68000 Macs, the top 8 bits of a 32-bit address do not change what is output on the bus. The Mac II has a full 32-bit address bus, so, when running older software which uses those top 8 bits of the address, the 24-to-32 mapping must be turned on so the top 8 address bits are ignored.

In 24-bit mode, the Mac II can only access 8 MB of ram, so if you want to use more ram, you need to run “32-bit-clean” software which does not use those 8 top address bits. In this case, the 24-to-32 mapping can be turned off.

The PMMU is mostly for A/UX. It is possible to switch to a real 68851 “PMMU” but it doesn’t increase Mac OS performance unless you want to use virtual memory, and depending on your specific Mac II board, the MMU socket pinout may not match the 68851 and you might have to acquire and use the adapter card mentioned by jeffB.

  • Interesting the HMMU is somewhat programmable; at least enough to select between 2 possible modes. – Brian H May 1 at 22:30
  • 2
    Oh my. The typesetting in the image threw up a raft of memories of Inside Macintosh. Heavy-duty nostalgia kick, that. – dmckee May 2 at 0:38
  • I had a quick look in the Internet Archive, where a different revision of the text appears to be preserved — that diagram is instead Figure 3-5 in its version of Guide to the Macintosh Hardware Family and as implied comes much later in text, archive.org/details/apple-guide-macintosh-family-hardware/page/… – Tommy May 2 at 1:57
  • Whoops; didn't quite finish the thought there. Skip ahead to archive.org/details/apple-guide-macintosh-family-hardware/page/… and see the paragraph on the bottom of the right-hand page to confirm that Figure 3-5 is relevant to the Macintosh II. – Tommy May 2 at 3:03
  • 2
    Andy Hertzfeld's article on Folklore.org is fascinating reading on the decision to store metadata in the upper 8 bits. – Cody Gray May 2 at 4:01
7

I can answer the last part of your question: yes, the Mac II could use a 68851.

For a time, Virginia Tech required incoming Computer Science freshmen to purchase a (heavily discounted) Mac II running A/UX, Apple's first in-house-developed UNIX. These machines shipped with 2MB RAM, an 80MB HD (huge for the time), and a 68851 pre-installed; A/UX required the 68851 to work.

Somewhere, in a dusty corner, I have a prototype Mac II that has a small daughtercard in that socket instead of a 68851. I may also have some documentation from the beta-testing period that would shed light on the "alternate" MMU.

I believe the Mac II first shipped with Mac OS 6, which didn't support virtual memory. I don't remember if VM support in System 7.(whatever) required the 68851.

As I recall, the Mac II shipped with 256KB SIMMs, supported 1MB SIMMs (up to 8MB total RAM), and was expected to support 4MB SIMMs when they became available. Unfortunately, manufacturers changed something in the electrical interface for 4MB SIMMs, so they didn't work in the Mac II. I think someone may have made a 4MB SIMM that could work in the Mac II, but they were low-volume and prohibitively expensive, and the Mac product line had moved on by then. So, "maxing out your RAM" probably means 8MB -- but that still exceeds the 24-bit address limit in early Mac OS, so you may need a "real" MMU to take advantage of it.

  • 2^24 = 16 MB. Is there something I'm missing? – Mark May 1 at 22:16
  • 2
    @Mark The CPUs could physically map 16 MB of memory, yes. But that doesn't mean that the system supported that much RAM. The gap is what else is mapped in the address space. Macintoshes used the contents of ROM during normal operation, so that was mapped into the address space. The original 68000-based Mac mapping was 4 MB of RAM and 4 MB of ROM. The 68020-based Mac II changed that (also the Portable, even though it was still 680000-based), allowing up to 8 MB of RAM. – Cody Gray May 2 at 3:59
  • @CodyGray 4MB max memory out of a 16MB total linear address space? That's a surprisingly constrained memory map. For comparison, the 68000-based Amigas max out at 10.75MB of ram (although you have to do some funky contortions to physically install more than 9MB). – mnem May 2 at 4:38
  • "Nobody will ever need more than 4 MB of memory..." Remember that these were machines that shipped with less than 1 MB of memory. Expanding to 4 MB pretty much gave you more space than you really would ever need on that machine. I don't know the details about why this decision was made, though. Logically, it does seem that an 8 MB cap would be more sensible. It would also make sense physically, since these early compact Macs had 4 30-pin SIMM slots. If you found 4-4 MB SIMMs, you could easily expand to 8 MB, but that'd be as high as you could ever go. @mnem – Cody Gray May 2 at 4:40
  • @CodyGray Ya, I can see how it could happen, it just seems incredibly short-sighted. I mean most Amigas only shipped with 512KB of RAM and the original A1000 shipped with 256KB (originally planned to ship with 128KB like the original Mac). – mnem May 2 at 4:56

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.