At line 11 changed one line |
Technisch unterscheiden sich die Module in den Adressen, die für die Bankumschaltung verwendet werden. Für die, die nichts über Bankumschaltung wissen: der Atari hat ja einen begrenzten Speicherraum von 64 KiB. Um dem Anwender davon möglichst viel zu lassen, haben sich die Hersteller einiger Module etwas einfallen lassen. Da der Atari ja ohnehin nur auf eine Adresse gleichzeitig zugreifen kann, ist es nicht erforderlich, alles gleichzeitig für den Zugriff bereit zu halten. Also hat man so ein 16K-Modul genommen und es in 4 Teile (Bänke) unterteilt, wobei nur eine Hauptbank und jeweils einer der anderen 3 Bänke gleichzeitig im Speicherzugriff bereit gehalten werden. Die "Neben-"Bänke werden bei Bedarf umgeschaltet. Das nennt sich dann Bankumschaltung oder auf Neudeutsch: bank switching. Als Adresse für die Umschaltung der Bank wird die hexadezimale Adresse $D50x verwendet.\\ |
Technisch unterscheiden sich die Module in den Adressen, die für die Bankumschaltung verwendet werden. Für die, die nichts über Bankumschaltung wissen: der Atari hat ja einen begrenzten Speicherraum von 64 KiB. Um dem Anwender davon möglichst viel zu lassen, haben sich die Hersteller einiger Module etwas einfallen lassen. Da der Atari ja ohnehin nur auf eine Adresse gleichzeitig zugreifen kann, ist es nicht erforderlich, alles gleichzeitig für den Zugriff bereit zu halten. Also hat man so ein 16K-Modul genommen und es in 4 Teile (Bänke) unterteilt, wobei nur eine Hauptbank und jeweils einer der anderen 3 Bänke gleichzeitig im Speicherzugriff bereit gehalten werden. Die "Neben-"Bänke werden bei Bedarf umgeschaltet. Das nennt sich dann Bankumschaltung oder auf Neudeutsch: bank switching. Als Adresse für die Umschaltung der Bank wird die hexadezimale Adresse $D500 verwendet.\\ |
At line 18 changed one line |
Die Masterbank muß immer an der Stelle $B000 - $BFFF liegen, weil das Atari Betriebssystem die Adressen $BFFA - $BFFF verwendet, um zu entscheiden, wie mit dem Modul verfahren werden muß. Die genaue Dokumentation hierzu findet sich zum Beispiel im Atari Profibuch.\\ |
Die Hauptbank (ab jetzt Masterbank genannt, weil in der Modulbezeichnung das "M" für sie steht) muß immer an der Stelle $B000 - $BFFF liegen, weil das Atari Betriebssystem die Adressen $BFFA - $BFFF verwendet, um zu entscheiden, wie mit dem Modul verfahren werden muß. Die genaue Dokumentation hierzu findet sich zum Beispiel im Atari Profibuch.\\ |
At line 20 changed 4 lines |
$BFFE: (WORD)\\ |
$BFFD: (BYTE)\\ |
$BFFC: (BYTE)\\ |
$BFFA: (WORD)\\ |
$BFFE: CARTAD Initialisierungsadresse des Moduls\\ |
$BFFD: CARTFG (Kontrollbyte für verschiedene Optionen)\\ |
$BFFC: CART Signalisiert das Vorhandensein eines Moduls\\ |
$BFFA: CARTCS Startadresse des Moduls\\ |
At line 81 changed one line |
Richtig schwierig könnte es werden, wenn indizierte Adressierung verwendet wird, so etwas wie STA $D500,X. Da muß man in die Anpassung deutlich mehr Energie reinstecken. Glücklicherweise hatte ich bislang einen solchen Fall nicht.\\ |
Richtig schwierig könnte es werden, wenn indizierte Adressierung verwendet wird, so etwas wie STA $D500,X. Da muß man in die Anpassung deutlich mehr Energie reinstecken. Glücklicherweise hatte ich bislang einen solchen Fall nicht, aber ich hab ja auch erst ein paar Module angepaßt.\\ |
At line 103 changed one line |
STA $D500 ; aktiviert Bank B in $A000-$AFFF\\ |
STA $D500 ; aktiviert Bank C in $A000-$AFFF\\ |
At line 106 changed one line |
STA $D500 ; aktiviert Bank B in $A000-$AFFF\\ |
STA $D500 ; aktiviert Bank D in $A000-$AFFF\\ |
At line 110 changed one line |
Ggf. steht am Ende jeder Bank auch noch einmal die Banknummer als Kontrolle, aber das findet man am bestem im herausgespeicherten Bereich direkt.\\ |
Ggf. steht am Ende jeder Bank auch noch einmal die Banknummer als Kontrolle, aber das findet man am bestem im herausgespeicherten Bereich direkt. Das sieht man gut auf dem ersten Screenshot oben.\\ |