• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Technical explanation of why the LC, LC II, and Classic II have a 10MB RAM limit

Melkhior

Well-known member
(...) So, any 68000 Mac could have easily supported up to 15MB of RAM without Function-code tricks (...)
On the commercial side, there would have been no point contemplating more than 8 MiB of memory in a machine introduced in 1984 (the original Mac). The odds of memory becoming affordable enough to justify putting that much memory in the lifetime of the machine were pretty much zero, and the CPU was too slow to really justify that much either. By the time the Portable and PB100 shipped, they were entry-level in terms of performance, and there were enough '020/'030 machines for software to have become a bit larger and justify pushing the boundaries a little in the address map. The IIci was shipping standard with only 4 MiB, and that was way too expensive for most individuals to buy unless for professional reasons. IIRC, you had to wait for the PCI PPC Mac era for systems to ship standard with strictly more than 8 MiB.

On the technical side, in many early Macs each I/O device has a full 64 KiB of dedicated memory space. It may seem wasteful, but decoding is expensive if you start looking at many signals. And for designs of the early 80s, everybody lives on the CPU bus, you don't want to overload them by having too many chips looking at the same address bits (high fan-out). You can have extra buffers, but that adds cost (and delays on signals if you need to chain them). Having a simple address map is also a lot easier to implement and debug, in an era were a lot of stuff was done by hand.

Why spend a lot of efforts (time and money) to make a more expensive product do something that is never going to be useful during the lifetime of said product?

To summarise from the 1983 68000 data sheet, FC0 is low for program access, FC1 is low for data access and FC2 is low for user access.
So, at a simplistic level one could use FC2 to provide an additional 16MB of Supervisor address space?
Potentially, but then you have an issue if supervisor accesses cannot reach the user addresses. That's why the software side quickly becomes a nightmare; you have to deal with a super complex address space, where you might want some ranges (of A with FC) to overlap so you can access them from more than one context, yet some not to so you can expand the physical space. It's much easier to use a flat address space and use the FC for what Motorola intended them, access control.

Even in the much more expensive systems wrom workstation vendors, the 68000 & 68010 were not paired with more than 8 MiB of memory (perhaps 12? don't remember anything higher). By the time it became cmmercially feasible to ship more memory, they had migrated to the 68020 and its native 32-bits bus - exactly what Apple also did with the Mac II when building a system with the 68020 became more affordable (e.g. Sun-3 suing 68020 were introduced in late '85).

In the same way, I don't remember much use for the 68040 UPA lines. Apple didn't even bother connecting them to the PDS.
 

Phipli

Well-known member
IIRC, you had to wait for the PCI PPC Mac era for systems to ship standard with strictly more than 8 MiB.
Yeah, they were aiming for 4MB still with the PPCs, but between 7.1 and the 68k emulator, they could run it in 4MB, but it didn't leave much for applications, so they moved to 8MB.
 
Top