Bankswitching

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Bankswitching bedeutet, über einen Umschaltmechanismus unter ein und derselben Adresse mehrere verschiedene Speicherzellen oder Register verfügbar zu machen.


Der C64 benutzt Bankswitching, um mit dem auf 64K Adressen beschränkten Adressraum auf seine 64 KByte RAM, die insgesamt 20 KByte ROM, diverse Ein- und Ausgabe-Peripherie, aber auch Steckmodule zuzugreifen. Der Program Counter ist ein 16 Bit breites Register und kann ohne Bankswitching oder ähnliche Verfahren 65.536 Speicherzellen ansprechen.

Das Bankswitching wird von der PLA umgesetzt und über den Prozessorport $01 in der Zeropage gesteuert.


Andere Commodore-Plattformen nutzen ebenfalls Bankswitching:

  • Bei der Commodore-264-Serie ist die gemeinschaftliche Nutzung des 64-KByte-Adressraums mit seinen ROM-, RAM- und I/O-Bereichen derart gegeben, dass dabei u.a. BASIC 3.5 das RAM vollständig für den Programmtext und Variablen nutzen kann.
  • Beim C128 ermöglicht eine sogenannte MMU (Memory Management Unit) unterschiedliche Speicherkonfigurationen aus ROMs und den 128 KByte RAM zu bilden. Unter BASIC 7.0 lassen sich 16 fest vorgegebene Konfigurationen mit Hilfe des Befehls BANK auswählen, die sich auf Befehle PEEK, POKE, SYS, WAIT auswirken.
  • Die CBM-II-Linie ist eine Nutzung des Speicherausbaus mit bis zu 16 Bänken zu je 64 KByte vorgesehen. Dabei ist die CPU MOS 6509 besonders dafür anpasst, wobei über Port $01 die entsprechende Bank ausgewählt werden kann, die allerdings dann nur mit der Adressierungsart Indirekte Y-nachindizierte Zeropage-Adressierung angesprochen werden kann.
    Die Variante des BASIC 4.0 hat dazu das Kommando BANK für die Auswahl der Bank, welche dann u.a. für die BASIC-Befehle PEEK, POKE, SYS, WAIT bindet sind.

Weblinks[Bearbeiten]