For the Apple //e, it was very common to have an extended 80-column card installed which brought the machine up to 128KB of RAM via 2 banks of 64KB each. There are soft switches in the $C0xx space which allow you to specify which bank is in use.

The thing is, it seems that the built in support for additional memory was limited only to the two banks and thus going beyond 128KB was not really in the design.

How did programs access the banks beyond the 128KB limit?

TL;DR

The thing is, it seems that the built in support for additional memory was limited only to the two banks and thus going beyond 128KB was not really in the design.

Jup. It was on purpose intended to not have any banks beyond 128k.

How did programs access the banks beyond the 128KB limit?

No banks, no access mechanism needed. Third party memory cards used different schemes - like emulating language cards (as on the II+), or switching 2 KiB blocks into the I/O ROM area.


When Apple realized that the Apple III wasn't the instant success as expected, the LCA (Low Cost Apple) project, on hold for some time, was (re)started. They still believed that the III would take off eventually, so the major goal was a cost-reduced Apple II design that could extend the profitability for a year or two even though sales prices were expected to drop. While the LCA should have 64KiB (to reduce chip cost) and maybe 80 column display (which was originally a reserved feature for the professional III), its memory capabilities should stay for sure below what the Apple II offered - which started originally at 128 KiB (III+ started at 256 KiB) and was expandable to 512 KiB.

When Walt Broedner, the main designer for the LCA, came up with the idea for using a 1k RAM and bank switching to implement the 80 column display, he also realized that this was a way to expand the II series to 128k without adding any cost, as the few needed gates would slip into the custom MMU (one of the two custom ASICs of the LCA, the other being the IOU) anyway. Management let them go thru as this solution wasn't in any way extendable beyond 128KiB, thus keeping the Apple III's superiority.

At that time many third party companies offered RAM cards to expand way beyond 128k, by extending the language card logic (Saturn most prominent). This design allowed next to infinite memory (ok, in reality anything beyond 2 MiB would have needed an extended approach), and an implementation as part of the LCA wouldn't have been a big deal, but not in line with what Apple envisioned at that time.

Edit: As usual when it comes to Apple II development, Steven Weyhrich's Apple II History provides a great read, even with a Woz citation describing the mindset that lead to this rather limited bank switching scheme.

Don't get me wrong, being able to switch a large chunk of memory in at once was handy for an overlay-like program structure, but the huge bank size killed any other effect. And for data, more but smaller chunks would have been favourable.

  • Apple did similar things to the IIgs line. Keeping it slow with little memory so that it wouldn't compete with the Mac. A IIgs running at 8 MHz and 1 MiB RAM would blow the doors of the original Mac. :-) – cbmeeks Sep 7 '17 at 18:01
  • That should have been "off" not "of". :-/ – cbmeeks Sep 7 '17 at 18:11
  • Now, the GS memory map was from the begining on designed to have up to 8MiB of RAM. Third party cards offered up to 12 MiB. And quite frankly, a 2.8 MHz IIgs did run circles aroudn most Macs at the time :)) Also, unlike the 68k with it'S rather long memory cycles, the IIgs did need 100ns RAMs, as the 65816, like the 6502 does only utilize half of a bus cycle for access, thus needing twice as fast memory. – Raffzahn Sep 7 '17 at 18:12
  • Yeah, the IIgs was such an underrated computer. The 65C816 (or even the non-CMOS 65816) could address up to 16 MiB of RAM without any special tricks in hardware. It has a 24bit multiplexed address bus (8 bits shared from data bus). Plus, it can run at 14 MHz without overclocking. Imagine if Apple had embraced that. 4096 colors. 32 channel sound. The Mac would have been a footnote like the Lisa and Apple III. – cbmeeks Sep 7 '17 at 18:27
  • 1
    @cbmeeks Well, with 120ns RAM a 6502 or 816 can only run at 4 MHz at max, due the access timing used. The 68k has a way slower timing in relation to processing speed. Also the 6502 ISA is designed toward cloesed, embedded systems. A usage as PC was never intended and is rather cumbersome (read slow). The 65816 didn't realy change this. We need to be objective here, no matter how much I love the 6502. – Raffzahn Sep 8 '17 at 13:23

Accessing the additional banks was simply a matter of accessing the appropriate soft-switch to enable a 64kb window in the auxiliary bank, and then using it directly. After selecting the window, the interface is the same as for regular auxiliary access, including the language-card bank-switching mechanism to reach all 64kb.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.