linguofreak wrote:
Solar wrote:
...something like the bank switching that @linguofreak mentioned as well.
Exactly like. Bank switching was ubiquitous on machines with 16-bit address spaces and no paging or segmentation. The C64 is just one of many examples.
True; the Apple III, //e, and //c all used it, as did the
CoCo - according to Wikipedia, while the base models had between 4KiB and 32KiB built-in, the later model 3 running
Level II OS-9 could load up to 3 MiB over the
M6809's 64KiB address space, IIRC, though I never used one myself), and add-on bank-switched memory was available for several 8-bit systems.
They were also a significant step in the history of the IBM PC, as
expanded memory could bank-switch larger amounts of memory on 16-bit PCs - it probably was a major factor in the persistence of XT-class systems into the early 1990s as low-cost business machines, as by then most of the critical business software such as Lotus 1-2-3 and WordPerfect would be effectively unusable on XT systems without it.
But it is very definitely a different matter from segmentation. It is something that is part of the memory bus sub-system, not the CPU architecture, and was something the OS and applications would need to manage - even on systems such as the C64, where it is a fundamental feature of the computer , it is still something kludged onto the memory bus, and the CPU itself is oblivious to it.