Anyway, the reason for my curiosity: I'm working on building my own computer on an FPGA...
Cool! I've always thought that would be an awesome project to do, but I have neither the patience nor the knowledge to get it done...count me in as impressed!
The original Mac was built before there were Microcontrollers as we know them today, and a lot of the I/O circuitry which has found its way onto system chips just wasn't put on a chip with the CPU back then.
Ah, that's a good explanation! Looking at the Wikipedia page for the 6522 pretty quickly made me think it was just like a microcontroller GPIO peripheral. I was wondering why they needed it...makes perfect sense.
Presumably the Portable and some others were able to map the ROM to a higher memory location (and that when this occurred, the system knew the upper RAM bounds).
Guide to the Macintosh Family Hardware says that in the Portable's address map, the ROM starts at $900000. So there is actually room in the address space below ROM for 9 MB of RAM. I don't think the ROM space gets dynamically moved around or anything like that. Some Googling confirms 9 MB of RAM can be used in the Portable, except for the backlit version which only works with 8. I'm too lazy to do any more research on the reason behind that though
(As a side note, unlike how it works on the 128k/512k/Plus, ROM overlay mode is exited on the Portable automatically the first time an access is made to the normal ROM address range)
Which leads to the question whether any third party manufactured an add-on for the Plus or earlier that remapped memory for the ROM to permit more than 4MB system RAM.
I doubt it -- I think it would require totally replacing the PALs to change where the ROM is mapped, and then changing any software (OS, user applications) that assumes the ROM is mapped at its old location. I think the ROM is designed to be able to be moved to a new location (uses relative jumps and stuff like that that don't refer to an absolute address), but I just don't know if the hardware can allow it. I think newer processors with an MMU would have more flexibility in that regard...
Similar limitations applied to boards based on the LC/LCII design but one of the third party accelerator manufacturers cracked this. It's in my notes somewhere but before I look it up I'd appreciate other thoughts.
Unfortunately, Apple's dev notes are missing the original LC note, and the LC II note just talks about differences between the LC II and original LC, so I can't refer to Apple's documentation. If anyone knows where to find the original LC developer note, I would love to add it to my collection! I'm guessing that the upgrade cards also end up bringing an MMU into the picture (68030 and above) which probably allow all kinds of address remapping. Just a thought...I could be completely wrong too.