Re: Open source?
If you had programmed any other 8-bit machine you'd know this is not the norm. Every other machine uses: (i) regularly-sized memory areas; (ii) with a single point of control.
Going to have to disagree with that one. Take a look at the Spectrum +2A/+3's memory map. You OUT to one port setting a bit which turns on the special +2A/+3 memory map mode and then set or unset two other bits which choose which of the four special maps you want to use. Or you don't set the special bit and use the previous 128K/+2 memory map with the slight difference that you set or unset a further bit which is the upper bit of which of the four ROM banks you want in the bottom 16K.
Then is another port which you OUT to which sets up the 128K/+2 memory mapping. You set or unset the bottom bit of which of the four ROM banks you want in the bottom 16K (however if you really are on a 128K/+2 then the upper bit in the port mentioned above doesn't exist and you're only switching between two ROM banks using this bit) and set or unset three bits which select which RAM bank is active in the top 16K. Also, just becuse, setting or clearing another bit will switch the screen which is displayed.
Or you can select Spectrum 48K mode with another bit and then there's no way back.
With a C64, near the top of the memory there are a bunch of banks. The first bank is RAM or overwritten with the low part of the cartridge ROM if you have the cartridge plugged in. Then above this bank you have a bank with the BASIC ROM, or RAM, or overwritten with the high part of the cartridge ROM if you have a cartridge plugged in. Next there is a bit of RAM, above that a smaller bank which can be I/O, RAM, or the character ROM. Finally there is the kernel ROM or the high part of the cartridge ROM if you have a cartridge plugged in - again.
If you're a fan of everything being possible in two or three ways, each method being a particular combination of two or three other discrete inputs then, yeah, there's a lot to like in the world of Woz.
If you set 80STORE you're saying you want to page in display memory and the PAGE2 and HIRES bits allow you to choose the amount of memory, depending on the current screen resolution. Or if you're just interested in RAM use RAMRD and you get all the alterate RAM paged in for reading including the display memory.
Given that if you use RAMRD you could page out the code you're currently executing, being able to page just the display memory is useful if you're only interested in accessing the display memory.
There is a conspiracy theory, which often nonsensically fingers Steve Jobs himself from then beyond the Apple grave, that the clock was limited, but basic facts seem to disagree.
Apple IIgs on old-computers.com:
Sales were strong initially and the IIGS even outsold the black and white Macintosh units that were its contemporary. Sadly, Apple wanted Macintosh to be its future. The total number of advertisements and commercials for the IIGS could probably be counted on one hand. If the computer had been introduced a year or two earlier, things might have been different. The Apple IIGS disappeared from the market in 1992.
In one final gasp, the Apple II supporters at Apple designed the Apple IIGS Plus, code named "Mark Twain". It had an 8Mhz 65C816, a built in SuperDrive, 2MB on the motherboard, and a hard drive. Prototypes leaked out and a user group that has one and wrote a series of articles about it. Apple management vetoed this unit.