Post by Zach ZSo, Maximizing the amount of directly addressable RAM the machine can
have was not a design choice. It did not matter if bank switching was
necessary to allow for nearly a full 64K RAM. Is that true?
When the Apple II was introduced in 1977, I think it was available with as
little as 4K RAM. You could've gotten it with as much as 48K, but this was
obscenely expensive at the time. Throwing a bit of address space (only 256
bytes, half for the motherboard and the other half split across 8 slots) at
I/O was a cheaper solution than the alternative, and there was still more
than enough space for RAM.
It also simplifies the software side of things. Want to wait until a key's
been pressed? Read the keyboard register and loop until the negative flag
is set. Two instructions, five bytes...and the key that was pressed is
already in the lower 7 bits of the accumulator. If the "key's-been-pressed"
bit had been shoehorned in with a bunch of other flag bits, you'd need to
read a value, mask it to get the bit you want, branch until the bit's set,
and then read the character that was pressed from someplace else. At a
minimum, I'm guessing four instructions and 10 bytes. Twice as much code,
and who knows how much more logic to make it happen.
_/_
/ v \ Scott Alfter (remove the obvious to send mail)
(IIGS( https://alfter.us/ Top-posting!
\_^_/ >What's the most annoying thing on Usenet?